Bachuc is a personal fork of Paseo by Mohamed Boudra, under the Apache License 2.0. See NOTICE.
About this repository: HiepPP/bachuc is an independently maintained fork of getpaseo/paseo. Paseo was created by Mohamed Boudra and developed with its contributors. This fork is not an official Paseo release and does not imply upstream endorsement. The upstream Apache-2.0 license and copyright notice are preserved; third-party components retain their respective licenses. HiepPP rewrote this README for Bachuc and kept this attribution notice.
Bachuc is Paseo for one user: one interface for Claude Code, Codex, Copilot, OpenCode, and Pi agents, running on your own machine, plus a set of host changes and plugins that only this fork has. The name comes from Ba Chúc, a place in An Giang, Vietnam, and the logo is its 300-year-old tree.
Bachuc ships as a macOS desktop app and the web UI that its daemon serves. Everything Paseo does still works; read the Paseo docs for the shared features.
A thread with an edit diff (edit-diffs), the Watchtower and branch pills in the composer, and the Watchtower plan panel. Demo data.
Host changes in packages/*:
- Plugin host APIs. Hooks before
agent.promptandagent.permission, daemon-served plugin MCP tools, composer pills, sidebar items and actions, workspace header subtitles, navigation, a composer stop button contribution, and calls to a plugin on another connected host. See docs/plugins.md. - Active machine switch. The sidebar, aggregated screens, creation defaults, and plugin pages follow one chosen machine.
- Orchestration from T3 Code. Stop cascades to subagents, child finish notices are combined, and the daemon owns the message queue. Host APIs for selection actions, quote reveal, and sandboxed HTML frames back the
pr-watch,assistant-cite, andhtml-replyplugins. - Runtime close without archive. Close an agent's runtime and keep the thread, by hand or for idle threads.
- Composer and app changes. Composer pills dock in the toolbar, typing anywhere in a thread writes in the composer, and the sidebar footer and badges are quieter.
- No upstream services. No default relay, hosted web app, CORS origin, or Hub origin, and no auto-update from upstream releases. See ADR-0005.
- Bachuc brand. The app name, icons, desktop identity, and release home
~/.bachucsay Bachuc. Other internal names, such as thepaseoCLI andPASEO_*env vars, staypaseo. See ADR-0009.
The plugins live in hiep-plugins/plugins. Read hiep-plugins/README.md and hiep-plugins/AGENTS.md before you change one.
watchtower-board: one plan's lifecycle, branch timeline, run log, and the questions that need you. Demo data.
board: running and just finished conversations across projects. Demo data.
| Plugin | What it does |
|---|---|
board |
Shows conversations side by side by project, with subagent clusters, stars, and UI scaling. |
workspace-spaces |
Puts projects in numbered Spaces in the desktop sidebar. |
watchtower-board |
Shows Watchtower plans and tasks, and attaches a task brief to the next message. |
next-prompt-actions |
Lets you edit or send the suggested next prompts in place. |
thread-branch |
Shows the current Git branch beside the composer, plus a PR pill. |
thread-context-attach |
Attaches another thread's last reply to your next message. |
jev-orchestrator |
Routes one task to a chosen profile and effort level, with optional scoped delegation. |
jev-evaluator |
Gives Codex and Claude agents an MCP tool for typed Jev evaluations. |
jev-permission-gate |
Answers shell permission requests with rules and Jev, and leaves uncertain ones to you. |
pr-watch |
Wakes an agent when its PR checks finish, someone comments, or a conflict appears. |
assistant-cite |
Cites selected assistant text as a composer chip and jumps back to the quote. |
html-reply |
Lets an agent publish a sandboxed HTML page that renders inline in its thread. |
edit-diffs |
Shows edit tool calls as diffs with line numbers; turn it off per thread. |
prompt-translate |
Shows English translations under Vietnamese prompts and rewrites drafts. |
skill-pins |
Pins skills in the composer, so each turn tells the agent to load them. |
thread-janitor |
Closes the runtimes of threads idle for more than 24 hours and archives empty workspaces. |
idle-runtime-closer |
Closes the runtimes of threads idle for more than 30 minutes. |
plugins-nav |
Adds a sidebar row that opens the Plugins settings page. |
stop-orb |
Replaces the composer stop button with an animated orb on desktop. |
claude-look |
Adds a Claude Light theme, a 768 px chat column, and taller reply lines. |
Bachuc has no download. You build it from this checkout on macOS:
- Install at least one agent CLI with your credentials: Claude Code, Codex, GitHub Copilot, OpenCode, or Pi.
- Create the self-signed code-signing identity
Paseo Fork Localin your login keychain. - Open Terminal.app, outside Bachuc, and run
scripts/paseo-release.sh. It builds the app, installs it as/Applications/Bachuc.app, links~/.local/bin/paseo, and restarts the daemon on127.0.0.1:6767. - Keep the checkout in place. The daemon loads the plugins from
hiep-plugins/plugins.
The script stops the daemon that runs every agent, so it refuses to run inside Bachuc. --dry-run shows the steps first. See Installing a release.
The CLI keeps the name paseo:
paseo run --provider codex/gpt-5.5 "implement user authentication"
paseo ls # list running agents
paseo send abc123 "also add tests" # follow-up taskSee the Paseo CLI reference.
Two instances run side by side: release (the installed app, port 6767) and live (this checkout from source, port 6768). Test changes on live:
npm run dev # live daemon
npm run dev:desktop # live desktop app
npm run typecheck
npm run lintStart with CLAUDE.md and docs/development.md. Durable decisions live in watchtower/DECISIONS.md.



