Seus agentes já sabem programar.Falta alguém no comando da operação.
O dcoder-terminal abre cada agente de código num terminal real, lado a lado, e um quadro durável decide quem trabalha, quem espera e quem depende de quem. Você traz as assinaturas que já paga — a gente nunca revende um token, e o seu repositório nunca chega até nós.
❯ 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 — quatro agentes, um quadro, um repositório
14CLIs de agente num quadro só — Claude Code, Codex, Copilot e mais onze
0tokens revendidos: sua chave, seu provedor, sua fatura, seu limite
72hde trabalho sem internet antes de a licença precisar se reportar
Não substitui o seu agente. Roda o que você já usa.
Claude Code
Codex
Copilot CLI
Cursor Agent
opencode
agy
Qwen
Kimi
Grok
MiniMax
mimo
deepclaude
dcoder-agent
any shell
Nove destes vêm com preset guiado — modelo, esforço e modo de permissão mapeados flag a flag. O resto roda por um comando que você escreve uma vez.
A operação
Não é um enxame.É uma fila que sobrevive a um reboot.
Enxame improvisa: os agentes negociam, se spawnam entre si, e depois ninguém sabe dizer por que aquilo rodou. Aqui é o contrário. As dependências são declaradas, a ordem é determinística e o quadro inteiro é markdown no seu disco. Feche o app no meio, reinicie a máquina, volte — o card está exatamente onde você deixou. É isso que transforma “deixa rodando de madrugada” numa promessa, e não numa aposta.
01
A grade
PTYs de verdade em colunas redimensionáveis — não é simulação de shell. Arraste um painel pela grade e o processo não morre: os painéis são posicionados por transform e nunca remontados. Mouse, cores e TUIs inteiras funcionam, porque o que está rodando é a CLI de verdade.
backlog → queue → doing → review → done ou failed, como pastas de markdown com front-matter dentro do seu projeto. Um processo só escreve nele, então dois agentes nunca corrompem o mesmo card. Versione para o time ver o quadro, ou ponha no gitignore — o app funciona igual nos dois casos.
Card com dependências resolvidas, preset existente e vez chegada vira worker: um terminal dedicado àquele card e a mais nada, com o briefing injetado no start. Até oito ao mesmo tempo. Bloqueado espera; concluído libera o próximo.
◇ spec-142 → executando
⏸ spec-144 bloqueado por 142
? spec-143 precisa de você
Da conversa ao card
O documento que originou o trabalhoviaja junto com ele.
Spec-driven no sentido literal: o PRD é escrito primeiro, os cards saem dele, e cada worker recebe o documento de origem injetado no próprio prompt — não um resumo que você lembrou de colar.
01
Discuta com o piloto
Você debate a demanda em linguagem natural com um agente-piloto, dentro do app. Quando a ideia fecha, ele grava um PRD no workspace — o documento de origem que todo card vai herdar.
❯ ddx prd new --title "Reembolso"
{"ok":true,"id":"prd-7"}
02
O PRD vira cards ligados
O piloto quebra o PRD em cards com preset, tipo de agente e dependências já preenchidos. Nada dispara: os cards nascem no backlog, sob o seu olho, até você promover.
O scheduler despacha. O worker se reporta por uma CLI que já está no PATH dele — avisa que está trabalhando, que terminou, ou que precisa de uma decisão que só você pode tomar. Não é heurística lendo a tela: é o worker falando com o quadro.
❯ ddx working
❯ ddx waiting "aplico a migration antes?"
❯ ddx done
04
Um segundo agente confere antes de fechar
Com o revisor ligado, o card concluído não vai direto para o feito: para na coluna review, onde outro agente audita o resultado contra os critérios de aceite e aprova — ou devolve para a fila com a reprovação escrita no próprio card, e o contador de rodadas subindo.
◉ revisor · rodada 2
✗ reprovado
falta teste para valor negativo
→ devolvido para a fila
O worker não corrige a própria prova: quem executa um card tem promote, spawn e cancel recusados no nível do protocolo, por mais que peça com jeitinho.
Mãos livres
Ditar em qualquer janela.Conversar com o quadro.
Os dois são embarcados no app — não é plugin nem aba de navegador. Rodam sobre a API de voz da OpenAI com a sua chave, e o custo aparece na tela enquanto você fala.
Ditado global
Fale, revise, insira
Um atalho global abre o HUD em cima de qualquer janela: toque para alternar, segure para falar. A transcrição cai num campo editável e quem insere é você — no terminal em foco, no cursor do editor, ou em qualquer outro aplicativo do Windows. Quebras de linha viram espaço, para que um paste no terminal nunca execute um comando sozinho. Ele nunca aperta Enter por você.
“cria um teste pro reembolso parcial acima do valor pago”
REVISÃO · 6,2s · US$ 0,0004 · Enter insere
Modo conversa
Ele lê os painéis e age no app
Sessão de voz em tempo real com dezessete ferramentas ligadas na interface: lê um painel, promove um card, tenta de novo um que falhou, troca de workspace, e até lê a interface e clica. Tudo que é destrutivo passa por uma confirmação com token de uso único. Suspende sozinha depois do silêncio, para não queimar minuto à toa.
you o que o spec-143 tá esperando?
dcoder ele pergunta se pode aplicar a migration em staging. Autorizo?
you autoriza, e promove o 144 depois
dcoder ✓ respondido · ✓ spec-144 promovido para a fila
Na mesma janela
O que você sairia da janelapara ir fazer.
Não são reimplementações por esporte — cada uma existe porque sair da janela no meio da corrida é como se perde o fio do que quatro agentes estão fazendo.
Git, inclusive as partes que ninguém faz
Um painel completo em janela própria, por repositório — e ele acha todos os repositórios da pasta, então um monorepo com serviços aparece sozinho.
Worktrees com UI de verdade: criar a partir de branch nova ou existente, prune de registros órfãos, aviso de trabalho não commitado
Editor de merge de três colunas para conflitos, com delete-vs-modify e os outros casos chatos nomeados em português claro
Stage por hunk, e ele recusa hunk obsoleto — “o arquivo mudou desde que este diff foi carregado”, em vez de aplicar pela metade
Mensagem de commit escrita por IA com segredos redigidos: .env e chaves privadas ficam fora do prompt, e sk-…, AKIA… e ghp_… viram [redigido]
Force-push com lease contando quantos commits do remoto seriam descartados antes de você confirmar
Arquivos, editor e skills
Janelas destacáveis, cada uma com o seu próprio projeto e a própria memória de quais abas você tinha aberto ali.
Monaco embutido, com quick open fuzzy e busca de texto no projeto que respeita o .gitignore e pula binários
Mandar a seleção atual direto para o agente em foco
Arraste um arquivo até um painel e o caminho dele cai no prompt daquele agente
Uma estante de skills que não rouba o foco do teclado — você arrasta a skill enquanto o cursor continua piscando no terminal, e soltar escreve a instrução sem submeter se havia rascunho
Cards que rodam sozinhos
Cadência contínua ou uma expressão cron de cinco campos de verdade, com um comando de parada que decide a hora de encerrar.
Um arquivo de memória carregado entre as iterações, para que a rodada nove saiba o que a rodada um achou
Exit 0 no comando de parada encerra o loop; um teto de iterações e um timeout encerram de qualquer jeito
“Caçar o teste flaky até ele parar de falhar” é um card, não um script que você fica vigiando
As partes que só se notam quando faltam
Vários workspaces, cada um com grade, quadro, cor de acento e memória de projeto próprios
Perfis de instância: rodar o release estável e um build de desenvolvimento lado a lado, isolados
Agente que precisa de você levanta notificação do sistema — o app tira a sequência de escape do stream e transforma em estado
Custo por modelo, em dólar, com tabela de tarifas editável que reprecifica o histórico quando você muda
Três idiomas, 1.434 chaves cada, paridade garantida por linter — e o idioma escolhido é repassado aos agentes
A conta
A gente orquestra.A gente nunca revende os seus tokens.
Esta é a parte que nenhum concorrente copia, porque a margem deles depende de a inferência passar por eles. A nossa não passa por nós de jeito nenhum.
Ferramentas que vendem crédito
Uma franquia mensal que não acumula
O preço do provedor mais uma margem que você não vê
Acabou no meio da semana? Compre recarga
O agent loop de um fornecedor só, é pegar ou largar
Quando o mercado de modelos virar, você espera por eles
dcoder-terminal
Seu plano Claude Max, Codex ou Copilot, usado direto
Preço de tabela do provedor, sem intermediário
Os seus limites, que você já conhece
Claude Code e Codex no mesmo repositório, no mesmo quadro
Apareceu CLI nova que presta? Aponte um preset hoje
E você vê a conta enquanto ela acontece
Tokens de entrada, saída e cache acumulados por modelo por sessão — o dado primário é o token, o dólar é derivado de uma tabela de tarifas que você edita. Mude uma tarifa e ele reprecifica o histórico sem reprocessar um transcript sequer.
sonnet-4.5
1,84M
US$ 3,02
gpt-5.5
0,42M
US$ 1,15
opus-5
0,19M
US$ 2,44
O que sai da sua máquina
O seu código não sai.Isto aqui é exatamente o que sai.
A licença é a única coisa que fala com a gente. Ela é um assento flutuante: o servidor empresta um assento para a sua máquina, o app renova enquanto você trabalha, e fechar o app devolve o assento ao pool. É por isso que a sua licença te acompanha do desktop para o notebook sem você registrar nada.
Esta é a requisição inteira, a cada dez minutos. Nada além disto é enviado, nunca:
device_tokenum valor aleatório de 256 bits, guardado aqui só como hash
fingerprinthash do identificador da máquina, para que uma pasta de config copiada não rode duas vezes
device_nameo nome que você deu a esta máquina
app_versionqual build está perguntando
seatqual assento do pool você está ocupando
POST /v1/session/heartbeat
Seu código-fonte, diffs, prompts ou saída dos agentes
Nome de repositório, caminho de arquivo ou nome de branch
Quais agentes você roda, ou com que frequência
Qualquer coisa sobre o que você está construindo
E quando a internet cai
O app segue trabalhando por até 72 horas com o último ticket. A regra por baixo é que silêncio é tolerado e recusa é obedecida: se a gente está inalcançável, você continua; mas se a gente responder “não” — pool cheio, assinatura vencida —, o app avisa e para, e não vai fingir que não ouviu.
Preços
Um plano. Tudo dentro.Cobrado por assento, não pelo seu uso.
O app é a assinatura; token nunca passa pela nossa mão. É a menor linha da sua conta de IA, e a única que não cresce quando você abre mais um terminal.
Preço de fundador
US$ 290US$ 149/ por ano
dois meses por nossa conta, e o mesmo travamento
Travado enquanto você mantiver a assinatura — ele não sobe para US$ 29 por baixo de você.
Cobrado na sua moeda local, com impostos incluídos. Cancele quando quiser — a licença vale até o fim do período que você pagou.
Tudo, desde o primeiro dia:
Terminais reais em grade, qualquer CLI interativa
14 CLIs de agente, nove com preset guiado
Quadro durável com dependências declaradas
O scheduler despachando até oito workers
PRDs, specs e o agente-piloto
Gate de revisão por IA nos cards concluídos
Cards em loop, contínuo ou cron
Ditado global e modo conversa
Painel Git, gerenciador de arquivos, editor e estante de skills
Custo por modelo, ao vivo, em dólar
Todos os repositórios abertos ao mesmo tempo, cada um com o seu quadro
Windows, macOS e Linux
Mais de uma pessoa? Uma licença comporta quantos assentos simultâneos você comprar — me escreva que eu configuro.
Perguntas
O que costumam perguntar antes de assinar
A assinatura inclui os tokens dos modelos?
Não, e é de propósito. Você usa as suas chaves — Anthropic, OpenAI, OpenRouter, quem preferir — e paga o preço de tabela do provedor, sem ninguém no meio. A gente orquestra e mostra, em dólar, quanto cada modelo consumiu.
Meu código sai da minha máquina?
Para nós, não. O quadro é uma pasta dentro do seu projeto, os painéis são processos na sua máquina, e a única requisição que a gente recebe é a verificação de licença — cinco campos, a cada dez minutos, listados por extenso mais acima nesta página. O que sai é exatamente o que o agente que você já escolheu mandaria hoje, para o provedor que você configurou.
Preciso estar online?
Para começar, sim: o app pega um assento emprestado ao abrir. Depois disso ele segue trabalhando por até 72 horas sem falar com a gente. A distinção que importa: silêncio é tolerado, recusa não. Se a gente está inalcançável, você continua; se a gente responder que a assinatura venceu ou que o pool está cheio, o app avisa e para.
Dois agentes no mesmo repositório não se atropelam?
Podem, se você mandar. O app sequencia o que você declarou: um card com --depends-on só sai da fila quando o anterior fecha, e é assim que duas tarefas que tocam o mesmo arquivo não caem no mesmo minuto. O que ele não faz é mexer em git por você — não cria branch, não faz merge, não resolve conflito pelas suas costas. Se você quer isolamento de verdade, aponte cada preset para um git worktree diferente; o quadro continua sendo um só.
Como o app sabe que um agente terminou ou travou?
Porque ele avisa. Cada terminal recebe uma CLI pequena no PATH, e o briefing injetado no start ensina o agente a marcar o próprio card: trabalhando, esperando com uma pergunta, concluído. Não é heurística adivinhando pelo texto da tela — é o worker falando com o quadro.
Isso suja o meu repositório?
O estado vive numa pasta .ddesktop/ dentro do projeto: markdown e JSON legíveis, sem banco e sem formato proprietário. Você decide se versiona, para o time ver o quadro, ou se põe no gitignore. Funciona igual dos dois jeitos.
Ele instala ou substitui os meus agentes?
Nenhum dos dois. Ele roda as CLIs que já estão na sua máquina e já autenticadas. Se você digita claude num terminal e funciona, funciona aqui. O que ele instala é a própria ferramenta de quadro na config de cada agente, no escopo mais estreito, sem sobrescrever o que você tinha.
O que acontece se eu cancelar?
A licença vale até o fim do período que você pagou; depois disso o app deixa de abrir. O que está em disco continua seu — quadro, PRDs e notas são markdown, legíveis com ou sem o app.
Dá para usar em mais de uma máquina?
Dá. O assento é emprestado enquanto o app está aberto e devolvido quando você fecha, então o desktop de casa e o notebook do trabalho dividem uma licença — você só não roda os dois no mesmo instante com um assento só. Cadastrar máquina é de graça e ilimitado; o que o assento conta é uso simultâneo.
O ditado e o modo conversa usam qual serviço?
O da OpenAI, com a sua chave, guardada no cofre de credenciais do sistema operacional em vez de um arquivo de texto. O app mostra o custo estimado enquanto você fala.
Seus agentes estão prontos.Falta dar um chão para eles trabalharem.
Aponte para um repositório, descreva a demanda e assista o primeiro card rodar sem você despachar terminal.