Tus agentes ya saben programar.Falta alguien al mando de la operación.
dcoder-terminal abre cada agente de código en un terminal real, uno al lado del otro, y un tablero duradero decide quién trabaja, quién espera y quién depende de quién. Tú traes las suscripciones que ya pagas — nosotros nunca revendemos un token, y tu repositorio nunca llega hasta nosotros.
❯ claude --permission-mode plan
◇ reading migrations/0042_orders.sql+ALTER TABLE orders ADD COLUMN+refunded_cents BIGINT NOT NULL-DROP INDEX idx_orders_status◇ writing rollback plan
… 14.2k tokens · $0.31
spec-143 · endpointneeds you
❯ codex --sandbox workspace-write
✓ 7 files changed in src/api
handlers/refunds.rs +214 −18 domain/refund.rs +96 −4? apply the migration to staging
before the integration test?
›waiting for a decision
spec-141 · testsdone
❯ cargo test -q
✓ 38 tests · 0 failures · 6.4s
❯ ddx note --body-stdin
"v2 contract matches v1 on everything but currency"❯ ddx done
spec-144 · dead codequeued
blocked byspec-142preset ····· claude · plan
inherits ··· prd-7
the scheduler starts this card
by itself once 142 closes
backlog6queue3doing2review1done27failed0
dcoder-terminal 0.8.5 — cuatro agentes, un tablero, un repositorio
14CLIs de agente en un solo tablero — Claude Code, Codex, Copilot y once más
0tokens revendidos: tu clave, tu proveedor, tu factura, tu límite de uso
72hde trabajo sin internet antes de que la licencia tenga que reportarse otra vez
No reemplaza a tu agente. Ejecuta el que ya usas.
Claude Code
Codex
Copilot CLI
Cursor Agent
opencode
agy
Qwen
Kimi
Grok
MiniMax
mimo
deepclaude
dcoder-agent
any shell
Nueve de estos vienen con un preset guiado — modelo, esfuerzo y modo de permisos mapeados flag por flag. El resto se ejecuta con un comando que escribes una sola vez.
La operación
No es un enjambre.Es una cola que sobrevive a un reinicio.
Los enjambres improvisan: los agentes negocian, se lanzan entre sí, y después nadie sabe decirte por qué algo se ejecutó. Aquí es lo contrario. Las dependencias se declaran, el orden es determinista y todo el tablero es Markdown en tu disco. Cierra la app a mitad de una ejecución, reinicia la máquina, vuelve — la tarjeta está exactamente donde la dejaste. Eso es lo que convierte “déjalo corriendo toda la noche” en una promesa y no en una apuesta.
01
La cuadrícula
PTYs reales en columnas redimensionables — no es una simulación de shell. Arrastra un panel por la cuadrícula y el proceso no muere: los paneles se posicionan por transform y nunca se remontan. El mouse, los colores y las TUIs completas funcionan, porque lo que está corriendo es la CLI de verdad.
backlog → queue → doing → review → done o failed, como carpetas de Markdown con front-matter dentro de tu proyecto. Un único proceso escribe en él, así que dos agentes nunca corrompen la misma tarjeta. Versiónalo para que el equipo lo vea, o mételo en el .gitignore — la app funciona igual en los dos casos.
Una tarjeta con las dependencias resueltas, con un preset que existe y a la que le llegó el turno se convierte en worker: un terminal dedicado a esa tarjeta y a nada más, con el briefing inyectado al arrancar. Hasta ocho a la vez. Bloqueada espera; terminada libera la siguiente.
◇ spec-142 → ejecutando
⏸ spec-144 bloqueado por 142
? spec-143 te necesita
De la conversación a la tarjeta
El documento que originó el trabajoviaja junto con él.
Spec-driven en el sentido literal: el PRD se escribe primero, las tarjetas se recortan de él, y cada worker recibe el documento de origen inyectado en su propio prompt — no un resumen que te acordaste de pegar.
01
Discútelo con el piloto
Debates la demanda en lenguaje natural con un agente piloto, dentro de la app. Cuando la idea se asienta, él escribe un PRD en el workspace — el documento de origen que toda tarjeta va a heredar.
❯ ddx prd new --title "Refunds"
{"ok":true,"id":"prd-7"}
02
El PRD se convierte en tarjetas enlazadas
El piloto recorta el PRD en tarjetas con preset, tipo de agente y dependencias ya rellenados. Nada se dispara: las tarjetas nacen en el backlog, bajo tu mirada, hasta que tú las promueves.
El scheduler despacha. El worker se reporta a través de una CLI que ya está en su PATH — avisa que está trabajando, que terminó, o que necesita una decisión que solo tú puedes tomar. Eso no es una heurística leyendo la pantalla: es el worker hablando con el tablero.
❯ ddx working
❯ ddx waiting "apply the migration first?"
❯ ddx done
04
Un segundo agente revisa antes de cerrar
Con el revisor activado, una tarjeta terminada no va directo a done: se detiene en review, donde un agente distinto audita el resultado contra los criterios de aceptación y aprueba — o la devuelve a la cola con el rechazo escrito en la propia tarjeta, y el contador de rondas subiendo.
◉ reviewer · round 2
✗ rejected
no test for a negative amount
→ back to the queue
El worker no corrige su propio examen: a quien ejecuta una tarjeta se le niegan promote, spawn y cancel a nivel de protocolo, por más amablemente que los pida.
Manos libres
Dicta en cualquier parte.Habla con el tablero.
Los dos vienen integrados en la app — no es un plugin ni una pestaña del navegador. Funcionan sobre la API de voz de OpenAI con tu propia clave, y el costo aparece en pantalla mientras hablas.
Dictado global
Habla, revísalo, luego insértalo
Un atajo global abre un HUD encima de cualquier ventana: toca para alternar, mantén pulsado para hablar. La transcripción cae en un campo editable y tú mismo la insertas — en el terminal en foco, en el cursor del editor, o en cualquier otra aplicación de Windows. Los saltos de línea se vuelven espacios, así que un pegado en el terminal nunca ejecuta un comando por su cuenta. Nunca presiona Enter por ti.
“escribe un test para un reembolso parcial superior al monto pagado”
REVISIÓN · 6,2s · US$ 0,0004 · Enter inserta
Modo conversación
Lee los paneles y actúa sobre la app
Una sesión de voz a voz en tiempo real con diecisiete herramientas conectadas a la interfaz: puede leer un panel, promover una tarjeta, reintentar una que falló, cambiar de workspace, incluso leer la interfaz y hacer clic. Todo lo destructivo pasa por una confirmación con un token de un solo uso. Se suspende sola tras el silencio, para no quemar minutos sin hacer nada.
you ¿qué está esperando spec-143?
dcoder está preguntando si puede aplicar la migración a staging. ¿Quieres que lo autorice?
you autorízalo, y después promueve el 144
dcoder ✓ respondido · ✓ spec-144 promovido a la cola
En la misma ventana
Las cosas por las que, si no,harías alt-tab.
No son reimplementaciones porque sí — cada una existe porque salir de la ventana a mitad de una ejecución es como se pierde el hilo de lo que están haciendo cuatro agentes.
Git, incluidas las partes que nadie construye
Un panel completo en su propia ventana, por repositorio — y encuentra todos los repositorios de la carpeta, así que un monorepo con servicios aparece solo.
Worktrees con UI de verdad: crear a partir de una rama nueva o existente, prune de los registros huérfanos, con aviso de trabajo sin commitear
Editor de merge de tres columnas para los conflictos, con delete-vs-modify y los demás casos incómodos nombrados en lenguaje claro
Stage por hunk, y rechaza un hunk obsoleto — “el archivo cambió desde que se cargó este diff”, en vez de aplicarlo a medias
Mensajes de commit escritos por IA con los secretos ocultos: .env y las claves privadas quedan fuera del prompt, y sk-…, AKIA… y ghp_… se convierten en [redacted]
Force-push con lease que cuenta cuántos commits del remoto se descartarían antes de que tú confirmes
Archivos, editor y skills
Ventanas desacoplables, cada una con su propio proyecto y su propia memoria de qué pestañas tenías abiertas ahí.
Monaco por dentro, con quick open fuzzy y búsqueda de texto en todo el proyecto que respeta el .gitignore y salta los binarios
Enviar la selección actual directo al agente en foco
Arrastra un archivo hasta un panel y su ruta cae en el prompt de ese agente
Una estantería de skills que no roba el foco del teclado — arrastras una skill mientras el cursor sigue parpadeando en el terminal, y soltarla escribe la instrucción sin enviarla si tenías un borrador
Tarjetas que se ejecutan solas
Cadencia continua o una expresión cron de cinco campos de verdad, con un comando de parada que decide cuándo terminar.
Un archivo de memoria que se lleva entre iteraciones, para que la ronda nueve sepa lo que encontró la ronda uno
Exit 0 en el comando de parada termina el loop; un techo de iteraciones y un timeout lo terminan de todos modos
“Cazar el test flaky hasta que deje de fallar” es una tarjeta, no un script que te toca vigilar
Las partes que solo notas cuando faltan
Varios workspaces, cada uno con su propia cuadrícula, tablero, color de acento y memoria de proyecto
Perfiles de instancia: ejecuta la versión estable y una build de desarrollo lado a lado, totalmente aislados
Un agente que te necesita levanta una notificación real del sistema operativo — la app saca la secuencia de escape del stream y la convierte en estado
Costo por modelo, en dólares, con una tabla de tarifas editable que vuelve a calcular el precio de tu historial cuando la cambias
Tres idiomas, 1.434 claves cada uno, paridad garantizada por un linter — y el idioma que elegiste se les pasa a los agentes
La cuenta
Nosotros orquestamos.Nunca revendemos tus tokens.
Esta es la parte que ningún competidor puede copiar, porque su margen depende de que la inferencia pase por ellos. La nuestra no pasa por nosotros en absoluto.
Herramientas que te venden créditos
Un cupo mensual que no se acumula
El precio del proveedor más un margen que no puedes ver
Se te acaba a mitad de semana, compras una recarga
El agent loop de un solo proveedor, lo tomas o lo dejas
Cuando el panorama de modelos cambia, tú esperas por ellos
dcoder-terminal
Tu plan Claude Max, Codex o Copilot, usado directamente
Precio de lista del proveedor, sin intermediarios
Tus límites de uso, que ya entiendes
Claude Code y Codex en el mismo repositorio, en el mismo tablero
¿Salió una CLI nueva que valga la pena? Apúntale un preset hoy mismo
Y ves la cuenta mientras ocurre
Tokens de entrada, salida y caché acumulados por modelo y por sesión — el dato primario es el conteo de tokens, los dólares se derivan de una tabla de tarifas que puedes editar. Cambia una tarifa y vuelve a calcular el precio del historial sin reprocesar ni un solo transcript.
sonnet-4.5
1,84M
US$ 3,02
gpt-5.5
0,42M
US$ 1,15
opus-5
0,19M
US$ 2,44
Lo que sale de tu máquina
Tu código no sale.Esto es exactamente lo que sí sale.
La licencia es lo único que habla con nosotros. Es un asiento flotante: el servidor le presta un asiento a tu máquina, la app lo renueva mientras trabajas, y cerrar la app lo devuelve al pool. Por eso tu licencia te acompaña del escritorio al portátil sin que registres nada.
Esta es la petición entera, cada diez minutos. Nada más se envía, nunca:
device_tokenun valor aleatorio de 256 bits, guardado aquí solo como hash
fingerprintun hash del identificador de la máquina, para que una carpeta de config copiada no pueda ejecutarse dos veces
device_namecómo llamaste a esta máquina
app_versionqué build está preguntando
seatqué asiento del pool estás ocupando
POST /v1/session/heartbeat
Tu código fuente, diffs, prompts o la salida de los agentes
Nombres de repositorio, rutas de archivos o nombres de ramas
Qué agentes ejecutas, ni con qué frecuencia
Nada sobre lo que estás construyendo
Y cuando se cae internet
La app sigue funcionando hasta 72 horas con el último ticket. La regla de fondo es que el silencio se tolera y el rechazo se obedece: si no se nos puede alcanzar, tú sigues adelante; pero si respondemos “no” — el pool está lleno, la suscripción venció —, la app te avisa y se detiene, y no va a fingir que no lo oyó.
Precios
Un plan. Todo dentro.Cobrado por asiento, no por tu uso.
La app es la suscripción; los tokens nunca pasan por nosotros. Es la línea más pequeña de tu factura de IA, y la única que no crece cuando abres otro terminal.
Precio de fundador
US$ 290US$ 149/ por año
dos meses por nuestra cuenta, y el mismo bloqueo
Bloqueado mientras mantengas la suscripción — no sube a US$ 29 por debajo de ti.
Cobrado en tu moneda local, con impuestos incluidos. Cancela cuando quieras — la licencia vale hasta el final del período que pagaste.
Todo, desde el primer día:
Terminales reales en cuadrícula, cualquier CLI interactiva
14 CLIs de agente, nueve con preset guiado
Tablero duradero con dependencias declaradas
El scheduler despachando hasta ocho workers
PRDs, specs y el agente piloto
Gate de revisión por IA en las tarjetas terminadas
Tarjetas en loop, continuo o cron
Dictado global y modo conversación
Panel de Git, gestor de archivos, editor y estantería de skills
Costo por modelo, en vivo, en dólares
Todos los repositorios abiertos a la vez, cada uno con su propio tablero
Windows, macOS y Linux
¿Más de una persona? Una licencia admite tantos asientos simultáneos como compres — escríbeme y te lo configuro.
Preguntas
Lo que preguntan antes de suscribirse
¿La suscripción incluye los tokens de los modelos?
No, y esa es justamente la idea. Usas tus propias claves — Anthropic, OpenAI, OpenRouter, la que prefieras — y pagas el precio de lista del proveedor, sin nadie en medio. Nosotros orquestamos y te mostramos, en dólares, cuánto consumió cada modelo.
¿Mi código sale de mi máquina?
Hacia nosotros, no. El tablero es una carpeta dentro de tu proyecto, los paneles son procesos de tu máquina, y la única petición que recibimos es la verificación de la licencia — cinco campos, cada diez minutos, listados por completo más arriba en esta página. Lo que sí sale es exactamente lo que el agente que ya elegiste enviaría hoy, al proveedor que configuraste.
¿Necesito estar en línea?
Para empezar, sí: la app toma prestado un asiento al abrirse. Después de eso sigue funcionando hasta 72 horas sin comunicarse con nosotros. La distinción que importa: el silencio se tolera, el rechazo no. Si no se nos puede alcanzar, tú sigues adelante; si respondemos que la suscripción venció o que el pool está lleno, la app te avisa y se detiene.
¿Dos agentes en el mismo repositorio no se atropellan?
Pueden, si tú se lo pides. La app secuencia lo que declaraste: una tarjeta con --depends-on solo sale de la cola cuando la anterior cierra, y así es como dos tareas que tocan el mismo archivo no caen en el mismo minuto. Lo que no hace es tocar git por ti — ni ramas, ni merges, ni resolución de conflictos a tus espaldas. Si quieres aislamiento de verdad, apunta cada preset a un git worktree distinto; el tablero sigue siendo uno solo.
¿Cómo sabe la app que un agente terminó o se quedó atascado?
Porque él lo dice. Cada terminal recibe una CLI pequeña en su PATH, y el briefing inyectado al arrancar le enseña al agente a marcar su propia tarjeta: trabajando, esperando con una pregunta, terminado. No es una heurística adivinando por el texto de la pantalla — es el worker hablando con el tablero.
¿Esto ensucia mi repositorio?
El estado vive en una carpeta .ddesktop/ dentro del proyecto: Markdown y JSON legibles, sin base de datos y sin formato propietario. Tú decides si lo versionas, para que el equipo vea el tablero, o si lo pones en el .gitignore. Funciona igual de las dos formas.
¿Instala o reemplaza a mis agentes?
Ninguna de las dos cosas. Ejecuta las CLIs que ya están en tu máquina, ya autenticadas. Si escribes claude en un terminal y funciona, aquí funciona. Lo que sí instala es su propia herramienta de tablero en la config de cada agente, en el alcance más estrecho, sin sobrescribir lo que ya tenías.
¿Qué pasa si cancelo?
La licencia vale hasta el final del período que pagaste; después de eso la app deja de abrir. Lo que está en disco sigue siendo tuyo — el tablero, los PRDs y las notas son Markdown, legibles con o sin la app.
¿Puedo usarlo en más de una máquina?
Sí. Un asiento se presta mientras la app está abierta y se devuelve cuando la cierras, así que el equipo de escritorio de casa y el portátil del trabajo comparten una licencia — solo que no puedes usar los dos en el mismo momento con un único asiento. Registrar máquinas es gratis e ilimitado; lo que un asiento cuenta es el uso simultáneo.
¿Qué servicio usan el dictado y el modo conversación?
El de OpenAI, con tu propia clave, guardada en el almacén de credenciales del sistema operativo en vez de en un archivo de texto. La app muestra el costo estimado mientras hablas.
Tus agentes están listos.Dales un piso donde trabajar.
Apúntalo a un repositorio, describe la demanda y mira cómo se ejecuta la primera tarjeta sin que tú despaches un terminal.