Eu queria uma coisa simples: um app dedicado para usar o Claude CodeClaude Code Ferramenta de linha de comando da Anthropic. Você desenvolve software conversando com IA direto no terminal — ela lê seu código, edita arquivos e roda testes. no meu ObsidianObsidian App de notas que funciona como segundo cérebro. Você escreve em Markdown, conecta ideias com links bidirecionais, e tudo fica local no seu computador.. Abrir, já estar na pasta certa, sem misturar com as outras vinte abas do iTerm2iTerm2 O terminal favorito dos devs no macOS. Mais poderoso que o Terminal.app padrão — com abas, split panes, e atalhos que viciam. Gratuito e open source.. Um clique e pronto — o Claude Code ali, focado, pronto para tomar notas comigo.

O que aconteceu nas horas seguintes me lembrou por que eu ainda me animo com tecnologia depois de mais de 15 anos escrevendo software. Em uma única sessão de trabalho, construí um aplicativo macOSmacOS O sistema operacional dos computadores da Apple (MacBook, iMac, Mac Mini). Diferente do iOS, que roda nos iPhones. nativo, open sourceOpen Source Software com código aberto — qualquer pessoa pode ver, copiar, modificar e distribuir. É o oposto de software proprietário, onde o código é secreto., distribuído via GitHubGitHub A maior plataforma do mundo para hospedar e compartilhar código. Funciona como uma rede social para desenvolvedores, onde projetos são publicados e colaborações acontecem. — e não escrevi uma linha de código manualmente. Fiz tudo conversando com uma IA.

Essa é a história do ClaudeSidian.

O problema: contexto misturado

Quem trabalha com terminalTerminal Uma janela onde você digita comandos de texto para controlar o computador, em vez de clicar em botões e menus. Desenvolvedores usam o tempo todo. sabe como é. Você abre o iTerm2 e já tem doze abas — um projeto aqui, um servidor ali, um SSH acolá. Agora imagina adicionar mais uma aba para o Claude Code, que precisa ficar aberta o tempo todo no seu vaultVault No Obsidian, "vault" é a pasta no seu computador onde ficam todas as suas notas. Arquivos Markdown, sem cloud obrigatório. Você é dono dos seus dados. do Obsidian. Em cinco minutos ela se perde no meio das outras.

O que eu queria era separação de contexto. Um app só para isso: abrir, já estar no diretório certo, e ter o Claude Code como assistente de notas no meu dia a dia. Sem digitar cd ~/obsidian-vault toda vez. Sem confundir abas. Sem atrito.

Parecia simples. E deveria ser.

A primeira tentativa: o atalho que quase funcionou

Fiz o que qualquer desenvolvedor pragmático faria: o mínimo viável. Pedi ao Claude Code para criar um wrapperWrapper Um programa que "embrulha" outro. Em vez de executar diretamente, o wrapper prepara o ambiente e depois chama o programa real por baixo dos panos. — um app que, por baixo dos panos, mandava o Terminal.app executar o comando certo na pasta certa. Um script de poucas linhas embrulhado numa estrutura de aplicativo macOS.

Funcionou. O Claude Code abria, o ambiente era carregado, tudo rodava. Até eu apertar Cmd+Tab.

O ícone que aparecia era o do Terminal.app. Não o do meu app. A janela era genérica, sem personalidade — visualmente parecia qualquer outra sessão de terminal. Porque, na prática, eu não tinha criado um aplicativo — tinha criado um atalho sofisticado. E atalhos não têm identidade.

A pergunta que mudou tudo

Voltei para a conversa com o Claude Code e fiz a pergunta óbvia: como faço para ter meu próprio ícone no Cmd+Tab? Parece uma questão estética, mas era sobre algo mais fundamental — sobre o app existir como cidadão de primeira classe no sistema operacional.

A resposta envolveu pesquisa. Existiam três caminhos: usar ElectronElectron Framework que permite criar apps desktop usando tecnologias web (HTML, CSS, JavaScript). Poderoso, mas cada app carrega um navegador inteiro — o que pesa bastante. (pesado demais), construir um terminal do zero em SwiftSwift A linguagem de programação criada pela Apple para desenvolver apps no iPhone, Mac e demais plataformas Apple. Moderna, rápida e segura. (complexo demais), ou usar uma biblioteca chamada SwiftTermSwiftTerm Biblioteca open source que emula um terminal dentro de apps Swift. Nativa, leve (menos de 2MB), e com suporte completo a cores e interatividade. — um emulador de terminal nativo, maduro, com menos de 2MB. O Claude Code avaliou as opções, explicou os tradeoffs, e recomendou o SwiftTerm.

Concordei. E em minutos, a conversa produziu um aplicativo completamente diferente: um app Swift nativo, com janela própria, ícone no DockDock A barra de ícones que fica na parte inferior (ou lateral) da tela do Mac. É onde ficam os atalhos para seus apps favoritos., terminal integrado, suporte completo a cores e interatividade. Tudo com 1.4MB.

Os detalhes que só aparecem no uso real

Aqui é onde a história fica honesta. O app funcionava, mas usar de verdade revelou uma série de problemas que nenhum planejamento teria previsto:

  • Cmd+W não fechava a janela. O componente de terminal capturava o evento de teclado antes do sistema conseguir processar. Precisou de uma correção específica na cadeia de eventos do macOS.
  • O título da janela mudava sozinho. O Claude Code atualiza o título do terminal conforme você interage. Tive que travar o título para manter a identidade do app.
  • Shift+Enter não funcionava. O Claude Code usa essa combinação para entrada multilinhas. O SwiftTerm não sabia o que fazer com ela. Precisou de uma subclasse customizada que interceptasse a tecla e enviasse o sinal correto.
  • Acentos não funcionavam. Eu não conseguia digitar "ã", "é", "ç". Uma configuração padrão da biblioteca estava interceptando a tecla Option, quebrando o mecanismo de composição de caracteres do macOS. Um problema que só afeta quem escreve em português — e que a maioria dos desenvolvedores anglófonosAnglófonos Pessoas que falam inglês como língua nativa. A maioria das bibliotecas e ferramentas de desenvolvimento são criadas por — e para — esse público. nunca encontraria.

Cada problema foi resolvido na mesma conversa. Eu descrevia o que acontecia, o Claude Code investigava, propunha uma solução, eu testava, e seguíamos. O ciclo entre "isso não funciona" e "agora funciona" era de minutos, não de horas.

A IA não substituiu a engenharia. Ela acelerou o ciclo de feedback entre ter uma ideia e ver ela funcionando. Quem dirige ainda sou eu.

De projeto pessoal a open source

Até esse ponto, tudo era hardcodedHardcoded Quando um valor está fixo diretamente no código, em vez de ser configurável. Funciona para quem escreveu, mas quebra para qualquer outra pessoa.: o comando, o diretório, o caminho do binário. Funcionava para mim, mas para mais ninguém. Decidi abrir o código.

Isso exigiu uma refatoração significativa. Pedi ao Claude Code para tornar tudo configurável: um arquivo de configuração, um assistente de primeiro uso com interface gráfica, um menu de preferências acessível por Cmd+,. O app precisava funcionar para qualquer pessoa, não só para mim.

Além do código, vieram todos os artefatos que um projeto open source precisa: READMEREADME O cartão de visitas de um projeto de software. Um arquivo de texto que explica o que o projeto faz, como instalar e como usar. É a primeira coisa que alguém lê no GitHub., CHANGELOGCHANGELOG Um registro cronológico de todas as mudanças do projeto — o que foi adicionado, corrigido ou removido em cada versão. Um diário do software., licença MITLicença MIT Uma das licenças open source mais permissivas. Basicamente diz: "use como quiser, só mantenha o crédito". Simples, sem burocracia., script de build. E o mais importante: um pipeline de CI/CDCI/CD Integração e entrega contínua. Um robô automático que, a cada mudança no código, compila, testa e prepara uma nova versão para download — sem intervenção manual. no GitHub Actions que gera automaticamente um binário universal (Apple Silicon e Intel) a cada nova versão.

O primeiro release falhou. O ambiente de CI usava uma versão do Swift diferente da minha máquina. Um clássico "funciona na minha máquina" — resolvido trocando a versão do runner. O segundo release funcionou.

O que isso ensina sobre IA e construção de produtos

Não quero romantizar. O Claude Code não "criou" o ClaudeSidian. Eu criei. A IA foi a ferramenta — extraordinariamente capaz, mas uma ferramenta. Cada decisão de design, cada momento de "isso não está bom o suficiente", cada priorização veio de anos de experiência sabendo o que importa e o que é ruído.

O que a IA mudou foi a velocidade de materialização. Ideias que levariam dias para prototipar se tornaram reais em horas. E isso muda o cálculo do que vale a pena tentar.

Algumas lições que ficaram:

  • A qualidade da pergunta determina a qualidade da resposta. Saber o que pedir exige conhecer o território. Minha familiaridade com macOS, terminal e engenharia de software permitiu fazer perguntas precisas. A IA amplifica competência — não a substitui.
  • O processo é iterativo, não mágico. Foram seis versões, dezenas de idas e vindas, bugs inesperados. A conversa com a IA se parece mais com pair programmingPair Programming Prática em que dois desenvolvedores trabalham juntos no mesmo código: um escreve enquanto o outro revisa em tempo real. Multiplica a qualidade e reduz erros. do que com um oráculo.
  • Shipping é a parte difícil. Fazer funcionar na sua máquina é 30% do trabalho. Configuração, distribuição, CI/CD, documentação — tudo isso é trabalho real que a IA também ajuda a fazer, mas que alguém precisa dirigir.
  • Bugs são professores. O problema dos acentos só existia porque eu escrevo em português. O Shift+Enter só importava porque eu uso o Claude Code de verdade. Você só descobre esses problemas usando o que construiu.

Raízes profundas, frutos novos

O ClaudeSidian é um app pequeno. Três arquivos Swift, uma dependência, 1.4MB. Mas ele encapsula algo que acredito profundamente: a melhor forma de entender uma tecnologia é construir algo real com ela.

No Labs da Cajueiro.tech, é exatamente isso que fazemos. Não escrevemos sobre IA em abstrato — criamos produtos, testamos limites, publicamos código. Cada projeto é um laboratório vivo de aprendizado que alimenta nossa consultoria e mentoria.

O ClaudeSidian está disponível como open source no GitHub. Se você usa Claude Code no macOS, talvez ele resolva a mesma coceira que resolveu para mim.

E se você está pensando em como IA pode acelerar a construção dos seus próprios produtos — vamos conversar.