- É um agente de codificação com IA que funciona no terminal e, ao integrar-se com diversos LLM (modelos de linguagem de grande porte), oferece suporte para escrita de código, automação de fluxo de trabalho e manutenção de contexto de código, entre outros recursos para aumentar a produtividade de código.
- É possível escolher vários modelos e alternar livremente entre eles no meio da sessão, além de oferecer suporte à manutenção de sessões/contextos por projeto.
- Oferece recursos voltados para desenvolvedores, como integração com LSP (Language Server Protocol), suporte a MCP (Model Context Protocol) extensível e exclusão via .gitignore e outros arquivos de ignore.
- Funciona em todos os principais ambientes de terminal, incluindo macOS, Linux, Windows e FreeBSD, e pode ser instalado por vários métodos, como gerenciador de pacotes, Go ou binário.
- Oferece, ao mesmo tempo, configuração intuitiva e personalização avançada, com variáveis de ambiente, configuração JSON e whitelist de ferramentas, com design pensado até para usuários avançados.
Crush
- É um agente de codificação com IA que roda no ambiente de terminal e permite integrar livremente os LLMs preferidos pelo desenvolvedor para oferecer suporte a escrita, edição e automação de código.
- Permite selecionar e alternar livremente entre vários modelos (Anthropic, OpenAI, Groq, OpenRouter etc.), além de gerenciar o contexto separadamente por sessão.
- Através de LSP (Language Server Protocol), obtém contexto adicional para cada linguagem e oferece assistência de código mais inteligente.
- Via MCP (Model Context Protocol) é possível coletar e usar informações adicionais de diversas fontes externas, como sistemas externos, HTTP e linha de comando.
Recursos principais
- Suporte a múltiplos modelos: integração com diversos LLMs, como OpenAI, Anthropic, Groq e OpenRouter, com possibilidade de adicionar outros.
- Trabalho baseado em sessão: separação e gerenciamento de múltiplas sessões e contextos por projeto.
- Troca flexível de modelo: mudança de modelo livre durante a sessão, mantendo o contexto existente.
- Integração com LSP: conexão com LSP dos idiomas Go, TypeScript, Nix e principais linguagens para reforçar o contexto de código.
- Extensibilidade: expansão fácil de recursos adicionais via protocolo MCP, com integrações externas HTTP/CLI/SSE, entre outros.
- Suporte amplo de plataformas: funcionamento em terminais de macOS, Linux, Windows (WSL, PowerShell), FreeBSD, OpenBSD e NetBSD.
- Configuração intuitiva: pode ser usado imediatamente sem configuração prévia e, quando necessário, oferece configuração JSON por projeto ou global.
- Recurso robusto de exclusão: gerenciamento de arquivos/diretórios excluídos do contexto por meio de
.gitignore e .crushignore.
- Whitelist de ferramentas: oferece aprovação prévia e opção de execução automática ao rodar ferramentas; o flag
--yolo permite pular o prompt completo (use com cautela).
- Provedores personalizados: é possível adicionar livremente APIs compatíveis com OpenAI e Anthropic e definir opções detalhadas.
Instalação e início
- Instalável por diversos gerenciadores e formatos, como Homebrew, NPM, Arch, Nix, Debian/Ubuntu, Fedora/RHEL, além de binário/Go.
- Na primeira execução, é necessário informar a chave da API do LLM preferido (OpenAI, Anthropic, Groq etc.), que também pode ser definida por variáveis de ambiente.
- Principais LLMs configuráveis via variável de ambiente:
OPENAI_API_KEY, ANTHROPIC_API_KEY, GROQ_API_KEY, OPENROUTER_API_KEY, GEMINI_API_KEY, VERTEXAI_PROJECT, entre outros.
Exemplos de configuração
- Aplicar opções avançadas por meio de arquivo JSON global ou por projeto (
./.crush.json, ./crush.json, $HOME/.config/crush/crush.json).
- Configuração de LSP: possível definir comandos específicos por linguagem.
{
"lsp": {
"go": { "command": "gopls" },
"typescript": { "command": "typescript-language-server", "args": ["--stdio"] }
}
}
- Configuração de MCP: exemplo de extensão externa com base em HTTP/CLI/SSE
{
"mcp": {
"filesystem": {
"type": "stdio",
"command": "node",
"args": ["/path/to/mcp-server.js"]
}
}
}
- Exclusão de arquivos e aprovação de ferramentas
- Excluir arquivos/pastas específicos com
.crushignore.
- Pular prompt via whitelist de execução de ferramentas ou com o flag
--yolo.
Recursos para usuários avançados
- Registro de provedores personalizados: adicionar APIs compatíveis com OpenAI/Anthropic e definir opções detalhadas como preço e contexto.
- Logs: arquivo de logs por projeto, com verificações em tempo real por comandos CLI como
crush logs e crush logs --follow.
- Opções de depuração: ativar logs detalhados via flag
--debug ou configuração.
Ainda não há comentários.