- Claude Code evoluiu para além de uma simples ferramenta de programação e se tornou um sistema operacional de agentes, um sistema inovador que oferece suporte a diversos fluxos de trabalho por meio de acesso ao sistema de arquivos e integração com comandos Unix
- Em especial, a integração com o sistema de notas Obsidian automatiza a escrita de notas, a pesquisa e a organização do pensamento, implementando um sistema operacional de notas completo, acessível até pelo celular via conexão SSH
- O recurso de acesso ao sistema de arquivos é o principal diferencial, pois permite manter memória e estado entre conversas, resolvendo as limitações fatais do ChatGPT e do Claude no navegador: restrições de janela de contexto e limitações de memória
- A filosofia Unix (simplicidade, composabilidade e processamento de fluxos de texto) se alinha perfeitamente à forma como LLMs usam ferramentas, redescobrindo princípios de design de 50 anos atrás como a arquitetura ideal para sistemas modernos de IA
- Por meio de casos práticos de aplicação, como automação de gerenciamento de e-mails (Inbox Magic) e ferramentas open source (Claudesidian), o texto enfatiza que sistemas de agentes baseados em sistema de arquivos são a base para construir aplicações de IA mais confiáveis e depuráveis do que estruturas complexas de múltiplos agentes
O que torna o Claude Code especial
- Recentemente, em conversas sobre IA, tenho sempre falado com entusiasmo sobre as funções impressionantes do Claude Code, explicando que essa ferramenta evoluiu de um simples assistente de programação para um sistema operacional de agentes completo
- Em especial, a integração com o aplicativo de notas Obsidian é central: ao contrário do Notion ou do Evernote, o Obsidian armazena todos os arquivos no disco local como arquivos Markdown comuns
- Essa característica fez dele um alvo ideal para ferramentas de programação com IA; comecei com o Cursor, mas logo migrei para o Claude Code
- Fiquei tão dependente desse sistema que acabei montando um servidor em casa e acessando-o pelo smartphone via SSH, criando um ambiente em que posso escrever notas, lê-las e organizar pensamentos mesmo em movimento
- Há algumas semanas, participei do podcast AI & I de Dan Shipper para explicar esse sistema em profundidade, e neste texto compartilho insights adicionais que percebi desde então
A superioridade do Claude Code em relação ao Cursor
- Foi difícil responder à pergunta “por que o Claude Code é especial?”, mas a conclusão foi que não se trata de ele ser melhor que o Cursor em todos os aspectos, e sim de uma combinação específica de elementos que funciona excepcionalmente bem
- Ultimamente, tenho usado mais o Claude Code para construir coisas totalmente novas sobre suas capacidades do que para trabalhar em codebases existentes
-
Harmonia perfeita com a filosofia Unix
- O segredo do Claude Code está em sua abordagem de ferramentas: como aplicativo baseado em terminal, ele abre mão de acessibilidade mais ampla, mas em troca oferece o poderoso recurso de integração nativa com comandos Unix
- A filosofia Unix foi documentada por Doug McIlroy em 1978 no Bell System Technical Journal, apresentando quatro princípios centrais:
- 1. Fazer com que cada programa faça bem uma única coisa. Para uma nova tarefa, construir algo novo em vez de adicionar recursos a programas antigos
- 2. Esperar que a saída de todo programa possa se tornar a entrada de outro programa ainda desconhecido
- 3. Projetar e construir software para que possa ser testado cedo, idealmente em poucas semanas
- 4. Usar ferramentas para tornar o trabalho de programação mais leve, em vez de depender de mão de obra pouco qualificada
- A versão resumida por Peter H. Salus em 1994, em "A Quarter-Century of Unix":
- Escreva programas que façam bem uma única coisa
- Escreva programas que trabalhem juntos
- Escreva programas para processar fluxos de texto (porque essa é uma interface universal)
-
Encaixe perfeito entre LLMs e comandos Unix
- Esses princípios de 50 anos coincidem exatamente com a forma como LLMs usam ferramentas
- Os modelos continuamente fazem "pipe" da saída para a entrada (com sua própria imprecisão no meio), conectando a saída de um comando à entrada de outro, como o comando
| do Unix
- Quando um modelo não consegue combinar ferramentas de forma eficaz, quase sempre é porque a ferramenta é complexa demais
- A primeira parte do motivo pelo qual o Claude Code é impressionante: os comandos que movem o Unix são perfeitamente adequados para uso por LLMs
- Além de simples, esses comandos são muito bem documentados, o que significa que havia material-fonte suficiente para o treinamento do modelo
-
A revolução do acesso ao sistema de arquivos
- O outro elemento é a capacidade do Claude Code de escrever código e, mais recentemente, também prosa
- Lendo o artigo análise aprofundada da Pragmatic Engineer sobre a construção do Claude Code, encontrei a resposta: acesso ao sistema de arquivos
- O sistema de arquivos muda tudo
- Dois defeitos fatais do ChatGPT e do Claude baseado em navegador: falta de memória entre conversas e janela de contexto estreita
- O sistema de arquivos resolve ambos: o Claude Code pode escrever notas para si mesmo, acumular conhecimento e manter agregações em execução
- Ele passa a ter estado e memória, podendo pensar além de uma única conversa
AI Overhang
- Quando usei a API do GPT-3 pela primeira vez em 2022, previ que, mesmo que os modelos não melhorassem além daquele momento, levaríamos 10 anos para descobrir casos de uso
- Os modelos de fato melhoraram (modelos de raciocínio tornaram confiável a chamada de ferramentas), e a descoberta do sistema de arquivos comprova essa tese
- Na entrevista da Pragmatic Engineer, Boris Cherney, que construiu as primeiras versões do Claude Code, explica isso usando o conceito de "product overhang":
- Product overhang significa que o modelo é capaz de executar determinada tarefa, mas o produto em que a IA roda não foi construído para capturar essa capacidade
- O modelo já era capaz de navegar pelo sistema de arquivos, mas não existia um produto construído em torno dessa capacidade
- O autor argumenta que a chave é a combinação sistema de arquivos + comandos Unix, mas o ponto central é que a capacidade do modelo já existia e só estava esperando para despertar
- O Claude Code funciona como um modelo para construir sistemas de agentes confiáveis porque captura as capacidades do modelo, em vez de limitá-las por meio de uma interface excessivamente projetada
Além do código
Projeto open source Claudesidian
- Falei sobre minha configuração de Claude Code + Obsidian e, na prática, fui além e transformei o "Claudesidian" em open source
- Ele inclui muitas das ferramentas e comandos que uso na minha configuração de Claude Code + Obsidian
- Serviu como campo experimental, especialmente para construir uma ferramenta inicial de upgrade
- Quando mudanças acontecem no núcleo, posso trazê-las para meu Claudesidian, e a IA verifica se há alterações nos arquivos atualizados e, se houver, tenta mesclar de forma inteligente a nova atualização com as mudanças existentes
- Ambos os projetos seguem os mesmos princípios da filosofia Unix: ferramentas simples, combináveis, que fazem bem uma coisa e funcionam juntas
Inbox Magic - sistema de automação de e-mails
- Ainda não está pronto para lançamento, mas estou trabalhando em um projeto chamado "Inbox Magic" (pretendo pensar em um nome melhor), que devo divulgar em breve
- Trata-se de um repositório do Claude Code com acesso a um conjunto de ferramentas do Gmail, que funciona como um assistente de e-mail por meio de muitos prompts e comandos
- No momento, as funções são bastante simples:
- Pode executar buscas ou enviar e-mails em seu lugar
- Pode executar treinamento completo para classificar e-mails e aprender seu estilo de escrita
- Tanto o Claude Code quanto o ChatGPT conseguem acessar e-mails, mas normalmente buscam apenas um ou dois por vez
- Este sistema consegue escrever em arquivos e usar diversos truques, então pode fazer tarefas como “encontrar todos os e-mails relacionados a viagens na caixa de entrada, construir um perfil dos hábitos de viagem e usar isso como prompt para que ChatGPT/Claude façam pesquisas de viagem alinhadas às preferências reais”
- Se quiser testar, envie seu nome de usuário do GitHub e ele será compartilhado assim que estiver pronto para testes
Lições principais
- Em geral evito conclusões, mas aqui há algumas lições que vale reforçar:
- 1. O sistema de arquivos é uma excelente ferramenta para resolver a falta de memória e estado dos LLMs e deveria ser usado com mais frequência
- 2. Para fazer a chamada de ferramentas funcionar, é preciso focar em seguir a filosofia Unix
- 3. O Claude Code representa um modelo para futuros sistemas de agentes
- Sistema de arquivos + filosofia Unix deveriam servir de modelo para construir agentes de IA confiáveis e depuráveis, em vez dos complexos sistemas multiagentes que circulam hoje
- Em termos táticos, ao construir chamadas de ferramentas em seus próprios projetos, o essencial é manter tudo simples e permitir que o thread principal do modelo faça esse "pipe"
- Um grande problema a ser resolvido em todos os agentes/chatbots: a capacidade de fazer pipe sem passar pela janela de contexto
- 4. Quem não consegue encontrar casos de uso para LLMs não está se esforçando o suficiente
1 comentários
Opiniões do Hacker News
Gosto muito do fato de o Claude Code funcionar no estilo Unix; dá para criar facilmente outras ferramentas no estilo Unix e o Claude consegue usá-las imediatamente sem trabalho extra de integração; basta fornecer a
man pageda ferramenta e o Claude a utiliza com habilidade; dá para seguir sem MCP nem definições complexas de ferramentas; também funciona sem problemas com uma ferramenta de acesso ao navegador que eu mesmo crieiRecentemente atualizei uma ferramenta feita para pesquisar melhor em manpages nesta era dos LLMs, o Mansnip; acho que empacotar isso como um STDIO MCP também seria uma boa abordagem; seria legal colocar uma API por cima desse código e também publicar o servidor no pip; não parece algo tão difícil
Tenho curiosidade sobre como o Claude Code usa o navegador a partir dos meus scripts ou ferramentas; eu queria manipular diretamente janelas de sessão já existentes do Safari, mas a maioria lida apenas com Chrome ou com uma nova instância separada
Houve um momento em que percebi que, em vez de pedir diretamente ao Claude para encontrar problemas, é muito mais eficiente ensinar a ele como usar um linter; nem precisei dizer qual linter usar, só informei a lista e instalei, e ele começou a aproveitar isso na hora; quando tentei programar com o ChatGPT, era preciso esforço demais para obter resultados úteis, então eu não esperava muito, mas com o Claude Code foi uma experiência realmente surpreendente
Todos os apps GUI são diferentes entre si e existem como castelos cercados por suas próprias muralhas, como feudos isolados dentro do OS; já a CLI é a praça pública comum onde todos se encontram, um mercado de informação onde dados e sinais circulam; nem é preciso ter qualquer senso de pertencimento para entrar nessa praça; no lado GUI, algo parecido seria o Smalltalk, mas até ali é preciso jurar lealdade antes de conseguir entrar
Na verdade, também existem sistemas GUI com um nível bem alto de interoperabilidade e composabilidade, como NextSTEP ou dbus; se quiser, também é possível criar uma GUI em cima de APIs abertas, adicionando apenas a camada gráfica; não é comum, mas é tecnicamente possível
Mesmo que pareçam fortalezas presas ao OS, do ponto de vista do usuário comum, apps GUI são muito mais preferidos do que apps CLI; se só existisse CLI, a disseminação dos computadores teria sido muito mais lenta
Só porque uma ferramenta emergente roda no terminal não significa automaticamente que ela seja uma “verdadeira implementação da filosofia UNIX”; essa comparação em si não faz sentido; acabei caindo num típico título isca do Hacker News
A filosofia UNIX aqui não significa apenas apps de terminal; o ponto importante é que LLMs modernos conseguem executar comandos de shell diretamente; por causa disso, os LLMs já estão num estágio em que podem realizar quase tudo o que um humano consegue fazer no shell
Se olhar para o núcleo da filosofia UNIX, há 1) programas pequenos que fazem apenas uma coisa, 2) esses programas podem ser combinados para realizar tarefas mais complexas, 3) fluxos de texto são usados como interface universal; isso combina muito bem com LLMs; graças a uma interface textual única como
exec(), todas as ferramentas trabalham sobre arquivos e fazem entrada e saída em texto, então os LLMs conseguem aproveitá-las imediatamente; essa estrutura de software não era inevitável, mas do jeito que foi construída, encaixa perfeitamente com LLMsOs 3 comentários do topo também parecem todos como se tivessem sido escritos porque um LLM mandou fazer autopromoção
Houve uma época em que se falava muito que a CLI tinha morrido, mas recentemente, graças a ferramentas como o claude code, a CLI acabou se tornando uma interface superior; claro que não pretendo transformar isso numa oposição entre lados, mas essa mudança de cenário é interessante
Na verdade, do ponto de vista de usuários experientes, incluindo desenvolvedores, nunca ouvi falar em “CLI is dead”; para usuários comuns, pode parecer que a CLI desapareceu depois da chegada da GUI, mas na prática a CLI sempre existiu em segundo plano; com o OS X surgiu um shell Unix de verdade, o Windows tem PowerShell, e o Linux domina completamente o mercado de servidores
Eu também estou construindo interfaces GUI personalizadas; estou criando um ambiente de desktop inteiro do meu jeito, adaptado ao meu gosto de usar o computador; antes eu recorria muito ao terminal porque as ferramentas GUI convencionais eram incômodas, mas hoje meu ambiente de UI está melhorando cada vez mais
A combinação de Claude com Obsidian cria um fluxo de trabalho muito bom; estou deixando para a AI todas as tarefas repetitivas de gerenciamento de notas; eu acumulo notas diárias em formato de fluxo de consciência e, a partir delas, extraio novas ideias, projetos e materiais; o Gemini também funciona bem o suficiente
Uma coisa que eu realmente quero destacar na integração entre LLMs e Obsidian é o plugin; plugins do Obsidian são fáceis de customizar, e dá para executar scripts JavaScript a partir de uma pasta local; o Claude Code é excelente para escrever e modificar plugins assim; por exemplo, criei um programa customizado que sincroniza automaticamente arquivos do Obsidian com um repositório no Github com base em uma flag de publicação, e graças a isso, quando atualizo minhas notas, meu site é atualizado imediatamente no Netlify
Para o autor, talvez um serviço como o omnara.com faça mais sentido, já que permite acesso direto pelo celular sem SSH; eu uso um ambiente parecido, com Obsidian e Claude Code rodando em modo headless o tempo todo e acesso direto por um app no celular
Quero usar o Claude Code, mas como não sei exatamente quanto dos dados e arquivos locais é transmitido pela rede, em algumas situações é difícil adotá-lo
Implementei diretamente via MCP uma função como a seguinte
{ "name": "unshare_exec", "description": "executa um binário em um namespace Linux com unshare", "inputSchema": { "type": "object", "properties": { "binary": {"type": "string"}, "args": {"type": "array", "items": {"type": "string"}} }, "required": ["binary"], "additionalProperties": false } }
No começo eu usei apenas
unsharee passei por um bom tanto de yak shaving, mas no fim consegui rodar o gemma3 localmente e executar livremente utilitários baseados em Debian, com resultados impressionantesQuero um ambiente totalmente local com Obsidian local, LLM local e tudo open source; estou esperando por esse futuro
Com os LLMs, a utilidade e o valor dos programas open source estão crescendo ainda mais; antes, mesmo sendo open source, era difícil entender a estrutura do código e não era fácil modificá-lo por conta própria, mas agora, usando LLMs, ficou muito mais fácil fazer pequenos patches ou adicionar novas funcionalidades; ou seja, o programa precisa ser open source para que eu possa ajustá-lo ao meu gosto, e isso é mais importante do que nunca
Só open-weights não basta; para ter significado de verdade, é preciso também poder lidar diretamente com o dataset e o pipeline de treinamento; claro, o usuário comum provavelmente não terá infraestrutura para rodar o pipeline de treinamento, mas é preciso conhecer de forma transparente como os dados são usados e como o modelo é treinado para que seja possível falar em posse real e avaliação de vieses
Um ambiente com Org mode local, LLM local, tudo orquestrado por Emacs e rodando inteiramente em software livre seria maravilhoso; se eu me aposentar e tiver bastante tempo, é um sonho que eu certamente gostaria de tentar realizar
Se tiver interesse, recomendo este texto: https://laurentcazanove.com/blog/obsidian-rag-api
Fico em dúvida se é realisticamente possível rodar localmente modelos de tamanho realmente utilizável, especialmente tomando como referência uma máquina de desenvolvimento com 64 GB de RAM e setup com uma única GPU