Managed SSH project selection repeatedly activated the remote Host and could leave idle ACP bindings rejected as stale-controller after a controller generation change. Host environment updates also coupled project state to component installation evidence and presented a crowded control surface. Project selection is now local-only, one Host connection serves compatible project and conversation callers, idle bindings are safely replaced only after proven controller takeover, and active prompts keep exact resume/replay. Remote environment setup now uses explicit signed compound package preparation with bounded transfer, rollback, recovery, and clearer settings. Managed Hosts must be updated to separately distributed Agent 0.11.6 before the daemon-side controller recovery fix takes effect. Desktop packages do not embed the Agent or remote Runtime, and existing project data is preserved. Release note: 托管 SSH 项目切换不再重复连接,同一 Host 可顺畅承载多个项目和对话;同时修复重连后的 stale-controller,并优化远程环境安装、更新与状态布局。
GoodBuddy
English | 简体中文
A secure, cross-platform, local-first desktop AI assistant and Agent workspace.
Highlights
- Controlled execution:
Askstays read-only;Executeruns only enabled tools within defined boundaries and records their activity. - Local-first data: Conversations, tasks, artifacts, memory, knowledge bases, and graphs are stored in local SQLite. API keys are encrypted by the operating system.
- Multiple runtimes: Connect directly to models or use OpenCode, Continue, and the preview DeepSeek Harness, with cancellation, timeouts, output limits, and process cleanup.
- Open integrations: Supports OpenAI Responses, OpenAI-compatible Chat Completions, Anthropic Messages, OpenAI Images, Embeddings, cross-runtime Skills and custom MCP, plus a default-off DeepSeek Harness npm plugin marketplace that users enable explicitly.
- Knowledge workspace: Import files, folders, and web pages, then search them with full-text, phrase, vector, and graph retrieval.
- Work management: Organize projects, conversations, tasks, activity, artifacts, memory, Magic Notes, and Smart Heartbeat.
- Remote channels: Connect WeChat ClawBot, WeCom, and DingTalk with separate remote sessions for each sender.
- Managed SSH projects (technical preview): Remote support is off by default and does not affect ordinary desktop use. After enabling it, manually download the independently signed package for the Linux Host architecture under Settings > Platform Features > Remote Projects, or import/export an offline
.gbagent. Each package contains the Agent, pinned Node, and the GoodBuddy-adapted remote OpenCode Runtime; online downloads follow the GitHub or mirror source selected under About & Updates. - Desktop context: Add selected files, screenshots, application windows, clipboard content, and voice.
- Offline speech: Use local SenseVoice, Paraformer, and Whisper models.
- Rich responses: Render Markdown, LaTeX, and controlled Mermaid diagrams.
See FEATURES.md for the detailed feature matrix and roadmap, and the documentation index for product, architecture, design, and quality documents.
Install
Download a build from GitHub Releases:
| Platform | Architectures | Formats |
|---|---|---|
| Windows | x64, arm64 |
NSIS, portable ZIP |
| macOS | x64, arm64 |
DMG, ZIP |
| Linux | x64, arm64 |
AppImage, DEB, RPM |
Desktop installers do not contain remote Agent payloads. No Agent package is needed for local projects; managed SSH users install one explicitly in Settings.
Code signing and macOS notarization are not configured yet, so your operating system may display a security warning.
Run from source
Requires Node.js 24 and npm:
git clone https://github.com/mesalogo/goodbuddy.git
cd goodbuddy
npm ci
npm run dev
See BUILD.md for build and packaging instructions.
Privacy and security
- Model requests are sent only to services selected by the user.
- Local data stays in the operating system's application data directory by default.
- The Renderer has no access to raw Electron APIs or model credentials.
- The DeepSeek Harness plugin marketplace is off by default. After it is enabled and a third-party plugin is installed, its install scripts, initialization, and Execute tools run with the current user's permissions. Turning off the marketplace only hides its catalog and management interface; it does not disable or uninstall existing plugins. Installation requires explicit confirmation, and Ask limits only model tool calls.
- Remote delegation is disabled until the user configures an endpoint and token.
- Private-network compatibility permits in-app HTTP and non-standard HTTPS certificates. WeChat credential and media endpoints remain strictly validated.
Contributing
Issues and pull requests are welcome. Read AGENTS.md first, then run:
npm test
npm run typecheck
npm run lint
License
Original GoodBuddy code is released under the 0BSD License. You may use, modify, distribute, and commercialize it freely. Third-party components and resources retain their respective licenses.




