4 điểm bởi GN⁺ 2024-09-18 | 1 bình luận | Chia sẻ qua WhatsApp
  • Void từng là một fork của VS Code cho phép sử dụng AI agent trong codebase, trực quan hóa các thay đổi dưới dạng checkpoint và đưa mô hình hoặc host cục bộ vào, nhưng hiện đang ở trạng thái deprecated và không còn nhận đóng góp
  • Dự án vẫn là mã nguồn mở, và các nhà phát triển muốn fork VS Code có thể tham khảo logic và cấu trúc của Void
  • README giới thiệu các phần có thể tham khảo như tích hợp React + Tailwind, GitHub Actions cho đóng gói, ký và tự động cập nhật, mã AI provider tự triển khai, cùng cấu trúc xử lý IPC và CSP
  • Void cho biết họ gửi tin nhắn trực tiếp tới provider và không lưu trữ dữ liệu; hỗ trợ cú pháp phản hồi như autocomplete(FIM), thẻ <thinking> và thẻ tool
  • Thay vì phát triển phiên bản mới, dự án hiện đang hỗ trợ việc fork và tái sử dụng thông qua các tài liệu như Void Forks, các bản Releases cũ, Codebase Guide, HOW_TO_CONTRIBUTE và void-builder

Trạng thái dự án

  • Void đang ở trạng thái deprecated và không còn nhận đóng góp
  • Dự án bày tỏ lời cảm ơn tới các đóng góp mã nguồn và sự hỗ trợ từ cộng đồng, đồng thời Void vẫn tiếp tục là mã nguồn mở
  • Dự án cho biết Void vẫn là một trong những tham chiếu tốt khi fork VS Code

Tải xuống và tài liệu fork

Các phần đáng tham khảo khi triển khai fork VS Code

  • Void mount React + Tailwind
    • Điều này không khả thi trong VS Code thông thường, nên Void đã mở rộng pipeline build để xử lý biên dịch React và phạm vi Tailwind
    • Việc xử lý phạm vi Tailwind sử dụng scope
  • Có thể sao chép GitHub Actions để đóng gói, ký và tự động cập nhật Void
    • Dự án giải thích rằng pipeline build của VS Code là riêng tư nên nhìn chung việc này rất khó
  • Mã AI provider được triển khai trực tiếp từ đầu
    • Hỗ trợ autocomplete(FIM) và phản hồi tùy chỉnh
    • Cung cấp cú pháp cho các thẻ phổ biến như <thinking> và thẻ tool
    • Có thể tham khảo kiến trúc sử dụng IPC và đáp ứng CSP
  • Việc chỉnh sửa tệp sử dụng các dịch vụ tùy chỉnh
    • EditCodeService có thể hiển thị diff theo từng token khi mã được stream
    • VoidModelService chỉnh sửa tệp ở nền và đồng bộ hóa tệp OS với text buffer
  • Có thể xem danh sách toàn bộ repository cấu thành Void tại repos

Mô tả tính năng của Void

  • Void cho phép sử dụng AI agents trong codebase
  • Có thể lưu và trực quan hóa các thay đổi dưới dạng checkpoint
  • Có thể đưa bất kỳ mô hình hoặc host nào về cục bộ
  • Void cho biết họ gửi tin nhắn trực tiếp tới provider và không lưu trữ dữ liệu người dùng
  • Repository này chứa toàn bộ mã nguồn của ứng dụng Void Desktop

Liên kết tham khảo và hỗ trợ

1 bình luận

 
GN⁺ 2024-09-18
Ý kiến trên Hacker News
  • Gần đây tôi đã thử dùng VSCode như một nền tảng để refactor ứng dụng, nhưng bị vấp nặng bởi các quyết định thiết kế UI không dễ lách qua cũng khó bảo trì
    Marketplace tiện ích mở rộng không công khai của MS cũng không giúp gì cho mục tiêu mã nguồn mở
    Thay vào đó, trên HN tôi biết đến Theia(https://theia-ide.org), và vì nó thuộc sở hữu của một foundation, có marketplace mã nguồn mở, có khả năng chỉnh sửa toàn bộ, nên có vẻ phù hợp hơn nhiều với mục tiêu mã nguồn mở
    Về lý thuyết nó cũng tương thích với API extension của VSCode, nên khuyên ứng dụng này cũng nên cân nhắc Theia

    • Nhân tiện, extension có thể được phát hành lên OpenVSX
      Dạo này nhiều dự án bắt đầu làm như vậy; không phải tất cả, nhưng cũng khá nhiều
    • Tôi tò mò Theia có liên quan đến Eclipse, IDE Java cũ, hay không
      Hay việc nhắc đến “eclipse” chỉ là một vụ trùng tên không may
    • Nếu Theia được xây trên Monaco, tôi tò mò liệu có thể có kiểu chuyển đổi một cú nhấp hay không
      Trình soạn thảo Monaco về lý thuyết là một phần của repo vscode, còn “workbench” chứa thiết lập/cấu hình nằm ở tầng phía trên
  • Sẽ hay nếu có một bài viết tóm tắt rõ vì sao các công cụ như Cursor, Void lại quyết định tạo trình soạn thảo mới thay vì extension cho editor hiện có (extension VSCode, plugin JetBrains)
    Tôi tò mò đó là do giới hạn kỹ thuật của extension API, hay vì marketing một editor mới dễ hơn một extension cho editor
    Với cá nhân hoặc công ty nhỏ thì có thể dễ đưa vào sử dụng, nhưng các tổ chức lớn vốn đã tích hợp nhiều thứ với IDE hiện có, nên việc khiến họ chuyển sang thêm một IDE nữa có vẻ là yêu cầu khó

    • Theo câu trả lời của đội Cursor, extension VSCode có khả năng kiểm soát UI của editor rất hạn chế
      Các tính năng Command-K và Copilot++ không thể làm bằng extension, và nhiều tính năng họ muốn xây trong tương lai cũng vậy
      https://forum.cursor.com/t/why-not-a-plugin/2448/2
    • Câu hỏi hay
      Tôi cho rằng extension thường nhiều lỗi hoặc khó tích hợp một cách tự nhiên. Ví dụ Copilot làm vùng chọn bị nhảy lung tung, Codeium hay các extension mã nguồn mở khác cũng có các hạn chế tương tự
      Nhiều extension dùng dropdown chọn nhanh cho phần nhập prompt của người dùng, điều này tạo cảm giác thiếu tự nhiên
      Để tránh các vấn đề như vậy, việc sở hữu trực tiếp IDE như Cursor là quan trọng, và tôi nghĩ đó cũng là lý do Cursor phổ biến
      Đúng là việc đưa một IDE vào sử dụng không dễ. Nếu xây trên một nền tảng đã phổ biến thì có thể tiếp cận nhóm người dùng nhỏ tốt hơn, và về dài hạn họ muốn thuyết phục cả các công ty lớn bằng quyền riêng tư cùng sự tập trung hóa các tính năng AI tốt
    • Cody được triển khai đúng theo cách đã nói, dưới dạng extension, và có sức cạnh tranh với Cursor
      Tôi vẫn chưa tìm được lý do phải dùng Cursor trong khi chấp nhận nhược điểm là “fork”
      Tuy vậy gần đây tôi đã chuyển phần lớn sang Aider
      Có người khác nhắc đến việc kiếm tiền, và đó có thể là lý do thật sự
  • Việc cạnh tranh tăng lên là tốt, nhưng dù nghe có thể hơi thô lỗ, phần lớn fork phần mềm đều biến mất
    Tôi muốn được thuyết phục vì sao nên dùng cái này thay vì Continue + Claude-dev, vốn là các extension mã nguồn mở chạy trên VSCode gốc hoặc VSCodium
    Họ nói “Microsoft cũng đã biến marketplace extension thành không công khai”, nhưng Open VSX Registry vẫn tồn tại

    • Tôi tò mò bạn có đang dùng model cục bộ cùng Continue hay không
  • Làm được đến đây là điều đáng chúc mừng, và có vẻ phần thú vị giờ mới bắt đầu
    Có khá nhiều extension cung cấp tự động hoàn thành bằng tab kiểu snippet và các trình soạn thảo AI, nhưng theo tôi biết, chỉ Cursor triển khai tử tế workflow tự động sửa bằng “tab-tab-tab-tab” mà không cần xem toàn bộ file
    Có lẽ đó là sự kết hợp giữa hack Monaco/VSCode và model tự tinh chỉnh, tức không phải một mô hình ngôn ngữ lớn có sẵn; tôi tò mò khi nói “toàn bộ tính năng cốt lõi của Cursor” thì đây có phải là phần đang nhắm tới hay không, hay họ tập trung vào chỗ khác
    Cursor từng có thể “import” khá tốt các extension đã tải sẵn trong profile VSCode cục bộ, nhưng đôi khi gặp khó với việc dùng API marketplace để tìm extension
    Là điểm khởi đầu thì nên hài lòng với cách ở mức đó, và vì đang đối mặt với Microsoft nên cũng phải chú ý tới những thứ như brand guidelines
    Tốt nhất nên tránh nói với cả thế giới rằng mình đang “hack” API của Microsoft. Dù chuyện có vẻ nhỏ, nếu thành công thì có thể trở thành vấn đề
    Nếu mục tiêu cũng là tuyển người đóng góp thì cần dọn dẹp nhiều GitHub workflow và CI
    Hiện lịch sử commit phần lớn là các commit chỉnh tài liệu rồi đẩy thẳng lên nhánh main mà không có review hay kiểm tra, còn commit ban đầu duy nhất có kiểm tra đi kèm thì trông như sau khi kiểm tra Monaco thất bại, họ chỉ đơn giản tắt nó đi
    Nếu muốn phát triển dự án hoặc thu hút contributor ở mức cần thiết, phải thiết lập baseline kiểm thử và sắp xếp mọi thứ ngăn nắp hơn rất nhiều

    • Đó cũng là lý do duy nhất tôi dùng Cursor
      Autocomplete quá tốt, và khi refactor thì gần như có phép thuật
      Tôi dùng Cursor suốt một tháng rồi thử quay lại VSCode, và khi so sánh thì Copilot thật sự rất tệ
      Tôi muốn tiếp tục dùng Cursor nhưng không muốn mua hai gói đăng ký Claude. Cursor đang dùng Claude ở bên trong, và tôi thích Claude Sonnet hơn ChatGPT
    • Tính năng rất hữu ích trong Cursor là apply
      Nó tự hợp nhất code do AI tạo ra với code của tôi, còn tôi chỉ việc chấp nhận hoặc từ chối
      Tính năng này cũng có vẻ dùng AI tùy chỉnh, không hoạt động theo kiểu mang API key của tôi vào dùng, mà cần đăng ký trả phí
  • Việc cạnh tranh trong mảng “trình biên tập AI” tăng lên là điều tốt, nhưng tôi thắc mắc tại sao không làm dưới dạng extension của VSCode
    Phía extension trông có vẻ dễ tiếp cận hơn nhiều
    Không biết có giới hạn nào của API extension khiến việc triển khai trở nên khó không

    • Có lẽ vì extension khó kiếm tiền, và cũng khó biện minh cho định giá VC lớn
      Void được HN hậu thuẫn
    • Đồng ý. Dù không hoàn hảo, VSCode vẫn là một hệ sinh thái khá phong phú
      Phải liên tục theo kịp khác biệt giữa bản fork và sản phẩm gốc, rồi trong quá trình đó có tính năng bị thiếu hoặc extension bị hỏng, là điều tôi không muốn phải chịu trong quy trình làm việc của mình
      Cursor mang lại trải nghiệm khá trau chuốt, nhưng cuối cùng tôi vẫn quay về VSCode và dùng continue.dev. Dù thô hơn nhiều, UI của nó vẫn hoạt động đủ tốt
    • Câu hỏi hay, và nói extension dễ tiếp cận hơn là đúng
      Tuy nhiên, chỉ với extension thì không có cách tốt để tạo UI native như mong muốn
      Ví dụ, việc hiển thị trước/sau thay đổi là phần cốt lõi, nhưng trong extension thì không cảm thấy tự nhiên
      Các extension như Codeium dùng cách đơn giản nhất là ghi thẳng những thứ như <<<<<<< DIFF >>>>>>>> vào trong file, làm hỏng tô sáng cú pháp
      Những extension khác như Copilot thì nhiều lỗi
      Hiện Void được xây trên extension, nhưng cũng đang chỉnh sửa và chèn thêm vào một phần IDE để tạo trải nghiệm người dùng native hơn
    • Nhiều người thích JetBrains hơn VSC
      Ví dụ, trình biên tập AI số 1 hiện tại của tôi là Zed.dev, và có thể thiết lập rất dễ nhiều keymap, kể cả JetBrains
      https://zed.dev/
    • Không rõ lắm, nhưng hiện tại continue thật sự rất tệ
      Nó phá hỏng toàn bộ môi trường VSCode của tôi, kể cả phím tắt Vim
  • Tôi không rõ để làm việc này có thật sự cần “sở hữu” toàn bộ trình biên tập hay không
    Chỉ riêng việc giữ đồng bộ với upstream đã là gánh nặng khổng lồ, và tôi không thấy qua đó thu được gì
    Như những người khác đã nói, cũng có registry thay thế, và hướng dẫn cài plugin độc lập còn dễ hơn việc bắt người dùng tải xuống và cài cả trình biên tập
    Tôi tự hỏi sao không chỉ làm extension Copilot riêng rồi kết nối với một instance ollama
    Continue chẳng phải đang làm việc đó sao? https://marketplace.visualstudio.com/items?itemName=Continue...

  • Đây có phải vẫn ở giai đoạn rất sớm đến mức chưa tải xuống được không? Tôi không hiểu vì sao lại phải vào server Discord vì một trình biên tập mã
    Tôi thắc mắc kế hoạch là gì nếu VS Code đưa tất cả tính năng này vào

    • Code ở đây: https://github.com/voideditor/void/tree/main/extensions/void
      Tuy nhiên hiện giờ nó thật sự chỉ ở mức cơ bản. Gần như là bản triển khai tối thiểu: gọi mô hình ngôn ngữ lớn trong cửa sổ bên và tạo view để áp dụng/từ chối khác biệt
      Hiện tại gần như chỉ ở mức dự án cuối tuần
    • Đó có thể chính là điểm cốt lõi
      Có thể đây là trò chơi xem ai sẽ được Microsoft mua lại và cuối cùng trở thành một phần của VS Code
  • Cũng có PearAI. Họ nói đó là “trình biên tập mã AI mã nguồn mở fork từ VSCode và Continue”
    Lĩnh vực này ngày càng đông đúc: cursor.sh, continue.dev, double.bot, supermaven, codium.ai, PearAI, và giờ có thêm Void
    https://github.com/trypear/pearai-app

    • Nếu bạn đã thử những cái khác, tôi muốn biết cụ thể điểm nào bạn không thích
      Tôi là một trong những người tạo ra https://double.bot
  • Tôi mong ai đó fork Omnivim2 để nó có thể cạnh tranh tốt hơn với VS Code
    Theo tôi hiểu, trình biên tập này trông giống VS Code nhưng được biên dịch native và hỗ trợ plugin VS Code
    Đáng tiếc là dự án có vẻ đã bị bỏ bê, và được viết bằng ReasonML
    Tôi chán việc công cụ phát triển được xây dựng xoay quanh trình duyệt web rồi
    Trong thập niên 90 và 00, chúng ta từng có các ứng dụng native hoàn chỉnh mà không cần phức tạp như bây giờ
    Nói thêm, bên trong nó hoạt động dựa trên Vim, điều này trong mắt tôi lại là điểm mạnh
    https://github.com/onivim/oni2

  • Trông giống bài đăng trùng lặp với một bài Show HN khác do cùng người dùng đăng 4 ngày trước
    https://news.ycombinator.com/item?id=41523197

    • Nếu bài viết chưa nhận được đủ sự chú ý thì một vài lần đăng lại là ổn
      FAQ cũng có nói: https://news.ycombinator.com/newsfaq.html#reposts
    • Vài ngày trước đã có một lần ra mắt nhỏ hơn, nhưng dựa trên phản hồi đó, chúng tôi đã thay đổi khá nhiều trang đóng góp GitHub, website và logo
      Chúng tôi chỉ đang cố ra mắt thật nhanh thôi
    • Vậy là ra mắt hai lần à? Trong sân chơi cạnh tranh khốc liệt thì phải ra mắt nhiều nhất có thể
    • Được xem là một thông lệ rất phù hợp