Atomic Reps

Depois que seu agente de codificação termina uma tarefa, o Atomic Reps faz perguntas sobre as bibliotecas e conceitos que ele utilizou. Funciona no Claude Code, Copilot, Cursor e Codex.

Documentação

atomicreps

Uma pergunta curta sobre o que você acabou de construir. Funciona no Claude Code, GitHub Copilot, Cursor, Codex ou em qualquer cliente MCP.

Requer Node 24+ e uma conta gratuita. Em um Node mais antigo, todo comando imprime a versão necessária em vez de iniciar.

npx atomicreps            the terminal screen: you, this session, topics, mutes, rate
npx atomicreps setup      first-run wizard: areas, topics, how often, how hard
npx atomicreps login      sign in from a browser with a typed code
npx atomicreps connect    register the server with your editor
npx atomicreps connect --pin   pin the launch args to this installed version, for a command you can commit
npx atomicreps mcp        the stdio MCP server process (what the editor launches)
npx atomicreps doctor     token, server ping, version, when the next rep may come, allowlist
npx atomicreps logout     forget the token on this machine
npx atomicreps logout --purge   also forget your reps and status, and offer to undo connect

Adicione --alpha a qualquer comando para usar staging. Ele mantém seu próprio token e cache, para que você possa estar conectado ao staging e à produção ao mesmo tempo.

connect simples grava npx -y atomicreps mcp, que sempre resolve para o que estiver mais recente no lançamento. connect --pin grava npx -y atomicreps@<version> mcp em vez disso, a versão que este CLI está executando, para que uma organização possa revisar um comando exato e confirmá-lo em vez de confiar no npx para buscar a mesma coisa duas vezes.

GitHub Copilot

npx atomicreps connect oferece VS Code e Copilot CLI como linhas. Sem ele:

code --add-mcp '{"name":"atomicreps","type":"stdio","command":"npx","args":["-y","atomicreps","mcp"]}'
copilot mcp add atomicreps -- npx -y atomicreps mcp

O Copilot no JetBrains, Visual Studio, Xcode e Eclipse lê a mesma entrada de seu próprio mcp.json (Configurações, depois MCP). Uma equipe pode confirmá-lo como .vscode/mcp.json para que todo clone o tenha:

{
  "servers": {
    "atomicreps": { "type": "stdio", "command": "npx", "args": ["-y", "atomicreps", "mcp"] }
  }
}

O Copilot lê as instruções do servidor e chama rep quando uma tarefa termina, assim como Cursor e Codex. Aprove as quatro ferramentas uma vez e elas permanecem aprovadas.

Como um rep é servido

Quando seu agente de codificação termina uma tarefa, ele chama rep uma vez com algumas palavras sobre o que mudou. O servidor escolhe uma pergunta, ou nada, e seu agente a mostra a você sem alterações. Responda com uma letra, ou ignore.

Abaixo do veredito, uma linha nomeia até três outras coisas que a sessão tocou. Um número pergunta sobre uma delas. "Nunca Swift" silencia um tópico permanentemente. "Não este tópico" o silencia por trinta dias. "Desmutar Swift" remove o silêncio. "Como estou indo" imprime seu resumo.

O servidor impõe o ritmo, não o agente. Ele define um intervalo mínimo entre reps automáticos, um limite diário, e mudo e desligado. Ele recusa uma resposta digitada em segundos após a pergunta. Ele nunca inclui a chave de resposta em um rep. Toda falha retorna nenhum rep em vez de um erro; doctor diz o porquê.

Ferramentas

ferramentao que faz
rep({ touched?, ask?, topic?, kind?, exclude? })uma pergunta, um insight, ou nada; ask aceita um identificador de uma oferta
answer({ pick, id? })o veredito, a explicação e a linha de oferta
me({ show? })summary, skills, reps, streak ou mutes
settings({ intensity?, topics?, levels?, prefer?, mute?, muteMinutes?, days?, unmute?, dialog? })a taxa, os tópicos fixados, o intervalo de dificuldade, as áreas preferidas, mudos, o diálogo

Identificadores são topic ou topic.subskill (react.hooks_core). Cinquenta slugs de sub-habilidade se repetem entre tópicos, então o tópico é sempre parte do nome.

settings({ dialog: true }) pede a letra no diálogo nativo do seu editor em vez do chat. Ele bloqueia o turno, então é uma configuração, nunca o padrão.

Privacidade

O que sai da sua máquina em uma chamada rep: identificadores de catálogo com pequenos pesos. Também nomes de pacotes, extensões de arquivo e pastas que o catálogo público já conhece. As palavras touched do seu agente são correspondidas a identificadores na sua máquina; as palavras em si nunca são enviadas. Um nome de pacote desconhecido é descartado. Um nome privado (@acme/react-internal) é enviado como seu alias público (react). Nunca enviamos seu código, o conteúdo de um arquivo ou um prompt. npx atomicreps setup imprime o payload exato para seu repositório, antes de você entrar.

npx atomicreps mcp encaminha cada mensagem JSON-RPC do seu editor para o servidor Atomic Reps com seu token. A resposta volta da mesma forma. ATOMICREPS_API é honrado apenas para um endereço Atomic Reps ou loopback, já que seu token vai para onde ele aponta. Qualquer outra coisa é ignorada e relatada por doctor; defina ATOMICREPS_UNSAFE_ORIGIN=1 para substituir.

Login

npx atomicreps imprime um código. Digite-o em atomicreps.com/connect enquanto conectado; um link encaminhado não aprova nada. O token é salvo em ~/.config/atomicreps/config.json (modo 0600), prefixado arep_ para que scanners de segredos o encontrem. Você pode revogá-lo na página da sua conta. logout o esquece; logout --purge também exclui os reps e o status que esta máquina armazenou em cache, depois lista cada entrada de editor que connect escreveu (ambos os canais) e remove as que você deixar marcadas.

O limite de confiança e como relatar uma vulnerabilidade: SECURITY.md.

Verifique você mesmo

dist/cli.js é construído a partir destes arquivos e nada mais. O pacote não tem dependências de tempo de execução.

npm install
npm run build    # writes dist/cli.js from src
npm test         # the behaviour described above, as tests

Para comparar com o que o npm serve: npm pack atomicreps, depois leia seu dist/cli.js ao lado do que você acabou de construir. Tudo o que o cliente envia está em src/api.ts. Tudo o que ele lê do seu repositório está em src/infer.ts.

MIT.