4 pontos por GN⁺ 2024-09-18 | 1 comentários | Compartilhar no WhatsApp
  • Void era um fork do VS Code criado para usar agentes de IA na base de código, visualizar alterações como checkpoints e permitir trazer modelos ou hosts locais, mas agora está em estado deprecated e não aceita mais contribuições
  • O projeto continua sendo open source, e desenvolvedores que queiram fazer fork do VS Code podem usar a lógica e a estrutura do Void como referência
  • O README destaca como referências a integração com React + Tailwind, GitHub Actions para empacotamento, assinatura e atualizações automáticas, o código de provider de IA implementado do zero, e a estrutura para lidar com IPC e CSP
  • O Void afirma que envia mensagens diretamente ao provider e não armazena dados, além de oferecer suporte a autocomplete (FIM), tags <thinking> e sintaxe de resposta como tags de tool
  • Em vez de desenvolver novas versões, o projeto agora dá suporte a forks e reutilização por meio de materiais como Void Forks, Releases antigas, Codebase Guide, HOW_TO_CONTRIBUTE e void-builder

Status do projeto

  • O Void está deprecated e não aceita mais contribuições
  • A equipe agradece pelas contribuições de código e pelo apoio da comunidade, e informa que o Void continua sendo open source
  • Também afirma que o projeto continua sendo uma boa referência para quem quiser fazer fork do VS Code

Downloads e materiais para fork

Pontos de referência na implementação do fork do VS Code

  • O Void monta React + Tailwind
    • Isso não é possível no VS Code comum, então o pipeline de build foi expandido para compilar React e tratar o escopo do Tailwind
    • O tratamento de escopo do Tailwind usa scope
  • É possível copiar os GitHub Actions para empacotar, assinar e atualizar automaticamente o Void
    • O texto explica que isso costuma ser muito difícil porque o pipeline de build do VS Code é privado
  • O código do provider de IA foi implementado diretamente, do zero
    • Ele oferece suporte a autocomplete (FIM) e respostas personalizadas
    • Expõe sintaxe para tags comuns como <thinking> e tags de tool
    • A arquitetura para uso de IPC e conformidade com CSP pode servir de referência
  • A edição de arquivos usa serviços customizados
    • O EditCodeService consegue mostrar diffs até no nível de token enquanto o código é transmitido em streaming
    • O VoidModelService edita arquivos em segundo plano e sincroniza os arquivos do sistema operacional com o buffer de texto
  • A lista completa de repositórios que compõem o Void pode ser vista em repos

Explicação dos recursos do Void

  • O Void permite usar AI agents na base de código
  • Permite salvar e visualizar alterações como checkpoints
  • Permite trazer qualquer modelo ou host localmente
  • Afirma que envia mensagens diretamente ao provider e não armazena dados dos usuários
  • Este repositório inclui todo o código-fonte do app Void Desktop

Links de referência e suporte

1 comentários

 
GN⁺ 2024-09-18
Opiniões no Hacker News
  • Recentemente, tentei usar o VSCode como uma plataforma para refatorar um app, e me dei muito mal por causa de decisões de design de UI que não eram fáceis nem de contornar nem de manter
    O marketplace fechado de extensões da MS também não ajudou nos objetivos de open source
    Em vez disso, conheci o Theia(https://theia-ide.org) no HN, e ele pareceu se encaixar muito melhor em objetivos open source por ser mantido por uma fundação, ter um marketplace open source e permitir modificação completa
    Em teoria, ele também é compatível com a API de extensões do VSCode, então recomendo considerar o Theia também para este app

    • Como referência, extensões podem ser publicadas no OpenVSX
      Muitos projetos vêm começando a fazer isso hoje em dia; não todos, mas um número considerável
    • Fico curioso se o Theia tem relação com o Eclipse, a IDE Java antiga
      Ou talvez a menção a “eclipse” seja apenas uma infeliz colisão de nomes
    • Se o Theia foi construído em cima do Monaco, fico curioso se algo como uma migração com um clique seria possível
      O editor Monaco, em teoria, faz parte do repositório do vscode, e o “workbench”, que contém configurações/configuração, fica na camada acima dele
  • Seria bom se houvesse um texto que explicasse bem por que ferramentas como Cursor e Void decidiram criar um novo editor em vez de extensões para editores existentes (extensões do VSCode, plugins da JetBrains)
    Fico curioso se é por limitações técnicas da API de extensões, ou se é porque fazer marketing de um novo editor é mais fácil do que de uma extensão de editor
    Para indivíduos ou empresas pequenas, a adoção pode ser fácil, mas organizações grandes já têm IDEs existentes e várias integrações, então fazê-las migrar para mais uma IDE parece ser uma exigência difícil

    • Pela resposta da equipe do Cursor, uma extensão do VSCode tem capacidade muito limitada de controlar a UI do editor
      Dizem que recursos como Command-K e Copilot++ não são possíveis como extensão, e o mesmo vale para muitos recursos que eles querem criar no futuro
      https://forum.cursor.com/t/why-not-a-plugin/2448/2
    • Boa pergunta
      Acho que extensões muitas vezes têm muitos bugs ou são difíceis de integrar de forma natural. Por exemplo, no Copilot, a seleção dá saltos, e o Codeium e outras extensões open source têm limitações parecidas
      Muitas extensões usam um menu suspenso de seleção rápida para a entrada de prompts do usuário, e isso parece pouco natural
      Para evitar esses problemas, é importante ter controle direto da IDE, como o Cursor faz, e acho que é por isso que o Cursor é popular
      É verdade que a adoção de uma IDE é difícil. Ao construir sobre uma base já popular, dá para alcançar melhor um público menor e, no longo prazo, também quero convencer grandes empresas com privacidade e bons recursos de IA centralizados
    • O Cody foi implementado exatamente do jeito mencionado: como uma extensão, e é competitivo com o Cursor
      Ainda não encontrei um motivo para usar o Cursor assumindo a desvantagem de ser um “fork”
      Mas ultimamente migrei quase totalmente para o Aider
      Outra pessoa mencionou monetização, e esse pode ser o verdadeiro motivo
  • É bom ver a concorrência aumentando, mas, embora possa soar um pouco rude, a maioria dos forks de software desaparece
    Gostaria que me convencessem de por que eu deveria usar isto em vez de Continue + Claude-dev, que são extensões open source que funcionam no VSCode básico ou no VSCodium
    Foi dito que “a Microsoft também tornou o marketplace de extensões fechado”, mas o Open VSX Registry existe

    • Fico curioso se você está usando modelos locais com o Continue
  • O que foi construído até aqui merece parabéns, e parece que agora começa a parte interessante
    Há muitas extensões que oferecem autocomplete por tab no estilo snippets e muitos editores com IA, mas, até onde sei, o Cursor é o único que implementou de verdade um fluxo de trabalho que faz correções automáticas com “tab-tab-tab-tab” sem olhar o arquivo inteiro
    Provavelmente é uma combinação de hacks no Monaco/VSCode e um modelo ajustado internamente, ou seja, não um modelo de linguagem grande pronto; fico curioso se, ao dizer “todos os recursos centrais do Cursor”, é nisso que vocês estão mirando, ou se o foco está em outra coisa
    O Cursor conseguiu “importar” muito bem extensões já baixadas no perfil local do VSCode, mas às vezes teve dificuldade para usar a API do marketplace para buscar extensões
    Como ponto de partida, é melhor ficar satisfeito com algo nesse nível e, por estar lidando com a Microsoft, também é preciso prestar atenção a coisas como as diretrizes de marca
    É melhor evitar dizer ao mundo que vocês estão “hackeando” APIs da Microsoft. Mesmo algo que pareça pequeno pode virar problema se fizer sucesso
    Se a intenção também é recrutar contribuidores, é preciso organizar bastante o fluxo de trabalho do GitHub e o CI
    O histórico de commits atual consiste, em sua maior parte, de alterações de documentação commitadas diretamente no branch main sem revisão ou verificação, e o único commit inicial com verificação parece ter simplesmente desativado a checagem do Monaco depois que ela falhou
    Para fazer o projeto crescer ou atrair contribuidores no nível necessário, é preciso estabelecer uma linha de base de testes e deixá-lo muito mais organizado

    • Essa também é a única razão pela qual uso o Cursor
      O autocomplete é bom demais e, ao refatorar, parece quase mágica
      Depois de usar o Cursor durante um mês inteiro, voltei a experimentar o VSCode, e, em comparação, o Copilot era realmente péssimo
      Quero continuar usando o Cursor, mas não quero pagar duas assinaturas do Claude. O Cursor usa Claude internamente, e eu prefiro o Claude Sonnet ao ChatGPT
    • Um recurso muito útil no Cursor é o apply
      Ele mescla automaticamente o código gerado pela IA com o meu código, e eu só preciso aprovar ou rejeitar
      Parece que esse recurso também usa uma IA customizada, não funciona trazendo minha própria chave de API e exige assinatura
  • É bom ver a concorrência aumentando na área de “editores com IA”, mas fico me perguntando por que não fazem isso como uma extensão do VSCode
    Uma extensão parece muito mais acessível
    Fico curioso se há alguma limitação na API de extensões que dificulte a implementação

    • Deve ser porque é difícil monetizar extensões e também difícil justificar uma grande avaliação de VC
      O Void tem apoio do HN
    • Concordo. Mesmo não sendo perfeito, o VSCode tem um ecossistema bem rico
      É preciso acompanhar continuamente as diferenças entre o fork e o produto original, e não quero lidar no meu fluxo de trabalho com recursos que ficam de fora ou extensões que quebram nesse processo
      O Cursor oferece uma experiência bastante polida, mas no fim acabei voltando para o VSCode e usando o continue.dev. É bem mais tosco, mas a UI funciona bem o suficiente
    • Boa pergunta, e é verdade que uma extensão é mais fácil de acessar
      Porém, só com uma extensão não há um bom jeito de criar a UI nativa que queremos
      Por exemplo, mostrar o antes e o depois das alterações é essencial, mas dentro de uma extensão isso não parece natural
      Extensões como o Codeium usam a abordagem mais simples de escrever diretamente no arquivo coisas como <<<<<<< DIFF >>>>>>>>, o que quebra o realce de sintaxe
      Outras extensões, como o Copilot, têm muitos bugs
      Atualmente, o Void é construído em cima de uma extensão, mas também estamos modificando e encaixando partes da IDE para criar uma experiência de usuário mais nativa
    • Muita gente prefere JetBrains ao VSC
      Por exemplo, meu editor com IA favorito no momento é o Zed.dev, e nele dá para configurar com muita facilidade vários keymaps, incluindo os da JetBrains
      https://zed.dev/
    • Não sei bem, mas o continue atualmente é bem ruim
      Ele bagunçou todo o meu ambiente do VSCode, incluindo os atalhos do Vim
  • Não sei se, para fazer isso, é realmente preciso “possuir” o editor inteiro
    Só manter a sincronização com o upstream já é um peso enorme, e não vejo o que se ganha com isso
    Como outras pessoas disseram, também há registries alternativos, e orientar o usuário a instalar um plugin independente é mais fácil do que fazê-lo baixar e instalar um editor inteiro
    Fico me perguntando se não bastaria criar uma extensão própria do Copilot e conectá-la a uma instância do ollama
    Não é isso que o Continue faz? https://marketplace.visualstudio.com/items?itemName=Continue...

  • Está em um estágio tão inicial que ainda nem dá para baixar? Não entendo por que preciso entrar em um servidor no Discord por causa de um editor de código
    Fico curioso sobre qual é o plano quando o VS Code incorporar todos esses recursos

    • O código está aqui: https://github.com/voideditor/void/tree/main/extensions/void
      Mas, no momento, ele é realmente bem básico. Está perto de uma implementação mínima que faz chamadas a modelos de linguagem grandes em uma janela lateral e cria uma visualização para aplicar/rejeitar diferenças
      Por enquanto, é quase algo de projeto de fim de semana
    • Talvez esse seja o ponto principal
      Pode ser um jogo de ver quem será adquirido pela Microsoft e acabará virando parte do VS Code
  • Também existe o PearAI. Eles dizem que é um “editor de código com IA open source, fork do VSCode e do Continue”
    Esse espaço está ficando cada vez mais cheio: cursor.sh, continue.dev, double.bot, supermaven, codium.ai, PearAI e agora também o Void
    https://github.com/trypear/pearai-app

    • Se você já experimentou os outros, eu gostaria de saber especificamente do que não gostou neles
      Sou um dos criadores do https://double.bot
  • Eu gostaria que alguém fizesse um fork do Omnivim2 para competir melhor com o VS Code
    Pelo que entendo, esse editor parece o VS Code, mas é compilado nativamente e tem suporte a plugins do VS Code
    Infelizmente, o projeto parece abandonado e foi escrito em ReasonML
    Estou cansado de ver ferramentas de desenvolvimento sendo construídas em torno de navegadores web
    Nos anos 90 e 2000, tínhamos apps totalmente nativos que não precisavam ser tão complicados quanto hoje
    Além disso, ele funciona internamente baseado no Vim, o que, aos meus olhos, é mais um ponto forte
    https://github.com/onivim/oni2

  • Parece uma postagem duplicada de outro Show HN publicado pelo mesmo usuário 4 dias atrás
    https://news.ycombinator.com/item?id=41523197

    • Se o post ainda não recebeu atenção suficiente, algumas repostagens são aceitáveis
      Isso também está no FAQ: https://news.ycombinator.com/newsfaq.html#reposts
    • Fizemos um lançamento menor alguns dias atrás, mas com base naquele feedback mudamos bastante a página de contribuição no GitHub, o site e o logo
      Estamos só tentando lançar rápido
    • Lançaram duas vezes? Em um campo competitivo, é preciso lançar o máximo possível
    • Considera-se uma prática bastante apropriada