Vobuda
Tải xuống Cách hoạt độngClaude Codeso với CodexSo sánh Giới thiệu Liên hệ

Claude Code, với thanh điều khiển thay cho việc cuộn lại lịch sử lệnh

Claude Code thật, với skill, bộ nhớ và quyền hạn của bạn, chạy trong một block của cửa sổ. Phía trên nó là mọi thứ nó biết về chính mình, được vẽ thành các menu mà chuột có thể dùng được.

Vì sao một ứng dụng desktop cho Claude Code là ý tưởng sai, và nên xây gì thay vào đó

Cứ vài tuần lại có người bắt tay làm một ứng dụng desktop cho Claude Code: một cửa sổ chat với client riêng, kho phiên làm việc riêng và danh sách model riêng. Nó chạy tốt được một tháng. Rồi Anthropic ra một model mới, đổi một flag, chuyển chỗ lưu phiên làm việc, và ứng dụng đó sai một cách tự tin về chính chương trình đang nằm ngay trên cùng ổ đĩa.

Vobuda đi con đường kia: đừng cài đặt lại agent, mà gắn vào nó. Bên dưới thanh chạy đúng file nhị phân claude mà bạn đã cài, cùng skill, bộ nhớ, máy chủ MCP và quyền của bạn. Không có gì đi qua proxy. Không có gì được cài đặt lại. Điều chúng tôi thêm vào là phần mà một terminal không làm được: đọc trạng thái của agent từ chính các file và màn hình của nó, và đặt nó vào nơi con chuột với tới được.

Đó là điểm khác nhau giữa một giao diện Claude Code bị lỗi thời và một cái không thể lỗi thời. Một model ra mắt vào ngày mai sẽ xuất hiện trong menu ngay khi Claude Code được báo về nó, và ở đây không có gì cần thay đổi.

Mọi thứ trên thanh điều khiển đều đến từ agent bên dưới nó

Một block Claude Code lấp đầy cửa sổ với thanh điều khiển phía trên và menu model đang mở: Opus 5.5 với effort trung bình được chọn, Fable, Sonnet và Haiku bên dưới với các mức effort của chúng, phía trên một câu trả lời về việc kiểm thử bộ giới hạn tốc độ Một block Claude Code lấp đầy cửa sổ với thanh điều khiển phía trên và menu model đang mở: Opus 5.5 với effort trung bình được chọn, Fable, Sonnet và Haiku bên dưới với các mức effort của chúng, phía trên một câu trả lời về việc kiểm thử bộ giới hạn tốc độ
Menu model đang mở trên thanh điều khiển: model và effort hiện tại được đánh dấu, và bấm một cái khác sẽ gửi nó tới Claude Code. Bên dưới thanh, model, ngữ cảnh và cache được đọc từ phiên.
  • Slash command của Claude Code, dưới dạng menu

    Các lệnh tích hợp của nó, trong đó có /compact, /clear, /model, /effort, /cost, /context, /resume, /rewind, /memory, /agents, /mcp và /status, mỗi lệnh được liệt kê kèm việc nó làm, bằng ngôn ngữ của bạn. Một agent tự vẽ các menu của nó bằng phím mũi tên, nơi con chuột hoàn toàn không với tới được.

  • Skill của Claude Code, được nhóm lại và đếm số lượng

    Mọi skill mà thư mục này thực sự có, được nhóm theo nguồn gốc: skill của riêng bạn từ ~/.claude/skills, skill của dự án từ thư mục tương ứng bên trong nó, skill của nhóm bạn, và bất cứ thứ gì plugin mang tới. Sáu mươi skill từ sáu nguồn khác nhau là một danh sách bạn có thể lướt qua thay vì phải nhớ tên.

  • Phiên làm việc, theo dòng đầu tiên của chúng

    Được đọc từ ~/.claude/projects, kèm thời điểm mỗi phiên chạy. New sẽ bắt đầu một phiên mới, continue gửi lệnh --continue riêng của Claude Code, còn một phiên cũ hơn mở bằng --resume cùng id của nó. Bạn chọn một cuộc trò chuyện theo câu đầu tiên của nó, đúng như cách người ta thực sự nhớ về một cuộc trò chuyện.

  • Model, và effort đi kèm bên cạnh

    Danh sách model của Claude Code lấy từ chính file của nó, đó là nguồn trung thực, được đối chiếu với các giới hạn mà tài khoản bạn nêu: Opus với ngữ cảnh một triệu token đứng đầu, Sonnet và Haiku ở cuối. Nút mang giá trị thay vì chữ model: Opus 5.5 với effort cao, đọc từ dòng trạng thái của chính agent. Và trước khi màn hình nói gì, nút hiển thị điều mà settings.json của Claude Code cho biết nó sẽ khởi động với.

  • Plan mode và các chế độ truy cập còn lại

    Các chế độ của Claude Code: tự quyết định, chấp nhận chỉnh sửa, hỏi trước mỗi bước, chỉ lập kế hoạch. Được đọc từ chính màn hình của nó và đổi bằng cách bấm phím riêng của nó bao nhiêu lần cần thiết, thay vì một cài đặt của chúng tôi có thể lặng lẽ không khớp với việc agent thật sự đang làm.

Ba agent, và biết agent nào đang chờ

Một huy hiệu (badge) báo rằng có gì đó đã xảy ra. Nó không nói là gì, và đến khi bạn nhìn vào thì màn hình đã cuộn qua mất rồi.

Trong lúc bạn vắng mặt

Mỗi lần một agent chuyển từ đang làm việc sang đang chờ, cửa sổ sẽ giữ lại một dòng: block nào, agent nào, được yêu cầu gì, dừng lúc nào, mất bao lâu. Bảng agent hiển thị chúng theo nhóm block, mới nhất trước, với một vệt màu ở mép trái của những dòng bạn chưa xem. Bấm vào một dòng sẽ đưa bạn đến block đó.

Một khoảng trống thay vì một sự đoán mò

Yêu cầu được đọc thẳng từ màn hình của agent qua hình dạng dòng nhập của nó, không bao giờ qua một từ cụ thể bên trong, vì giao diện của agent thay đổi theo từng bản phát hành. Khi không đọc được, dòng đó vẫn giữ thời điểm và thời lượng nhưng để trống phần yêu cầu. Một khoảng dưới năm giây mà không có yêu cầu nào thì không được lưu lại: đó là lúc agent đang xử lý một phím bấm, và ghi lại những khoảng này sẽ chôn vùi ba dòng thực sự quan trọng.

Khi giới hạn sử dụng tới

Claude Code có thể tự chờ hết một giới hạn sử dụng và tiếp tục khi nó quay lại. Khi nó chưa bắt đầu việc chờ đó, thanh hiện một nút mở menu riêng của Claude Code cho giới hạn, và lựa chọn là của bạn. Vobuda không tự gửi gì cả. Nếu công việc cần tiếp tục khi bạn vắng mặt, hãy giữ Mac thức trong khoảng thời gian bạn chọn, từ nửa giờ đến mười hai giờ, trong Cài đặt, Agent.

Tín hiệu tự biến mất khi bạn hành động

Một huy hiệu nhấp nháy trên tab, một âm thanh bạn đã chọn sẽ phát, và một thông báo hệ thống xuất hiện khi vobuda không phải cửa sổ đang ở trên cùng. Im lặng khi nó đang ở trên cùng: một thông báo cho thứ đã hiện sẵn trên màn hình chỉ khiến người ta tắt thông báo đi. Nó biến mất ngay khi bạn thực hiện hành động đầu tiên trong cửa sổ, một cú click, một phím bấm hoặc một lần cuộn.

Vibe coding mà không mất mạch

Cách người ta thực sự làm việc với một agent bây giờ là một vòng lặp: mô tả, quan sát, sửa, mô tả lại, và chạy ba vòng lặp như vậy cùng lúc trên ba dự án. Bản thân vòng lặp không có vấn đề gì. Cái hỏng là phần sổ sách xung quanh nó.

Bạn quên mất mỗi block đang dùng model nào, vì bạn đã đổi một model một giờ trước ngay trong agent mà cửa sổ chẳng hề hay biết. Bạn quên mất trong ba agent thì cái nào đang chờ cấp quyền, vì cả ba huy hiệu trông y hệt nhau. Bạn mất dấu phiên làm việc hôm qua, vì tìm lại nó nghĩa là phải nhớ một cái tên chứ không phải một câu. Và bạn mất luôn ảnh chụp màn hình định đưa cho agent, vì lưu file rồi gõ đường dẫn của nó là bốn bước ngay giữa một dòng suy nghĩ.

Mỗi thứ như vậy đều là một mẩu trạng thái mà agent đã biết sẵn và terminal đã vứt bỏ mất rồi. Đọc lại nó và hiển thị nó ra chính là toàn bộ tính năng. Kéo ảnh chụp màn hình thẳng từ hình thu nhỏ ở góc màn hình thả vào block nơi agent đang chạy, thế là agent nhận được bức ảnh: theo đúng con đường mà một đường dẫn file đi qua, đúng như cách Claude Code muốn được đưa cho một ảnh.

Những gì được đọc, và đọc từ đâu

Không có gì trong danh sách này là giá trị chúng tôi lưu, trừ phần mô tả của các slash command. Mỗi cái được hỏi vào lúc nó được hiển thị.

Trên thanh điều khiểnĐọc từ
Phiên làm việc trước đây~/.claude/projects, cùng dòng đầu tiên và thời điểm của mỗi phiên
Skill~/.claude/skills và thư mục tương ứng bên trong dự án, nhóm theo nguồn
Slash commandCác lệnh tích hợp của Claude Code, mỗi lệnh do chúng tôi mô tả bằng ngôn ngữ của bạn
Danh sách modelFile riêng của Claude Code, được ghi theo những gì máy chủ của nó cho biết, và các giới hạn của tài khoản bạn
Mức effortModel đang được dùng
Model và effort hiện tạiStatus line riêng của agent, với settings.json là câu trả lời trước khi màn hình kịp lên tiếng
Chế độ quyềnMàn hình riêng của Claude Code, và được đổi bằng cách bấm phím riêng của nó
ContinueFlag riêng do agent khai báo: --continue với Claude Code, resume --last với Codex

Một agent là một mô tả JSON trong agents.json, được nhận diện qua hình dạng tiến trình của nó, nên thêm một agent mới không cần viết code. Một agent không khai báo flag continue sẽ không có nút này.

Phần này lúc đầu là một lỗi. Cửa sổ giao ra một danh sách model và một cờ continue, được viết khi chỉ có một agent và để nguyên là toàn cục khi đã có ba, nên mở một block Codex thì thấy Opus, Sonnet và Haiku, và bấm continue thì gửi codex --continue, thứ mà Codex đáp lại bằng một lỗi cách dùng. Giờ bất cứ thứ gì đọc từ một chương trình đều thuộc về chương trình đó và chỉ được hỏi qua nó. Danh sách model của Codex không còn là của chúng tôi nữa: menu mở bộ chọn riêng của Codex, đọc các dòng nó hiện ra và bấm dòng bạn chọn, kèm các mức riêng của từng model.

Claude Code trong vobuda, chi tiết

Đây là một GUI cho Claude Code hay là một wrapper?

Không phải cái nào cả. Claude Code thật chạy trong một block terminal, và Vobuda vẽ một thanh điều khiển phía trên dựa trên những gì bản cài đặt đó tự khai báo về chính nó. Skill, bộ nhớ, MCP server và quyền hạn của bạn đều là những thứ bạn đã có sẵn. Không có client nào của chúng tôi đứng giữa bạn và agent.

Làm sao để xem các phiên Claude Code trước đây?

Menu phiên làm việc trên thanh điều khiển liệt kê chúng theo dòng đầu tiên và thời điểm, đọc từ ~/.claude/projects. Mở một phiên sẽ chạy lệnh --resume riêng của Claude Code với id của phiên đó. Continue chạy lệnh --continue riêng của nó.

Tôi có thể đổi model của Claude Code mà không cần gõ lệnh không?

Có. Nút model mang model đang dùng và mở các model mà file riêng của Claude Code cho biết tài khoản của bạn dùng được, với Opus và ngữ cảnh một triệu token của nó đứng đầu rồi tới Sonnet và Haiku. Nút effort bên cạnh mang mức hiện tại và đưa ra những gì model đang dùng hỗ trợ. Cả hai tiếp tục đọc dòng trạng thái của agent, nên đổi model bên trong agent sẽ cập nhật các nút thay vì để chúng nói sai.

Nó có hiển thị skill của Claude Code không?

Nó liệt kê mọi skill mà thư mục thực sự có, nhóm theo nguồn gốc và đếm số lượng, để bạn lướt qua thay vì phải nhớ tên. Nó chỉ đọc các thư mục; nó không cài đặt, xuất bản hay lưu trữ bất cứ thứ gì.

Tôi có thể chạy Claude Code và Codex cùng lúc không?

Có, trong hai block của cùng một cửa sổ hoặc trong hai tab, mỗi bên có thanh điều khiển riêng đọc agent riêng của mình. Xem hai công cụ này khác nhau ra sao trong thực tế ở trang so sánh.

Còn các model chạy cục bộ thì sao?

Một model cục bộ chạy qua Ollama chỉ là một mục trong agents.json và không cần viết code, đúng với mục đích của việc một agent chỉ là một mô tả JSON.

vobuda có nhìn thấy các cuộc trò chuyện của tôi không?

Nó đọc các file riêng của agent trên đĩa của bạn để vẽ các menu, và các cuộc trò chuyện của bạn không đi qua chúng tôi. Yêu cầu duy nhất nó gửi về tài khoản Claude của bạn là các giới hạn sử dụng: cứ mỗi năm phút khi một thanh đang hiện trên màn hình, nó hỏi Anthropic bằng đăng nhập mà Claude Code giữ trong Keychain của bạn, và token chỉ đi tới Anthropic. Không có tài khoản nào ở chỗ chúng tôi và không có máy chủ nào của chúng tôi ở giữa.

Gắn một thanh điều khiển lên agent bạn đang chạy sẵn

Miễn phí, không cần tài khoản, và agent bên dưới chính là agent bạn đã cài đặt.

curl -fsSL https://vobuda.com/install.sh | sh