4 puntos por GN⁺ 2024-09-18 | 1 comentarios | Compartir por WhatsApp
  • Void era un fork de VS Code creado para usar agentes de IA en la base de código, visualizar cambios como checkpoints y permitir traer modelos locales o hosts, pero actualmente está deprecated y ya no acepta contribuciones
  • El proyecto sigue siendo open source, y los desarrolladores que quieran hacer un fork de VS Code pueden tomar como referencia la lógica y la estructura de Void
  • El README presenta como referencias la integración de React + Tailwind, GitHub Actions para empaquetado, firma y actualizaciones automáticas, código de AI provider implementado directamente, y una estructura para manejar IPC y CSP
  • Void afirma que envía los mensajes directamente al provider y no almacena datos, y soporta sintaxis de respuesta como autocomplete (FIM), etiquetas <thinking> y etiquetas de tools
  • Más que desarrollar nuevas versiones, actualmente apoya forks y reutilización mediante recursos como Void Forks, Releases anteriores, Codebase Guide, HOW_TO_CONTRIBUTE y void-builder

Estado del proyecto

  • Void está deprecated y ya no acepta contribuciones
  • Agradece las contribuciones de código y el apoyo de la comunidad, y Void seguirá siendo open source
  • Señala que sigue siendo una de las buenas referencias para consultar al hacer un fork de VS Code

Descargas y recursos para forks

Partes útiles como referencia para implementar un fork de VS Code

  • Void monta React + Tailwind
    • Como esto no es posible en VS Code normal, amplió el pipeline de build para compilar React y manejar el scope de Tailwind
    • Para el scope de Tailwind usa scope
  • Se pueden copiar las GitHub Actions para empaquetar, firmar y actualizar automáticamente Void
    • Explica que el pipeline de build de VS Code es privado, por lo que normalmente es muy difícil
  • El código de AI provider fue implementado desde cero
    • Soporta autocomplete (FIM) y respuestas personalizadas
    • Expone sintaxis para etiquetas comunes como <thinking>, etiquetas de tools, etc.
    • Su arquitectura puede servir como referencia para el uso de IPC y el cumplimiento de CSP
  • Para la edición de archivos usa servicios personalizados
    • EditCodeService puede mostrar diffs incluso token por token mientras se transmite el código por streaming
    • VoidModelService edita archivos en segundo plano y sincroniza los archivos del OS con el buffer de texto
  • La lista completa de repositorios que componen Void se puede consultar en repos

Descripción de las funciones de Void

  • Void permite usar AI agents en la base de código
  • Permite guardar y visualizar cambios como checkpoints
  • Permite traer localmente cualquier modelo o host
  • Afirma que envía los mensajes directamente al provider y que no almacena datos de usuario
  • Este repositorio contiene todo el código fuente de la app Void Desktop

Enlaces de referencia y soporte

1 comentarios

 
GN⁺ 2024-09-18
Opiniones en Hacker News
  • Hace poco intenté refactorizar una app usando VSCode como si fuera una plataforma, y me fue bastante mal por decisiones de diseño de UI que no eran fáciles de sortear ni de mantener
    El marketplace de extensiones cerrado de MS tampoco ayudaba a los objetivos open source
    En cambio, en HN conocí Theia(https://theia-ide.org), y por ser propiedad de una fundación, tener un marketplace open source y permitir modificarlo todo, parecía encajar mucho mejor con objetivos open source
    En teoría también es compatible con la API de extensiones de VSCode, así que recomiendo evaluar Theia para esta app

    • Como referencia, las extensiones se pueden publicar en OpenVSX
      Últimamente muchos proyectos empezaron a hacerlo así; no todos, pero sí bastantes
    • Me pregunto si Theia tiene relación con Eclipse, el IDE Java existente
      O si la mención de “eclipse” es simplemente una desafortunada colisión de nombres
    • Si Theia está construido sobre Monaco, me pregunto si también sería posible algo como una migración con un clic
      El editor Monaco en teoría forma parte del repositorio de vscode, y el “workbench” con los ajustes/configuración está en una capa superior
  • Sería bueno tener un artículo que explique bien por qué herramientas como Cursor y Void decidieron crear un editor nuevo en vez de extensiones para editores existentes (extensión de VSCode, plugin de JetBrains)
    Me pregunto si es por limitaciones técnicas de la API de extensiones o porque es más fácil marketear un editor nuevo que una extensión de editor
    Para individuos o empresas pequeñas puede ser fácil de adoptar, pero en organizaciones grandes, que ya tienen IDEs existentes y varias integraciones, parece una exigencia difícil hacerlas migrar a otro IDE más

    • Según la respuesta del equipo de Cursor, las extensiones de VSCode tienen una capacidad muy limitada para controlar la UI del editor
      Dicen que Command-K y Copilot++ no son posibles como extensión, y que muchas funciones que quieren crear en el futuro tampoco lo serían
      https://forum.cursor.com/t/why-not-a-plugin/2448/2
    • Buena pregunta
      Creo que las extensiones a menudo tienen muchos bugs o son difíciles de integrar de forma natural. Por ejemplo, en Copilot la selección salta, y Codeium u otras extensiones open source tienen limitaciones similares
      Muchas extensiones usan un desplegable de selección rápida para que el usuario ingrese prompts, y eso se siente poco natural
      Para evitar estos problemas, es importante ser dueño del IDE directamente, como Cursor, y creo que esa es también la razón de su popularidad
      Es cierto que adoptar un IDE es difícil. Si se construye sobre una base ya popular, se puede llegar mejor a un grupo pequeño de usuarios, y a largo plazo quieren convencer también a grandes empresas con privacidad y una buena centralización de funciones de AI
    • Cody está implementado exactamente de esa manera, como extensión, y es competitivo frente a Cursor
      Todavía no encontré una razón para usar Cursor asumiendo la desventaja de que sea un “fork”
      Aunque últimamente me pasé en su mayoría a Aider
      Otra persona mencionó la monetización, y quizá esa sea la verdadera razón
  • Es bueno que aumente la competencia, pero aunque pueda sonar un poco descortés, la mayoría de los forks de software desaparecen
    Me gustaría que me convencieran de por qué debería usar esto en vez de Continue + Claude-dev, que son extensiones open source que funcionan en VSCode básico o VSCodium
    Dijeron que “Microsoft también hizo cerrado el marketplace de extensiones”, pero existe Open VSX Registry

    • Me pregunto si están usando modelos locales con Continue
  • Felicitaciones por haber llegado hasta aquí; parece que ahora empieza la parte interesante
    Hay bastantes extensiones que ofrecen autocompletado con Tab tipo snippets y editores con AI, pero hasta donde sé, Cursor es el único que implementó bien el flujo de trabajo de autocorrección con “tab-tab-tab-tab” sin ver todo el archivo
    Probablemente sea una combinación de hacks de Monaco/VSCode y un modelo ajustado propio, es decir, no un modelo de lenguaje grande estándar; cuando dicen “todas las funciones principales de Cursor”, me pregunto si apuntan a esa parte o si se enfocan en otra cosa
    Cursor pudo “importar” bastante bien las extensiones ya descargadas en el perfil local de VSCode, pero a veces tuvo dificultades al usar la API del marketplace para buscar extensiones
    Como punto de partida, conviene conformarse con un enfoque de ese tipo, y como están tratando con Microsoft, también deberían prestar atención a cosas como las guías de marca
    Es mejor evitar decirle al mundo que están “hackeando” la API de Microsoft. Aunque parezca algo menor, si tienen éxito puede traer problemas
    Si también buscan reclutar contribuidores, deberían ordenar mucho el flujo de trabajo de GitHub y CI
    Actualmente, el historial de commits consiste en su mayoría en cambios de documentación commiteados directamente a la rama main sin revisión ni verificaciones, y el único commit inicial con verificaciones parece haber desactivado sin más las verificaciones de Monaco después de que fallaran
    Si quieren hacer crecer el proyecto o atraer contribuidores del nivel necesario, deben establecer una línea base de pruebas y ordenarlo mucho más

    • Esa función también es la única razón por la que uso Cursor
      El autocompletado es demasiado bueno, y al refactorizar se siente casi mágico
      Después de usar Cursor durante todo un mes, volví a probar VSCode, y en comparación Copilot era realmente pésimo
      Quiero seguir usando Cursor, pero no quiero pagar dos suscripciones a Claude. Cursor usa Claude internamente, y yo prefiero Claude Sonnet antes que ChatGPT
    • Una función muy útil en Cursor es apply
      Fusiona automáticamente el código generado por la AI con mi código, y yo solo tengo que aprobarlo o rechazarlo
      Parece que también usa una AI personalizada para esa función, no funciona trayendo mi clave de API y requiere una suscripción
  • Es bueno que haya más competencia en el área de los “editores con IA”, pero me pregunto por qué no lo hacen como una extensión de VSCode
    El enfoque de extensión parece mucho más accesible
    Me pregunto si hay limitaciones en la API de extensiones que dificultan la implementación

    • Probablemente porque las extensiones son difíciles de monetizar y también es difícil justificar una gran valuación de VC
      Void cuenta con el apoyo de HN
    • Estoy de acuerdo. Aunque no es perfecto, VSCode tiene un ecosistema bastante amplio
      Hay que seguir constantemente las diferencias entre el fork y el producto original, y no quiero tener que lidiar en mi flujo de trabajo con funciones que falten o extensiones que se rompan en ese proceso
      Cursor ofrece una experiencia bastante pulida, pero al final volví a VSCode y uso continue.dev. Aunque es mucho más tosco, la UI funciona lo suficientemente bien
    • Buena pregunta, y es cierto que una extensión es más accesible
      Pero con solo una extensión no hay una buena forma de crear la UI nativa que queremos
      Por ejemplo, mostrar el antes y el después de los cambios es algo central, pero dentro de una extensión no se siente natural
      Extensiones como Codeium usan el método más simple de escribir directamente en el archivo algo como <<<<<<< DIFF >>>>>>>>, lo que rompe el resaltado de sintaxis
      Otras extensiones, como Copilot, tienen muchos bugs
      Actualmente Void está construido sobre una extensión, pero también estamos modificando e integrando partes del IDE para crear una experiencia de usuario más nativa
    • Mucha gente prefiere JetBrains antes que VSC
      Por ejemplo, ahora mi editor con IA favorito es Zed.dev, y permite configurar muy fácilmente varios mapas de teclas, incluidos los de JetBrains
      https://zed.dev/
    • No estoy seguro, pero actualmente continue es realmente malo
      Me arruina todo mi entorno de VSCode, incluidos los atajos de Vim
  • No sé si de verdad hace falta “poseer” todo el editor para hacer esto
    Solo mantener la sincronización con upstream ya es una carga enorme, y no veo qué se gana con eso
    Como dijeron otros, también hay registros alternativos, y es más fácil guiar al usuario para que instale un plugin independiente que hacer que descargue e instale todo un editor
    Me pregunto si no bastaría con crear su propia extensión de Copilot y conectarla a una instancia de ollama
    ¿No es eso lo que hace Continue? https://marketplace.visualstudio.com/items?itemName=Continue...

  • ¿Está en una etapa tan temprana que ni siquiera se puede descargar todavía? No entiendo por qué tendría que entrar a un servidor de Discord por un editor de código
    Me pregunto cuál será el plan cuando VS Code incorpore todas las funciones

    • El código está aquí: https://github.com/voideditor/void/tree/main/extensions/void
      Pero por ahora es realmente básico. Es casi una implementación mínima que hace llamadas a modelos de lenguaje grandes desde un panel lateral y crea una vista para aplicar/rechazar diferencias
      Por ahora es casi un proyecto de fin de semana
    • Ese podría ser el punto central
      Tal vez el juego sea ver quién es adquirido por Microsoft y termina formando parte de VS Code
  • También está PearAI. Dicen que es un editor de código con IA de código abierto, fork de VSCode y Continue
    Este espacio se está llenando cada vez más: cursor.sh, continue.dev, double.bot, supermaven, codium.ai, PearAI y ahora también Void
    https://github.com/trypear/pearai-app

    • Si probaste los otros, me gustaría saber específicamente qué no te gustó
      Soy uno de los creadores de https://double.bot
  • Ojalá alguien hiciera un fork de Omnivim2 para que pueda competir mejor con VS Code
    Según entiendo, este editor se ve como VS Code, pero compila de forma nativa y soporta plugins de VS Code
    Lamentablemente, el proyecto parece abandonado y está escrito en ReasonML
    Estoy cansado de que las herramientas de desarrollo se construyan alrededor del navegador web
    En los 90 y los 2000 teníamos apps totalmente nativas que no necesitaban ser tan complejas como ahora
    Además, internamente funciona sobre Vim, lo que para mí es más bien una fortaleza
    https://github.com/onivim/oni2

  • Parece una publicación duplicada de otro Show HN que el mismo usuario publicó hace 4 días
    https://news.ycombinator.com/item?id=41523197

    • Si la publicación aún no recibió suficiente atención, unas pocas republicaciones están bien
      También está en las FAQ: https://news.ycombinator.com/newsfaq.html#reposts
    • Hicimos un lanzamiento más pequeño hace unos días, pero con base en ese feedback cambiamos bastante la página de contribuciones de GitHub, el sitio web y el logo
      Solo estamos intentando lanzar rápido
    • ¿Entonces lanzaron dos veces? En un mercado tan competitivo hay que lanzar tantas veces como se pueda
    • Se considera una práctica muy apropiada