>_ DevTrendspt

Idioma

Início

Linguagens

Seções

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarcados Segurança
C

Como Escrever Código com IA no Terminal Sem Electron e Node.js

A maioria dos assistentes modernos de codificação com IA são construídos de forma semelhante. Eles são empacotados em aplicativos Electron massivos, arrastando Node.js, Python ou runtimes pesados, consumindo algumas centenas de megabytes de RAM antes mesmo da primeira requisição, e tentando dominar toda a tela. Se você está trabalhando em um servidor fraco, um laptop antigo, ou simplesmente prefere utilitários Unix rápidos, essa abordagem rapidamente se torna frustrante.

Recentemente encontrei um projeto interessante chamado hax de Alexander Chekhovsky. É um agente de codificação compacto para terminal escrito em C puro. O autor decidiu ir contra a tendência de wrappers pesados e criou uma ferramenta que inicia instantaneamente e ocupa apenas alguns megabytes.

hax respondendo uma pergunta sobre seu próprio código-fonte usando um modelo local llama.cpp

O Que É e Por Que Você Precisa Dele

Hax é um utilitário CLI compilado em um único binário nativo. O processo ocupa apenas alguns megabytes na memória. Se você está executando redes neurais locais através do llama.cpp diretamente na sua estação de trabalho, cada gigabyte de RAM economizado importa, já que a memória é necessária para o contexto e pesos do modelo.

A ferramenta foi projetada para quem não quer ver mercados de plugins, painéis da web volumosos e diálogos intermináveis de confirmação de permissões. Tudo aqui segue a filosofia clássica do Unix: há stdin, stdout, configurações claras e a capacidade de incorporar o utilitário em pipelines regulares.

O Que Torna Este Projeto Interessante na Prática

Diferente de muitos wrappers CLI em torno de APIs, hax é projetado especificamente como uma ferramenta para trabalho contínuo no console.

Leve no Terminal

Hax não quebra o scrollback do terminal e não redesenha toda a tela através do ncurses. O utilitário produz Markdown streaming com quebra de linha e atualiza apenas a linha atual ou área de entrada. Todo o histórico do terminal permanece no lugar, e o texto pode ser copiado com segurança usando o mouse sem artefatos de pseudográficos.

Modelos Locais Sem Complicações

Para execução local, basta iniciar o llama-server ou lançar o ollama. O Hax pode detectar automaticamente instâncias do llama.cpp em execução, determinar parâmetros do modelo e ajustar o contexto. Não há necessidade de escrever configs JSON extensas apenas para um teste local.

Transparência nas Requisições de Rede

A qualquer momento, você pode pressionar Ctrl+T diretamente na sessão interativa e ver o transcript exato do que foi enviado ao modelo e o que veio como resposta. Se você está depurando prompts ou quer verificar se arquivos extras não vazaram para o contexto, esse recurso evita muita frustração. Há também um modo para coletar logs detalhados do protocolo de rede.

Suporte para Diferentes Provedores

O utilitário funciona com APIs de nuvem padrão e motores locais:

  • OpenAI e endpoints compatíveis via chave OPENAI_API_KEY
  • Anthropic Claude via ANTHROPIC_API_KEY
  • OpenRouter, OpenCode Zen / Go
  • Codex via login interativo da assinatura ChatGPT (/login)
  • llama.cpp e Ollama locais

Instalação e Compilação

Hax funciona no Linux, macOS, FreeBSD e OpenBSD. Usuários Windows podem executá-lo dentro do WSL.

No macOS e Linux, a forma mais fácil de instalar o utilitário é via Homebrew:

brew install oleksandrchekhovskyi/hax/hax

No Arch Linux, o pacote está disponível no AUR sob o nome hax.

Se você quiser compilar o binário manualmente e vinculá-lo com bibliotecas do sistema:

git clone https://github.com/OleksandrChekhovskyi/hax.git
cd hax
scripts/install_deps.sh
make
make install

O script de dependências instala o compilador C, libcurl, jansson, meson, ninja, pkg-config e fzf para autocompletar nomes de arquivo via sintaxe @file.

Como Trabalhar com Ele

O modo principal de operação é um REPL interativo diretamente no diretório do projeto:

hax

Comandos com barra estão disponíveis dentro. Por exemplo, /provider exibe uma lista de backends e modelos disponíveis, enquanto /help mostra os atalhos de teclado. O Hax lembra o modelo e provedor selecionado entre execuções.

Para scripts e automação rápida, há um modo de execução única -p:

# Задать разовый вопрос по коду в текущей папке
hax -p "найди места с утечками памяти в main.c"

# Передать данные через пайп
git diff | hax -p "напиши понятный commit message по этому диффу"

# Продолжить последнюю сессию для этого каталога
hax -c

No modo -p, o utilitário envia apenas a resposta limpa para stdout, direcionando mensagens de serviço para stderr. Isso facilita combinar com grep, xargs e outros utilitários Unix.

Por Trás dos Panos

O projeto é escrito em C padrão sem frameworks pesados. As requisições de rede são tratadas através de libcurl, e o parsing e construção de JSON dependem de uma biblioteca compacta jansson.

Toda a arquitetura é construída em torno da auditabilidade do código. Sessões e configurações são armazenadas como arquivos de texto simples seguindo o padrão XDG. Em vez de um sistema de plugins complexo, a funcionalidade é estendida através de subprocessos do sistema operacional.

Para Quem Este Projeto É Indicado

Se você precisa de uma suíte IDE pesada com chats integrados e gráficos visuais, hax provavelmente não é indicado. Não há plugins ou integrações de menu de editor aqui.

Mas se você está acostumado a trabalhar no tmux, executar LLMs locais via llama-server no seu próprio hardware, ou administrar servidores remotos via SSH, hax definitivamente vale a pena experimentar. Ele não faz barulho, não consome recursos e faz exatamente o que é solicitado dele.

Projetos relacionados