Codebuff: Công cụ CLI viết mã từ terminal
(news.ycombinator.com)- Codebuff là công cụ CLI cho phép nhập tác vụ bằng ngôn ngữ tự nhiên trong terminal, sau đó đọc codebase và thực hiện cả sửa lẫn tạo file; có thể dùng ngay sau khi cài
npm i -g codebuffmà không cần qua bước chặn đăng nhập - Công cụ rút luồng nhập xuống còn một bước, người dùng chỉ cần nhập tác vụ mong muốn, rồi nó sẽ tận dụng quá trình thực thi yêu cầu để chạy test, chạy trình kiểm tra kiểu và cài package
- Bên trong, công cụ dùng tree-sitter để phân tích các symbol như tên hàm và tên lớp trong 11 ngôn ngữ nhằm tạo bản đồ codebase, đồng thời kết hợp prompt caching của Claude Haiku 3.5 với các lệnh gọi Claude/OpenAI
- Agent đưa các file liên quan vào context, rồi xử lý lời gọi công cụ dưới dạng thẻ XML để thực hiện
edit_file, chạy lệnh terminal và yêu cầu đọc thêm file - Mọi tài khoản đều được cấp tối đa $20 credit, và có thêm credit ở gói $99/tháng; tuy nhiên nhóm phát triển cho biết sản phẩm đắt hơn đối thủ vì context lớn và các lệnh gọi LLM tốn kém
Chỉnh sửa mã bằng ngôn ngữ tự nhiên trong terminal
- Codebuff là công cụ CLI hoạt động như “Cursor Composer trong terminal”
- Nhập thay đổi mong muốn bằng ngôn ngữ tự nhiên và nhấn Enter, công cụ sẽ xem xét codebase rồi chỉnh sửa file
- Có thể vừa sửa file nguồn hiện có vừa tạo file mới
- Có thể chạy test, trình kiểm tra kiểu và cài package để hoàn thành yêu cầu
- Việc cài đặt và bắt đầu sử dụng có thể thực hiện bằng
npm i -g codebuff- Có thể dùng ngay mà không cần qua bước chặn đăng nhập
- Mọi tài khoản đều được cấp tối đa $20 credit
- Video demo: YouTube
Từ thử nghiệm ban đầu đến sản phẩm hóa
- Ý tưởng ban đầu bắt đầu từ việc thử Sonnet 3.5 tại một hackathon
- Script đầu tiên lấy toàn bộ context của codebase trong một lần, rồi ở bước thứ hai ghi lại file
- Quy trình 2 bước này vẫn còn được giữ trong Codebuff hiện nay
- Demo ban đầu không tạo ra được đoạn mã thực sự hữu ích
- Khi truyền kiến thức riêng của từng codebase vào model, ý tưởng knowledge.md đã xuất hiện
- Ở server của startup trước đó, để tạo một endpoint cần sửa 3 file cụ thể, nhưng model không biết điều này
- Khi viết hướng dẫn codebase thành file Markdown như đang giải thích cho người mới và đưa vào system prompt của Sonnet 3.5, chất lượng mã đã cải thiện rõ rệt
- Hiện tại Codebuff vẫn dùng file
knowledge.mdđược tự động đọc ở mỗi yêu cầu
- Ngay trước buổi phỏng vấn YC, độ ổn định của việc chỉnh sửa file là nút thắt lớn nhất
- Nhóm đã thử thay thế chuỗi trong file gốc bằng nhiều chiến lược prompt khác nhau nhưng không hoạt động ổn định
- Vào ngày trước buổi phỏng vấn, họ fine-tune GPT-4o để biến bản phác thảo thay đổi do Claude tạo ra thành git patch
- Nó đã hoạt động vào ngày hôm sau, và được triển khai lên production ngay trước buổi phỏng vấn YC
Bản đồ codebase và luồng thực thi của agent
- Khi chạy, công cụ quét thư mục hiện tại và các thư mục con để tạo bản đồ codebase
- Dùng tree-sitter để phân tích các symbol như tên hàm, tên lớp hoặc tương đương trong 11 ngôn ngữ
- Sử dụng đồng thời cây thư mục và thông tin symbol
- Gửi yêu cầu đến Claude Haiku 3.5 để cache context của codebase và giảm độ trễ phản hồi với đầu vào người dùng
- Khi người dùng gửi tin nhắn, Claude sẽ chọn các file liên quan trước
- Sau khi nạp các file đã chọn vào context, agent sẽ phản hồi
- Lời gọi công cụ được viết và phân tích dưới dạng thẻ XML
- Ví dụ là thẻ chỉnh sửa file dạng
<edit_file path="src/app.ts">…</edit_file> - Các thẻ khác cũng có thể dùng để chạy lệnh terminal hoặc yêu cầu đọc thêm file
Cấu trúc server và hạ tầng
- Server có cấu trúc chuyển tiếp tin nhắn đến Anthropic hoặc OpenAI và không lưu trạng thái
- Dữ liệu di chuyển giữa client và server bằng websocket
- Trong 3 tháng đầu, dịch vụ xử lý yêu cầu bằng cài đặt miễn phí và API key riêng mà không có xác thực hay cơ sở dữ liệu
- Sau đó, nhóm bổ sung các thành phần cần thiết cho vận hành sản phẩm
- Cơ sở dữ liệu Postgres + Drizzle
- Bun server
- Hosting Render
- Xác thực Auth.js
- Website NextJS
- Thanh toán Stripe
- Logging BetterStack
- Dashboard Retool
Giá, trường hợp sử dụng và SDK
- Mức giá gồm hạn mức dùng miễn phí giới hạn và gói trả phí $99/tháng
- Gói trả phí cung cấp nhiều credit hơn
- Nhóm cho biết sản phẩm đắt hơn đối thủ do context lớn hơn và các lệnh gọi LLM đắt đỏ
- Các trường hợp sử dụng thực tế gồm tạo ứng dụng Flutter, viết unit test, chỉnh sửa lặp lại và tự động hóa công việc lặp đi lặp lại
- Một người dùng đã xây song song hai ứng dụng Flutter và tạo ra hóa đơn $500, hoàn thiện ứng dụng thông qua cuộc trò chuyện dài với Codebuff mà không trực tiếp xem mã được tạo
- Nhiều người dùng đã tạo các ứng dụng thực tế cho nhóm hoặc cá nhân chỉ trong cuối tuần
- Các mục đích dùng phổ biến là viết unit test, chạy vòng lặp sửa mã cho đến khi test pass, thiết lập luồng OAuth và scaffold API
- Ngoài ra còn có alpha SDK dành cho người muốn dùng Codebuff trong hệ thống của riêng mình
- Ứng dụng có thể gọi cùng giao diện ngôn ngữ tự nhiên và nhận khả năng chỉnh sửa mã
- Liên kết đăng ký early access: Retool form
1 bình luận
Ý kiến trên Hacker News
Chúc mừng Codebuff ra mắt, nhưng trông nó rất giống Aider. Aider là mã nguồn mở và khi yêu cầu thêm tệp thì chỉ cần phê duyệt là xong. Aider cũng có thể thực thi lệnh. Tôi muốn biết điểm khác biệt là gì
Demo lúc nào cũng chỉ áp dụng cho các dự án đơn giản, và còn thiếu ví dụ về các dự án phức tạp ngoài thực tế. Tôi cần hỗ trợ để xử lý những phần khó của PR. Nhiều công cụ giúp bắt đầu tốt, nhưng lại không đủ để giải quyết vấn đề
Tôi không muốn trả 20 USD để gửi SSH key và clipboard cho nhiều bên thứ ba. Tôi muốn mua phần mềm cung cấp hỗ trợ shell nội tuyến mà không có các lệnh gọi mạng. Đây là quan điểm chung của tôi về những sản phẩm như thế này
Codebuff trước đây được biết đến với tên manicode và hữu ích cho các tác vụ refactor phức tạp. Tôi đã dùng nó trong một dự án Rust để tách tệp thành các thư mục mô-đun, và nó có thể chạy test cũng như kiểm tra lỗi biên dịch. Công việc này tiêu tốn khoảng 100 credit
Tôi thắc mắc liệu mã có được gửi qua máy chủ hay không. Có vẻ triển khai dưới dạng dịch vụ cục bộ sẽ tốt hơn. Tôi cũng muốn biết liệu LLM có thể nhận các lệnh có thể gây mất tệp hay không, và sẽ ngăn chặn điều đó bằng cách nào
Việc để LLM thực thi lệnh mà không có con người rà soát là nguy hiểm và dễ phát sinh lỗ hổng bảo mật
Đã có AIDE, Continue, Cody, Aider, Cursor rồi. Tôi thắc mắc tại sao nên dùng công cụ này
Tôi đã thử công cụ này và thấy nó có những điểm tốt hơn CoPilot và Cursor. Đặc biệt, với CoPilot thì tôi không có cảm giác đang “cạnh tranh” với trình soạn thảo. Tôi có lo ngại về bảo mật và muốn biết họ xử lý các tệp nhạy cảm như thế nào
Tôi thắc mắc liệu nó có tốt hơn Cursor về mặt chất lượng mã hay không. Tôi dùng Cursor và đang tiết kiệm được thời gian sao chép tệp. Tôi vẫn dùng giao diện chatGPT/claude để lập trình
Họ fine-tune GPT-4o để chuyển bản phác thảo thay đổi của Claude thành git patch. Dữ liệu huấn luyện được tạo vào đêm khuya, còn tác vụ fine-tune thì chạy trong lúc ngủ. Tôi muốn biết toàn bộ nội dung của dữ liệu huấn luyện, cũng như cách bản phác thảo thay đổi và git patch đã hoạt động