Documentação

Configuração do MCP

Cada conta tem seu próprio endpoint MCP, restrito às tarefas daquela conta. Não existe token compartilhado nem global.

1. Conecte por OAuth (recomendado)

O Done é um servidor de autorização OAuth 2.1 completo para o seu endpoint MCP. Por isso os clientes que falam OAuth — claude.ai, os conectores do ChatGPT e o Claude Desktop — se conectam sozinhos, sem nenhum token para copiar. Adicione o Done como conector personalizado só com a URL:

https://trydone.app/mcp
  1. Vá em Settings → Connectors → Add custom connector.
  2. Use https://trydone.app/mcp como URL do servidor MCP remoto e clique em Add.
  3. Clique em Connect. O cliente descobre os endpoints OAuth do Done, se registra e leva você ao Done para entrar e aprovar o acesso.
  4. Aprove, e o conector passa a funcionar, com escopo restrito à sua conta.

2. Ou use um token bearer

Para clientes configurados à mão (ou por um script), gere um token. Abra o painel Conta, no canto inferior esquerdo da barra lateral, e gere um token MCP. Ele é mostrado uma única vez, então copie para um lugar seguro. Você pode criar um token de acesso total, um somente leitura ou um restrito a um único projeto. Depois aponte um cliente para o endpoint:

{
  "mcpServers": {
    "done": {
      "url": "https://trydone.app/mcp",
      "headers": { "Authorization": "Bearer <seu-token-mcp-gerado>" }
    }
  }
}

No claude.ai você também pode colar esse mesmo Authorization: Bearer <token> como cabeçalho de solicitação em Advanced settings de um conector personalizado. Nos dois casos, um agente que usa o token só vê e edita aquilo que o escopo do token permite.

Conecte um agente pessoal

Agentes pessoais que conseguem adicionar um servidor MCP remoto se conectam ao Done do mesmo jeito: aponte o agente para https://trydone.app/mcp e depois entre com OAuth ou entregue a ele um token MCP do passo 2. Um token somente leitura ou restrito a um projeto é um bom começo para um agente que você ainda está conhecendo.

Meta Muse

O Muse adiciona ferramentas novas como conectores personalizados, e você pede um pelo chat. Diga ao Muse: “Crie um conector personalizado para o servidor MCP do Done em https://trydone.app/mcp.” Quando ele pedir credenciais, informe o seu token MCP pelo prompt seguro de credenciais, não no chat em si.

Hermes Agent (Nous Research)

Adicione o Done a ~/.hermes/config.yaml, depois execute hermes mcp login done para aprovar o acesso no Done e hermes mcp test done para conferir se ele lista as ferramentas do Done:

mcp_servers:
  done:
    url: "https://trydone.app/mcp"
    auth: oauth

Para usar um token, troque auth: oauth por headers: { Authorization: "Bearer <seu-token-mcp>" }.

OpenClaw (antes Clawdbot)

Adicione o Done como servidor streamable-HTTP, entre e faça o teste:

openclaw mcp add done --url https://trydone.app/mcp --transport streamable-http
openclaw mcp login done
openclaw mcp doctor done --probe

Use o login com OAuth em vez de um cabeçalho Authorization fixo: algumas versões do OpenClaw não encaminham cabeçalhos personalizados em servidores streamable-HTTP.

Poke

No Poke, abra Integrations → New, dê o nome Done, use https://trydone.app/mcp como MCP Server URL, cole o seu token MCP como API Key e clique em Create Integration.

Instinct

O Instinct ainda não publica um passo a passo para conectar ferramentas externas. Se o seu consegue adicionar uma conexão MCP personalizada, informe a URL https://trydone.app/mcp e um token MCP, enviado como Authorization: Bearer <token>.

Qualquer outro agente que consiga adicionar um servidor MCP remoto também funciona: use os passos de OAuth do item 1 se ele tiver suporte a OAuth, ou um token do item 2 se não tiver. Nos dois casos ele aparece em Configurações → Acesso de agentes, onde você pode revogá-lo com um clique.

3. Ferramentas disponíveis para o agente

O servidor MCP expõe ferramentas pensadas para fluxos de trabalho, não um CRUD cru:

list_my_tasks
Traz a fila pronta para trabalhar: tarefas atribuídas a um agente de IA, sem bloqueio, sem pausa, da maior para a menor prioridade. Chame esta primeiro. Quando volta vazia, ela explica o motivo com um detalhamento do que ficou oculto (blocked/done/wont_do/pending_approval/plan_proposed/needs_input/paused/claimed_by_other), para que “não há nada a fazer” e “está tudo pausado” não pareçam a mesma coisa. Passe include_paused para listar as pausadas e relatar o que a execução pulou; isso não tira nenhuma pausa, e elas continuam sem poder ser trabalhadas.
next_task
Assume de forma atômica a única tarefa pronta de maior prioridade: é a retirada da fila. Use em uma frota para que dois agentes nunca peguem a mesma tarefa.
list_tasks
Veja o quadro inteiro; filtre por status/priority/project/parent ou busque nos títulos.
get_task
Carrega uma tarefa por completo: notas, subtarefas, bloqueios e o feed de atividade, além dos três níveis de briefing permanente (workspace_brief, project_brief e o notes_for_agent da própria tarefa). Precedência: espaço de trabalho → projeto → tarefa, o mais específico por último. Com limite: o feed devolve por padrão as 50 entradas mais recentes (limit, 0–500) e include restringe as seções; tudo o que fica de fora é citado em context_summary, para que uma resposta curta nunca seja confundida com um histórico completo.
claim_task / release_task
Assuma uma tarefa (em andamento, atribuída a um agente, com um comentário inicial) passando o seu id de `agent` (por exemplo, "ChatGPT"), para que uma frota não a reserve duas vezes. Ou devolva a tarefa se não der para terminar agora.
decline_task
Tira uma tarefa da sua fila de vez: remove a atribuição e a sua reserva, devolve a tarefa a not_started e publica o seu motivo na conversa. Para trabalho que foi atribuído a você mas não deveria ter sido. release_task só solta a reserva; esta remove a atribuição.
handoff_task
Repassa uma tarefa sua para outro agente com nome da lista de agentes, no meio do trabalho. Ela vai para a fila dele na hora (a reserva é solta, a tarefa volta a not_started e a sua nota é publicada), e agent_ok é zerado. Assim o próximo agente propõe a conclusão, a menos que uma pessoa reative a opção.
list_agents
A lista de agentes da conta e qual agente você é. A sua raia vem do nome da sua credencial, nunca de um argumento; as ferramentas de fila só devolvem as tarefas da sua própria raia. Lista vazia = uma única fila compartilhada.
pause_board
O mesmo botão de parada, um nível acima: nenhum agente da conta recebe trabalho até que uma pessoa retome. Para um obstáculo que não é de uma tarefa só: credenciais perdidas, todas as tarefas falhando do mesmo jeito, um loop que atravessa várias tarefas. Depois disso, list_my_tasks e next_task se recusam e devolvem o motivo, em vez de uma fila vazia, para que uma execução que encontre o quadro parado registre por quê. O trabalho que já está em andamento ainda pode ser finalizado. Só uma pessoa pode retomar, no painel Conta.
pause_task
Interrompe o trabalho em uma tarefa e mantém todos os agentes longe dela até que uma pessoa a retome. Para quando você está TRAVADO de um jeito que nenhuma pergunta resolveria: um loop, uma credencial faltando, uma tarefa que não pode ser feita como está escrita. É obrigatório informar um motivo, e você não pode tirar a pausa: retomar é uma ação humana no app, então um agente que se pausou por estar em loop não consegue se colocar de volta no loop.
comment_on_task
Entrega resultados e conclusões na conversa da tarefa, o canal que uma pessoa lê. Um comentário denso por execução, não um relato passo a passo: mudanças de status, reservas e rastros de execução são registrados automaticamente no histórico da tarefa.
check_criterion
Marca um critério de aceitação como cumprido. Este é o canal de progresso: marque as condições conforme for cumprindo, em vez de narrar o andamento em comentários. Marcar todas as caixas não conclui a tarefa.
ask_decision
Deixa uma pergunta registrada para a pessoa e segue em frente: é a única forma de envolvê-la sem encerrar a sua execução. A tarefa sai da sua fila como needs_input, e você a retoma com a resposta anexada. Exige uma recomendação. Só uma pergunta bloqueante aberta por tarefa.
list_open_decisions / withdraw_decision
Veja todas as perguntas que estão aguardando uma pessoa, ou retire uma que você resolveu por conta própria. Confira isto primeiro a cada execução: uma tarefa cuja pergunta já foi respondida é o trabalho mais barato disponível.
check_night_budget
Pergunta se você pode começar outra tarefa esta noite. Os limites por tarefa valem para uma tarefa; este vale para uma sessão inteira sem supervisão, para que uma rotina noturna não gaste em uma noite a folga de uma semana.
delete_comment
Remove um dos comentários do próprio agente: uma duplicata causada por nova tentativa ou um rascunho que ele substituiu. Os seus comentários e o histórico de status não podem ser excluídos.
complete_task
Marca como concluída diretamente; exige um resumo. Só funciona se a tarefa tiver agent_ok=true; caso contrário, dá erro e orienta a usar propose_completion.
propose_completion
Para uma tarefa sem agent_ok: publica um resumo e muda o status para pending_approval até que uma pessoa aprove ou rejeite.
approve_task / reject_task
Resolve uma tarefa em pending_approval (um agente supervisor também pode fazer isso, não só uma pessoa).
propose_plan
Antes de um trabalho substancial: publica o plano e muda o status para plan_proposed até que uma pessoa aprove. É o equivalente de propose_completion antes da execução.
approve_plan / reject_plan
Resolve o plano de uma tarefa em plan_proposed (um agente supervisor também pode fazer isso, não só uma pessoa).
create_task / update_task / delete_task
CRUD completo de tarefas, com a mesma validação da API REST. delete_task move a tarefa para a Lixeira; não é uma exclusão definitiva. Aceita referências: URLs ou caminhos como contexto, que o agente busca com os próprios conectores MCP.
quick_capture
Cria uma tarefa a partir de texto livre: reconhece prazos, prioridade, @agent (também @claude/@chatgpt), ~estimativa e #projeto.
decompose_task
Divide uma tarefa em várias subtarefas em uma única chamada.
render_plan
Apresenta as subetapas de uma tarefa como um plano: uma lista de verificação em markdown, JSON estruturado e um widget interativo para os hosts que renderizam UI de MCP. Chame depois de decompose_task/propose_plan.
set_step_status
Marca uma subetapa do plano como feita ou a reabre, e devolve o plano atualizado. Marcar uma etapa do próprio agente sem agent_ok continua passando pela trava de aprovação.
block_task / unblock_task
Gerencia as dependências de bloqueio (com verificação de ciclos).
start_run / end_run / check_budget
Abre e fecha uma sessão de trabalho auditável; consulta quantas chamadas de ferramentas ou minutos restam no limite de uma tarefa. Quando uma tarefa com limite o esgota, start_run é recusado. Passe trace_url em start_run para vincular a transcrição da sessão. Assim, a resposta para “por que ele fez isso às 3h da manhã?” fica a um clique da execução.
fleet_status
Retrato ao vivo de cada tarefa que um agente tem reservada, há quanto tempo e se a reserva já expirou. Use para ver quem está trabalhando em quê antes de pegar uma tarefa.
runner_heartbeat
Só para uma máquina executora auto-hospedada: registra a máquina na conta e informa a saúde dela, para que o dono a veja no Done em vez de ler logs por SSH. O único estado que nada mais consegue mostrar é o de uma máquina conectada mas quebrada: o token do Done está válido, então ela mantém o fluxo de eventos e aparece como “ouvindo”, enquanto o login expirado do modelo derruba todas as execuções.
list_triggers / claim_trigger
Pedidos que uma pessoa dirigiu a você: um clique em “Executar agora” ou um @claude em um comentário. Cada um é um registro durável que espera até um agente se conectar, e chega na hora a um agente conectado pelo fluxo de eventos ao vivo. Um pedido explícito vale mais que a ordem da fila, então next_task coloca a tarefa solicitada em primeiro lugar. claim_trigger confirma um pedido de forma atômica, para que uma frota não trabalhe nele duas vezes.
search_activity
Busca no feed de atividade de todas as tarefas que você pode ver, em vez de ler uma tarefa por vez: correspondência de trecho em comentários, mudanças de status e relatos de agentes, do mais recente para o mais antigo, com filtro por task_id/author/kind/since.
list_routines
Somente leitura: as rotinas recorrentes que uma pessoa agendou nos seus quadros, com agenda, fuso horário, próxima execução, se está pausada e execuções recentes. Cada horário gera uma tarefa comum atribuída a você com um gatilho, então as execuções chegam por list_triggers e next_task como qualquer outro pedido. Não existe ferramenta para criar ou alterar uma rotina: um agente que pudesse se agendar estaria colocando o próprio trabalho na fila.
changes_since
O equivalente por consulta do fluxo de eventos ao vivo, para uma sessão que conecta, trabalha e sai: passe o seu último cursor e receba só o que mudou desde então. Sem cursor, a chamada fixa um e não devolve mudanças, ou seja, uma primeira chamada não consegue despejar o quadro inteiro. Os gatilhos não entram; list_triggers continua sendo a fonte para eles.
list_claude_shipped
Lista as tarefas que um agente de IA marcou como concluídas, da mais recente para a mais antiga. Serve para uma reunião diária, uma retrospectiva ou para responder “quanto o agente fez de verdade?”.
list_stale_tasks
Encontra trabalho aberto que ficou parado, com as evidências para decidir o que fazer: dias de inatividade, progresso das subtarefas, bloqueios abertos e códigos de motivo. É a varredura de faxina.
get_evidence
Tudo o que uma pessoa gostaria de conferir antes de aprovar uma tarefa, em uma única chamada: progresso dos critérios, gasto em relação ao limite, comprovantes, entregas e links de rastros.
create_artifact_upload
Anexa um arquivo de verdade (um PDF, uma captura de tela, uma planilha) a uma tarefa. Devolve um link de envio de uso único: envie os bytes com PUT para esse link, sem cabeçalho Authorization, e depois defina o artifact_id da entrega com update_task. O link funciona uma vez e expira em 15 minutos. É recusado para um token somente leitura, uma tarefa fora do projeto ou espaço de trabalho do token, uma tarefa na Lixeira ou um arquivo acima dos limites de tamanho.
propose_capture / list_capture_inbox
A porta de entrada: propõe uma tarefa que a pessoa ainda não digitou, para a caixa de capturas dela. Não cria nada; aceitar é a gravação feita pela pessoa. A listagem informa a proporção entre aceitas e descartadas, que decide se o recurso merece o lugar que ocupa.
propose_edit
Sugere mudanças nos campos de uma tarefa sem aplicá-las: uma comparação entre o atual e o proposto que uma pessoa aceita ou descarta campo por campo, para que três sugestões certas não sejam rejeitadas junto com a quarta. Não grava nada. Um campo que você não pode definir também não pode ser proposto.
propose_brief_edit
Propõe uma nova redação para o briefing do agente de um projeto ou de uma tarefa, em geral depois de uma rejeição que o briefing deveria ter evitado. Uma substituição completa mais um motivo, que a pessoa vê como atual e proposto em Precisa de você. Não grava nada: uma pessoa aplica ou descarta, e a aplicação é recusada se o briefing tiver mudado nesse meio-tempo. O briefing do espaço de trabalho não pode ser proposto.
propose_grooming / list_grooming_proposals
Transforma uma varredura de tarefas paradas em um lote revisável: uma ação recomendada por tarefa, cada uma com um motivo. Não grava nada; uma pessoa aprova cada item no app, e essa aprovação é a gravação.
get_autonomy_ledger
Veja onde agent_ok foi conquistado: aprovações e rejeições agrupadas por projeto ou etiqueta, com a sequência atual de aprovações. Só informa; conceder autonomia é uma ação humana.
get_agent_roster
O que cada agente com nome realmente fez: execuções, minutos e chamadas de ferramentas gastos, tarefas aprovadas e rejeitadas, a taxa de rejeição, o impacto/valor entregue pelas aprovadas e as chamadas de ferramentas gastas por tarefa aprovada. Só informa.
get_agent_economics
Custo e valor por agente e por projeto em uma janela de dias: chamadas de ferramentas, minutos e limite gastos, tarefas aprovadas e rejeitadas, a taxa de rejeição, o valor e o impacto que as tarefas aprovadas entregaram, e chamadas de ferramentas e minutos por tarefa aprovada. Em unidades, não em dinheiro. Restrito ao projeto ou espaço de trabalho de um token com escopo. Só informa.
get_digest / get_weekly_review / get_stats
Para se situar no início de uma sessão ou obter um panorama mais completo de produtividade (tendência, sequência, detalhamentos).
list_projects / create_project / update_project / delete_project
Gerencia os projetos da barra lateral. create_project aceita um workspace_id opcional (de list_workspaces) para guardar o projeto em um espaço de trabalho compartilhado, em vez do pessoal; um subprojeto herda o espaço de trabalho do projeto pai, então não envie os dois.
list_workspaces
Os espaços de trabalho a que esta conta pertence: id, nome, papel (owner ou member) e notes_for_agent, o briefing permanente do espaço de trabalho. Um espaço de trabalho define quem pode ver um conjunto de tarefas. Somente leitura: os espaços de trabalho são criados e compartilhados pela pessoa, em Conta → Espaços de trabalho e equipe, e cabe a ela escrever o briefing.
list_goals / create_goal / update_goal / delete_goal
Gerencia as metas, o nível norteador acima dos projetos. Guarde projetos e tarefas em uma meta com goal_id; excluir uma meta desvincula o trabalho dela, em vez de destruí-lo.
list_tags / create_tag / delete_tag / tag_task / untag_task
Gerencia e aplica etiquetas transversais.
list_trash / restore_task
Veja o que está na Lixeira e traga uma tarefa de volta.
list_connections
Os apps conectados da pessoa (Drive, Gmail, Notion, GitHub, Linear, Slack, Fireflies, Granola, PostHog) e o que cada conexão realmente permite, que pode ser menos do que o provedor oferece se a tela de consentimento foi restringida.
search_context
Busca nos apps conectados algo para ler. Devolve resultados (título, tipo, link e uma referência), nunca o conteúdo. Uma conexão quebrada é citada pelo nome, em vez de derrubar a busca inteira.
read_context
Lê como texto puro um resultado de search_context, por conexão e referência. Uma referência do Slack devolve a conversa inteira.
save_context
Salva um documento de texto em um app conectado que possa guardá-lo (hoje, o Drive). É assim que uma entrega sai do Done. Aqui não existe enviar e-mail nem publicar no Slack, de forma alguma.
list_calendar_events
Lista os eventos de calendário em cache da pessoa (título, horário, local, organizador, participantes) das contas do Google conectadas. Use antes de decidir a qual tarefa uma reunião pertence.
suggest_event_matches
Ordena os pares tarefa↔evento de calendário mais prováveis, do melhor para o pior, com as evidências de cada um. Chamar esta ferramenta não vincula nada; confirme com link_task_to_event.
link_task_to_event / unlink_task_from_event
Registra (ou remove) que uma tarefa e um evento de calendário são a mesma coisa, para que a tarefa fique fixada no horário real da reunião, em vez de ser encaixada no tempo livre.

Prompts e recursos

Além das ferramentas, o servidor é totalmente nativo de MCP: ele também expõe prompts e recursos, para que um cliente possa oferecer fluxos de trabalho prontos e anexar dados ao vivo como contexto.

  • prompts/list · modelos de uma linha que correspondem a fluxos de trabalho reais, para que um cliente possa mostrá-los como comandos de barra:
    • plan_my_day — Monta um plano realista e priorizado para hoje a partir das minhas tarefas abertas.
    • work_next — Assume a tarefa pronta de maior prioridade e trabalha nela.
    • daily_review — Resume o que foi concluído, o que está atrasado e no que focar em seguida.
    • groom_board — Encontra o trabalho aberto que morreu em silêncio e propõe o que fazer com cada item. Só propõe.
    • answer_backlog — Retoma as tarefas cujas perguntas pendentes eu já respondi.
    • prep_meetings — Relaciona os eventos de calendário de hoje às tarefas de que eles tratam e prepara cada um.
    • triage_task — Avalia uma tarefa e a planeja ou aponta o que a está bloqueando.
  • resources/list · visões somente leitura que um cliente pode anexar: done://digest, done://queue e um done://task/<id> para cada tarefa aberta. Tokens com escopo só veem o próprio projeto.

Uma execução típica de um agente

get_digest → list_open_decisions → next_task → get_task → trabalho, marcando check_criterion conforme cada condição é cumprida → comment_on_task uma vez com o relato → propose_completion. Você revisa os resultados na conversa da tarefa e continua sendo o responsável final.

Perguntar sem travar

Um agente que chega a uma decisão de verdade — gastar dinheiro, qualquer coisa voltada para fora, qualquer coisa irreversível — não deve chutar, mas também não deve ficar parado. Ele chama ask_decision e segue em frente: a tarefa sai da fila dele como needs_input, você responde em Precisa de você ou direto por uma mensagem direta no Slack, e a tarefa volta para a fila com a sua resposta anexada. Assim a próxima execução lê a resposta, em vez de chegar de novo à mesma pergunta.

Toda pergunta traz a recomendação do próprio agente e o raciocínio por trás dela, então responder costuma ser um clique, não um trabalho de redação. Responder não é aprovar: devolve a tarefa ao agente e nunca fecha nada. Só pode haver uma pergunta bloqueante aberta por tarefa, o que impede que uma caixa de decisões vire o feed de comentários que ela substituiu.

É isso que faz valer a pena deixar uma rotina noturna rodando. Sem isso, a primeira ambiguidade às 3h da manhã para a noite inteira; com isso, aquela tarefa fica em espera e o agente continua trabalhando no resto.

Execute com agendamento

O Done não roda nenhum agente nos próprios servidores. Para que suas tarefas sejam trabalhadas sem supervisão, alguma coisa precisa chamá-lo, como o agendador do cliente MCP que você já usa. Todos os clientes MCP se conectam do mesmo jeito; só o agendamento muda:

Claude — Rotinas

Roda na nuvem da Anthropic em horários programados, com o Done ligado como conector.

  1. Adicione o Done como conector em claude.ai/customize/connectors, com a URL do servidor MCP https://trydone.app/mcp. Ele precisa estar na sua conta do claude.ai: uma rotina não enxerga servidores MCP que você adicionou localmente na CLI.
  2. Abra claude.ai/code/routines e clique em New routine, ou execute /schedule na CLI do Claude Code e descreva o que você quer com suas palavras.
  3. Cole um dos prompts do Done como instruções. Uma rotina roda sem ninguém olhando, então o prompt precisa se sustentar sozinho. É exatamente para isso que os da visualização Prompts foram escritos.
  4. Defina um gatilho de horário: de hora em hora, diário, em dias úteis ou semanal. O menor intervalo permitido é de uma hora.
  5. Em Connectors, deixe o Done incluído e tire os que esta rotina não tem por que tocar. Crie a rotina e clique em Run now uma vez, para acompanhar a primeira execução do começo ao fim.

Antes de começar: As rotinas exigem um plano pago do Claude (Pro, Max, Team ou Enterprise) com o Claude Code na web ativado.

ChatGPT — Tarefas agendadas

Uma tarefa acionada por horário que chega ao Done por um conector personalizado.

  1. Adicione o Done como conector personalizado no modo de desenvolvedor, apontando para https://trydone.app/mcp, e faça login quando for solicitado.
  2. Comece uma conversa, cole um dos prompts do Done e peça que ele rode em horários programados: "execute isto todo dia útil às 8h".
  3. Gerencie o que você criou em Tasks, no menu do seu perfil. As tarefas disparam só por horário, no máximo mais ou menos de hora em hora, e se pausam sozinhas se você as ignorar por tempo suficiente.

Antes de começar: No ChatGPT Plus e Pro, os conectores MCP personalizados são somente leitura: um agente consegue ler sua fila, mas não consegue assumir, comentar nem concluir nada. Para escrever de volta é preciso um plano ChatGPT Business, Enterprise ou Edu.

Qualquer outro — Seu próprio agendador

Qualquer cliente MCP, acionado pelo que você já usa para rodar coisas em horários programados.

  1. Aponte o cliente para https://trydone.app/mcp, enviando seu token em um cabeçalho Authorization: Bearer.
  2. Faça o cron, um agendamento de CI, um executor de fluxos (o que você já confia para rodar em horários programados) iniciar esse cliente com um dos prompts do Done como instruções.
  3. Dê à execução um lugar para prestar contas. Todo prompt da biblioteca termina escrevendo de volta no Done, então o quadro é o registro e você não precisa de um segundo lugar para olhar.

Seja qual for o caminho escolhido, este é o prompt para entregar ao agente (está em inglês; copie como está):

You are my Done task runner. Work my queue through the Done MCP connector only — never touch anything outside my Done account.

Each run:
1. Call list_open_decisions first, then get_digest and list_my_tasks, to see what's assigned to me (the AI agent) and ready. A task whose parked question I've since answered is the cheapest work on the board — the context is written down and the blocker just cleared — so start there.
2. For each ready task, decide what to do:
   - in_progress with plan_approved_at set → its plan is approved, so DO THE WORK now. Read it with get_task (notes_for_agent, acceptance_criteria, description, references), carry it out, and when it's finished call propose_completion with a summary — or complete_task if the task is agent_ok.
   - not_started and small or agent_ok → just do it, then complete_task (agent_ok) or propose_completion.
   - not_started and substantial or ambiguous (multi-step, judgment calls, anything I'd want to sign off on the approach for) → do NOT start it. Call propose_plan with a short plan of how you intend to tackle it, then move on. It waits for my approval and comes back to you once I approve it in Needs you.
3. Report progress by ticking the acceptance criteria with check_criterion as you actually meet each one — not by narrating into comments. Post at most ONE dense comment_on_task per task per run: what you did, what you found, what's left. A running commentary is noise.
4. Hit a real fork — spending money, anything outward-facing (an email, a post, a reply to a customer), anything irreversible — and call ask_decision with your own recommendation, then MOVE ON to the next task. Don't guess, and don't sit there waiting. If you later work the answer out yourself, withdraw_decision rather than leaving a stale question in my queue.
5. If a task was assigned to me but shouldn't be — it needs my accounts, my signature, or my judgment — hand it back with decline_task and a one-line reason. Declining is a valid outcome.
6. Respect the gates: never force a non-agent_ok task to done, and never act on a task that isn't assigned to me.
7. For any task that has sub-steps (a plan) — one you decomposed, or that already had subtasks — call render_plan on it so I get the laid-out plan with progress and an "Open in Done" link.
8. If nothing is ready, stop — don't invent work.

If you're running unattended overnight, wrap the run: call start_run at the top and check_night_budget before picking up each task, so you stop at the caps I set in Settings → Where agents run, and call end_run when you finish.

End with a one-line summary: plans proposed, tasks worked, tasks completed, questions parked.

A cada execução, ele propõe um plano para qualquer tarefa substancial e espera, e executa tudo o que você aprovou em Precisa de você desde a última vez. Você aprova; o agente faz o trabalho. Você nunca precisa iniciar uma execução à mão. A mesma configuração está a um clique no painel Conta (“Coloque um agente de IA para trabalhar na sua fila”).

Observações

  • Conecte por OAuth (clientes que descobrem /.well-known/oauth-authorization-server) ou com um token bearer de longa duração, por conta, gerado no app. Os dois funcionam no mesmo endpoint.
  • Todo token e toda autorização têm escopo restrito a uma única conta; não existe token entre contas nem global. Os tokens bearer podem ser restringidos ainda mais, a somente leitura ou a um único projeto.
  • Gerar um token de novo ou revogá-lo o invalida imediatamente.
  • O plano Grátis inclui 100 chamadas de agente (MCP) por mês; Pro e Teams são ilimitados. Veja os preços.