Code Assistant
Uma ferramenta de linha de comando baseada em Rust para tarefas relacionadas a código, operando como um servidor MCP.
Documentação
Code Assistant
Um agente de codificação de IA de código aberto, escrito em Rust, com GUI nativa, modo terminal e integrações para editores e clientes MCP. Ele executa um loop de agente autônomo sobre seu código — lendo, pesquisando, editando arquivos e executando comandos — mantendo você informado sobre o que ele está realmente fazendo.
Primeiros passos
A maneira mais rápida de experimentar é um download pré-compilado — sem necessidade de toolchain:
- Baixe a versão mais recente na página de Releases:
- macOS:
Code-Assistant-macos-aarch64.app.zip(Apple Silicon) ouCode-Assistant-macos-x86_64.app.zip(Intel) - Linux:
code-assistant-linux-x86_64.zip - Windows:
code-assistant-windows-x86_64.zip
- macOS:
- Inicie-o. Na primeira execução, o code-assistant abre a tela de Configurações. Escolha um provedor (há sugestões com um clique para os mais comuns), cole uma chave de API e selecione um modelo — pronto.
- Adicione a pasta do seu projeto pelo aplicativo e inicie um chat.
Nenhuma edição manual de arquivos JSON é necessária para começar. (Você ainda pode, se preferir — veja o guia de Configuração.)
Compile a partir do código-fonte
# Install the Rust toolchain (macOS/Linux)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# On Linux (Debian/Ubuntu), install the system libraries gpui needs:
sudo apt-get install -y --no-install-recommends \
pkg-config build-essential libssl-dev libzstd-dev \
libfontconfig-dev libwayland-dev libx11-xcb-dev \
libxkbcommon-x11-dev libasound2-dev libvulkan1
# On macOS, install the metal toolchain:
xcodebuild -downloadComponent MetalToolchain
# Clone and build
git clone https://github.com/stippi/code-assistant
cd code-assistant
cargo build --release
O binário fica em target/release/code-assistant. Consulte o guia de Configuração para criar um pacote macOS .app autossuficiente.
O que o torna diferente
Algumas coisas com as quais nos importamos:
- Uma interface que você consegue acompanhar. Em vez de um seco "5 ferramentas chamadas", o code-assistant mostra quais ferramentas foram executadas e o que cada uma devolveu ao modelo como contexto. Quando ele sai dos trilhos, você consegue ver o porquê.
- Formatação ao salvar que permanece eficiente em tokens. Quando seu projeto formata código automaticamente, a imagem mental que o agente tem do arquivo fica desatualizada e suas edições subsequentes começam a falhar por motivos não óbvios. O code-assistant executa seu formatador e então reconcilia as edições do modelo com o resultado formatado — sem desperdiçar tokens relendo arquivos. Veja docs/format-on-save-feature.md.
- Codificação de arquivo e finais de linha transparentes. Ele lê um arquivo da forma como ele está armazenado (encoding, BOM, CRLF/LF), entrega texto limpo ao modelo e o grava de volta como estava — para nunca reescrever silenciosamente seus finais de linha.
- Pesquisa e lê documentos, não apenas código. Word, Excel, PowerPoint, PDF e outros são consumidos automaticamente como Markdown, para que você possa apontar o agente para documentos do mundo real junto com seu código-fonte.
Recursos
- Múltiplos provedores de LLM: Anthropic, OpenAI, Google Vertex AI, Ollama, OpenRouter, SAP AI Core, Groq, Cerebras, Mistral e outros.
- Quatro formas de trabalhar: uma GUI nativa (construída sobre o GPUI do Zed), um modo terminal, um servidor MCP headless e um agente ACP para editores como o Zed.
- Sintaxe adaptativa de ferramentas: function calling nativo, tags XML ou blocos de três circunflexos — escolhidos por sessão para se adequar ao modelo.
- Streaming em tempo real com filtragem inteligente que bloqueia combinações inseguras de ferramentas (ex.: editar um arquivo antes de lê-lo).
- Sessões por projeto com ramificação, estado persistente e mensagens de rascunho com anexos.
- Subagentes, níveis de permissão, um sandbox de comandos e compactação automática de contexto quando a janela enche.
- Modo cliente MCP: conecte servidores externos do Model Context Protocol e use suas ferramentas.
- Sessões de navegador: o agente controla um navegador real (navegar, ler, clicar, digitar) para testar aplicativos web, com transferência de login com humano no circuito, para que ele aja como você sem nunca ver suas credenciais.
- Skills: playbooks reutilizáveis e específicos de tarefas que o agente pode carregar sob demanda.
- Orientação carregada automaticamente: capta
AGENTS.md(ouCLAUDE.md) da raiz do seu projeto para se alinhar às instruções específicas do repositório.
Interfaces
code-assistant # native GUI (default)
code-assistant --tui # terminal interface
code-assistant acp # ACP agent for editors like Zed
code-assistant server # headless MCP server (e.g. Claude Desktop)
Qualquer modo pode receber uma tarefa inicial: code-assistant --task "Explain this codebase".
Conectar ao Zed (ACP)
Adicione às suas configurações do Zed:
{
"agent_servers": {
"Code-Assistant": {
"command": "/path/to/code-assistant",
"args": ["acp", "--model", "Claude Sonnet 4.5"],
"env": { "ANTHROPIC_API_KEY": "sk-ant-..." }
}
}
}
Consulte a documentação do Zed sobre agentes personalizados.
Conectar ao Claude Desktop (MCP)
Nas configurações do Claude Desktop (aba Developer → Edit Config):
{
"mcpServers": {
"code-assistant": {
"command": "/path/to/code-assistant",
"args": ["server"],
"env": { "SHELL": "/bin/zsh" }
}
}
}
Configuração
Para a maioria das pessoas, a tela de Configurações do aplicativo é suficiente — ela gerencia provedores, modelos, servidores MCP e skills para você. Tudo também pode ser configurado por meio de arquivos JSON, e há opções mais avançadas (configuração de projeto, modos de sandbox, sintaxe de ferramentas, gravação de sessão, flags de CLI):
→ Consulte o guia de Configuração.
Contribuindo
Contribuições são bem-vindas! O código é um bom passeio por Rust assíncrono, arquitetura de agentes de IA e UI multiplataforma. Se algo no comportamento do agente o incomoda, esse é exatamente o tipo de detalhe com o qual este projeto se importa: por favor, abra uma issue.
Roadmap
Não é exatamente um roadmap — apenas algumas direções, em nenhuma ordem específica:
- Bloquear substituição em arquivos desatualizados: detectar cedo quando o modelo está prestes a
replace_in_fileum arquivo que mudou desde a última leitura, e rejeitar com uma mensagem útil. - Compactar falhas de uso de ferramentas: remover chamadas de ferramentas com falha / blocos de pesquisa incompatíveis do histórico para economizar tokens.
- Ferramentas de memória: ajudar o agente a construir uma base de conhecimento para um projeto.
- Sandbox mais rígido: restringir o acesso das ferramentas a arquivos rastreados pelo git dentro do projeto.
- Correspondência difusa de blocos de pesquisa: reduzir as releituras causadas por correspondências exatas com falha.