Skip to content

Latest commit

ย 

History

666 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

OpenBuddy logo

OpenBuddy

The open desktop AI workspace that you can actually read, fork, and own.

English ยท ็ฎ€ไฝ“ไธญๆ–‡

Docs Contributing Community Sponsors


Stars Release Build License


Platform Electron React moon TypeScript Tests



OpenBuddy is a WorkBuddy-style desktop AI workspace, rebuilt as 100% open source (MIT) on Electron + Pi. It ships the polished UI, plan mode, skills, MCP connectors, and an enterprise-grade Casdoor ร— NewAPI integration โ€” every byte auditable, every provider BYOK.

Quick Start ยท Features ยท Architecture ยท Documentation ยท Contributing ยท Community


๐Ÿ“‘ Table of Contents


๐Ÿ’ก Why OpenBuddy?

Tencent WorkBuddy showed the world what a great desktop AI agent workspace should feel like โ€” polished UI, plan mode, skills, MCP connectors. It's a genuinely capable product.

But it's closed-source, and your data flows through Tencent's backend.

OpenBuddy is the open answer โ€” the same shape of experience, rebuilt from the ground up on Electron + Pi, with a Cordis capability mesh that any contributor can extend:

๐Ÿ”“100% open source (MIT)
No telemetry black box, no vendor lock-in. The whole repo is auditable.
โšกElectron + Pi runtime
One tested desktop host with a versioned preload bridge; the renderer only sees a typed API surface.
๐Ÿ”Restart-safe sessions
Pi sessions, provider settings, capability state, and audit logs persist across renderer reloads and Electron restarts.
๐Ÿค–Pi as the agent runtime
The in-process AgentSession owns prompts, tools, permissions, plans, tasks, and streaming events.
๐ŸŒTruly cross-platform
One codebase, Windows, macOS, and Linux. electron-builder produces signed installers for each.
๐Ÿชmoon DAG monorepo
66 projects (1 root + 1 Electron + 64 workspace packages), type-check/test/build incrementally. CI runs the same moon run commands you run locally.
๐ŸงฉCordis capability mesh
59 workspace packages (5 capability, 8 collaboration, 26 UI, โ€ฆ) (@openbuddy/*) โ€” skills, memory, plan, task, email, calendar, MCP, payment, SCIM, SAMLโ€ฆ pick what you need.
๐ŸขEnterprise-ready
Casdoor OIDC, NewAPI gateway, 4 payment channels, SCIM v2, SAML 2.0, transactional outbox webhooks, audit ledger โ€” production-ready building blocks.

"If WorkBuddy is the polished product, OpenBuddy is the one you can actually read, fork, and own."

๐ŸŒŸ If this project matters to you, please give it a โญ

It helps others discover OpenBuddy and keeps development moving.

stars


โœจ Features

SurfaceCapabilities

๐ŸŽจ Pixel-close WorkBuddy UI Ported --wb-* design tokens, full 207-icon foundation (all implemented, no stubs), brand atoms. It looks like WorkBuddy because the same atoms make it up.

โš™๏ธ Pi, in-process @earendil-works/pi-coding-agent runs in Electron Main. Renderer code only sees the typed preload API; no Node or provider SDK is required in the UI.

๐Ÿ”Œ Pi events as contract Streaming assistant deltas, tool calls, plan updates, permission requests, and completion events flow through cleanup-aware pi://* events.

๐Ÿ”‘ BYOK, multi-provider Bring your own keys. Configure Anthropic, OpenAI-compatible, Pi, MiniMax, NewAPI, or custom providers in the local Pi/OpenBuddy data directory.

๐Ÿงฉ Extensible agent surface

  • Skills โ€” Pi skills and local skill catalogs
  • MCP connectors โ€” local connector roots + OAuth/auth status
  • Experts / Assistants โ€” local Pi/OpenBuddy agent files
  • Plugins โ€” loadable via the marketplace

๐Ÿš€ Advanced workflows Plan mode (toggle & view) ยท Rewind (rewind & fork) ยท sub-agent Tasks (observe & cancel) ยท Slash Commands ยท local Automations scheduler.

๐Ÿ“ฆ Cross-platform installers Windows (NSIS .exe + MSI), macOS (.dmg), Linux (AppImage + .deb). CI-built releases via GitHub Actions.

๐Ÿข Enterprise integration

  • Casdoor โ€” OIDC SSO + tenant policy + audit log
  • NewAPI โ€” model aggregation gateway (BYOK + Service Token)
  • Stripe / WeChat Pay / Alipay โ€” 4 payment adapters
  • SCIM v2 โ€” RFC 7644 user/group provisioning
  • SAML 2.0 โ€” AuthnRequest/Response/LogoutRequest
  • Transactional outbox โ€” webhook delivery with exponential backoff

๐Ÿงช Battle-tested quality

  • 309 test files across the monorepo (Vitest)
  • Live integration tests against public Casdoor + NewAPI endpoints
  • Closed-loop capability evals for end-to-end agent runs
  • Type-safe IPC โ€” every preload channel is allowlisted in electron/preload/index.ts
  • Storage boundaries โ€” automated architecture enforcement

๐ŸŒ Internationalization Full UI locale coverage via @openbuddy/ui-locale; ships English + ็ฎ€ไฝ“ไธญๆ–‡ out of the box.

๐ŸชŸ Native desktop polish System tray, native notifications, deep links (casdoor://), clipboard integration, multi-window, autosave-on-quit.


๐ŸŽฌ Demo & Screenshots (all captured against the real MiniMax-M3 model)

Every AI chat screenshot below is from a real Electron build driven by the real MiniMax-M3 model at https://api.minimaxi.com/anthropic โ€” not a mock, not a replay.

Reproduce locally:

pnpm build
OPENBUDDY_E2E_API_KEY="sk-cp-..." \
OPENBUDDY_E2E_BASE_URL="https://api.minimaxi.com/anthropic" \
OPENBUDDY_E2E_MODEL_ID="MiniMax-M3" \
node scripts/electron/_screenshot-real-ui.mjs

Offline fallback (local echo upstream, same Anthropic Messages wire format): node scripts/electron/launch-real-evals-echo.mjs

1. Cold start โ€” no API key configured

OpenBuddy cold start โ€” sidebar with tasks / workspaces / settings, main area showing 'ๆญฃๅœจๆœฌๅœฐๅˆๅง‹ๅŒ– agentโ€ฆ', composer disabled with a hint to configure an API key first

2. Composer ready after configuring MiniMax

After configuring MiniMax-M3 the composer is enabled, model selector shows 'ๅ‡่กก (MiniMax-M2.7)', the user can type a prompt and send

3. Real MiniMax-M3 streaming answer โ€” mid-turn

Real MiniMax-M3 model streaming a self-introduction โ€” Buddy displays 'ๆˆ‘ๆ˜ฏ Pi, ไธ€ไธชๅœจ OpenBuddy ไธญ่ฟ่กŒ็š„ AI ็ผ–็จ‹ๅŠฉๆ‰‹', the ๆทฑๅบฆๆ€่€ƒ (deep thinking) block is collapsible

4. Turn 1 settled

First turn settled โ€” status pill shows 'ๅทฒๅฎŒๆˆ 4s', Buddy's reply is fully readable, copy / retry / thumbs-up row visible

5. Turn 2 โ€” multi-turn conversation

Second turn โ€” user asks how to translate 'Hello world' to Chinese, Buddy replies 'ไฝ ๅฅฝ, ไธ–็•Œ'

6. Turn 3 โ€” structured output (Chinese to-do list)

Third turn โ€” user asks for a three-line Chinese to-do list, Buddy outputs all three items: ไนฐ่œ / ๅš้ฅญ / ๆด—็ข—

7. Full three-turn transcript

OpenBuddy AI chat full transcript of three turns โ€” real MiniMax-M3 streaming responses, each turn with a collapsible ๆทฑๅบฆๆ€่€ƒ block, retry / copy / thumbs-up actions

Verification evidence (all passing)

  • tests/electron/chat-ui-minimax-real.spec.ts โ€” 6/6 pass (54.7s) against the real upstream
  • tests/electron/minimax-real-roundtrip.spec.ts โ€” 4/4 pass (46.1s), real agent:prompt / follow-up / abort / current-model IPC chain
  • tests/electron/chat-flow-echo.spec.ts โ€” 5/5 pass against the local echo upstream
  • tests/electron/chat-ui-streaming.spec.ts โ€” 7/7 pass, multi-turn / hidden window / reload / streaming
  • tests/electron/chat-flow.spec.ts โ€” 2/2 pass, cold-start composer-disabled surface
  • tests/electron/session-history-load.spec.ts โ€” 2/2 pass, persisted history replay

30-second tour โ€” what you get

OpenBuddy 30-second tour โ€” WorkBuddy-grade UI, 64 Cordis capabilities, enterprise-ready, verifiable, fast

Architecture overview

OpenBuddy end-to-end architecture โ€” renderer, preload bridge, Electron main, Pi agent runtime, Cordis capability mesh

Capability matrix

OpenBuddy capability matrix โ€” 64 workspace packages across 8 groups

Data flow โ€” prompt to tool result

OpenBuddy data flow โ€” every prompt crosses 5 typed boundaries before reaching the model, and 4 on the way back

WorkBuddy parity

OpenBuddy vs WorkBuddy capability parity

Bilingual support

OpenBuddy ships with first-class bilingual UI: zh-CN (default) and en-US. Translations live as JSON dictionaries under packages/ui/openbuddy-ui-locale/src/dictionaries/. The locale persists in localStorage under openbuddy:locale and is hot-swappable at runtime via the LocaleService API โ€” no renderer reload required for the active dictionary after the next navigation. See docs/I18N.md for the full workflow and how to add a third locale.

All primary documentation is shipped as separate files per language so contributors can edit them in parallel without merge churn:

Document English ็ฎ€ไฝ“ไธญๆ–‡
Landing README README.md README.zh-CN.md
Codebase analysis docs/CODEBASE_ANALYSIS.md docs/CODEBASE_ANALYSIS.zh-CN.md
Docs index docs/README.md docs/README.zh-CN.md
Getting started docs/GETTING_STARTED.md docs/GETTING_STARTED.zh-CN.md
Architecture docs/ARCHITECTURE.md docs/ARCHITECTURE.zh-CN.md
FAQ docs/FAQ.md docs/FAQ.zh-CN.md
Performance docs/PERFORMANCE.md docs/PERFORMANCE.zh-CN.md
Contributing CONTRIBUTING.md CONTRIBUTING.zh-CN.md
Governance GOVERNANCE.md GOVERNANCE.zh-CN.md
Code of Conduct CODE_OF_CONDUCT.md CODE_OF_CONDUCT.zh-CN.md
Security SECURITY.md SECURITY.zh-CN.md
Support SUPPORT.md SUPPORT.zh-CN.md
Maintainers MAINTAINERS.md MAINTAINERS.zh-CN.md
Sponsors SPONSORS.md SPONSORS.zh-CN.md
Brand BRAND.md BRAND.zh-CN.md
Changelog CHANGELOG.md CHANGELOG.zh-CN.md
Roadmap / TODO TODO.md TODO.zh-CN.md

See docs/diagrams/ for the full set of system architecture diagrams in SVG / HTML format.


โš”๏ธ OpenBuddy vs WorkBuddy

Only rows we can publicly substantiate โ€” see docs/workbuddy-parity-matrix.md for the full matrix.

Capability WorkBuddy OpenBuddy
License Closed-source MIT (open)
Data path Tencent backend Local + your gateway
Plan mode โœ… โœ…
Skills โœ… โœ… + open catalog
MCP connectors โœ… โœ…
Experts / Assistants โœ… โœ… (local files)
Rewind & fork โœ… โœ…
Sub-agent Tasks โœ… โœ…
Automations โœ… โœ… (local scheduler)
Slash commands โœ… โœ…
Local persistence โœ… โœ… (restart-safe)
Provider choice Limited BYOK โ€” Anthropic / OpenAI / NewAPI / custom
Casdoor OIDC โŒ โœ…
NewAPI gateway โŒ โœ… (BYOK + Service Token)
SCIM v2 โŒ โœ… (RFC 7644)
SAML 2.0 โŒ โœ…
Plugin SDK Closed Cordis open capability mesh
Tests visible to users โŒ 309 test files in the repo
Cross-platform Win / macOS Win / macOS / Linux
Audit log Backend Local + Casdoor tenant ledger

๐Ÿš€ Quick Start

Prerequisites

  • Node.js 22+ (we use Node 22 features; see package.json packageManager)
  • pnpm 10+ โ€” npm install -g pnpm
  • Git with submodule support
  • (Optional) Platform build tools โ€” see docs/release-ci.md

Install & Run (development)

# 1. Clone with submodules
git clone --recurse-submodules https://github.com/louloulin/OpenBuddy.git
cd OpenBuddy

# 2. Install deps (also runs `moon sync projects` automatically)
pnpm install

# 3. Start the dev shell โ€” Electron host + Vite renderer + HMR
pnpm electron:dev
#   โ†‘ equivalent to:  moon run openbuddy:dev.electron

The first run takes ~30s for the Vite cold start. Subsequent restarts are sub-second thanks to moon's incremental DAG.

Build a production installer

# Windows installer (NSIS .exe + MSI)
pnpm electron:build:win

# macOS installer (DMG)
pnpm electron:build:mac

# Linux AppImage / .deb
pnpm electron:build:linux

# All three
pnpm electron:build:all

Verify your environment

# Type-check the entire 32-project monorepo
pnpm workspace:typecheck

# Run the full Vitest suite (309 test files)
pnpm workspace:test

# Closed-loop capability evaluation (real agent run + scoring)
pnpm test:closed-loop

Need a deeper walkthrough? Head to docs/GETTING_STARTED.md.


๐Ÿ—๏ธ Architecture

OpenBuddy is a three-layer Electron app with a Cordis capability mesh under the hood:

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  React Renderer (src/, packages/ui/*)                        โ”‚
โ”‚    Vite + React 18 + Zustand stores                          โ”‚
โ”‚    Foundation: --wb-* tokens, 207-icon set, brand atoms      โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                       โ”‚ window.api (typed contextBridge)
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Electron Main + preload bridge                              โ”‚
โ”‚    ipc.ts                โ† allowlisted IPC handlers          โ”‚
โ”‚    agent-host.ts         โ† Pi AgentSession lifecycle         โ”‚
โ”‚    pi-event-bridge.ts    โ† cleanup-aware pi://* events       โ”‚
โ”‚    pi-resources.ts       โ† local persistence (Cordis fs)     โ”‚
โ”‚    capability-*.ts       โ† Cordis capability services        โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                       โ”‚ typed Pi session events
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Pi AgentSession + Cordis capability services                โ”‚
โ”‚    providers, tools, permissions, plans, tasks, persistence  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Capability mesh โ€” every feature is a Cordis service under packages/<group>/openbuddy-*/:

runtime/      cordis ยท plugin-host ยท storage
renderer/     renderer-host (preload bridge glue)
bundle/       base (umbrella for renderer-only deps)
auth/         casdoor ยท permission
team/         team ยท subagent
capability/   memory ยท inspiration ยท web-search ยท plan ยท
              folder-trust ยท task ยท automation ยท calendar ยท email ยท mcp-client ยท authorization
core/         session
fs/           fs-local
shared/       files-kb ยท types
collaboration/ coordinator ยท evidence ยท inbox ยท network ยท policy ยท protocol ยท room ยท task
payment/      Stripe / WeChat Pay / Alipay / HMAC adapters
saml/         SAML 2.0 primitives
scim/         SCIM v2 endpoints (RFC 7644)
webhook-outbox/ transactional outbox + retry/backoff
ui/           26 UI packages (shell, sidebar, settings, workbench, โ€ฆ)

Project layout

src/                     # React frontend
  styles/                # tokens.css / global.css / app.css
  foundation/components/Icon/   # ported from WorkBuddy (207 icons, all implemented)
  lib/                   # pi-client.ts + electron-api.ts (typed bridge wrappers)
  stores/                # Zustand: session / sessions / permission / ...
  components/            # Topbar, Sidebar, HomePage, ChatView, Composer, ...

electron/                # Electron main + preload host
  main/                  # index.ts ยท window.ts ยท ipc.ts ยท agent-host.ts ยท sessions.ts
  preload/               # contextBridge surface (allowlisted)

apps/
  admin-portal/          # Independent React SPA (Casdoor OIDC + Resource Gateway)

packages/                # one moon project per capability (50+ packages)
  runtime/openbuddy-{cordis,plugin-host,storage}/
  renderer/openbuddy-renderer-host/
  bundle/openbuddy-base/
  auth/openbuddy-{casdoor,permission}/
  team/openbuddy-{team,subagent}/
  capability/openbuddy-{memory,inspiration,web-search,plan,
              folder-trust,task,automation,calendar,email,mcp-client,authorization}/
  core/openbuddy-session/
  fs/openbuddy-fs-local/
  shared/openbuddy-{files-kb,types}/
  collaboration/openbuddy-{coordinator,evidence,inbox,network,policy,
              protocol,room,task}/
  payment/               # Stripe / WeChat Pay / Alipay / HMAC
  saml/                  # SAML 2.0 primitives
  scim/                  # SCIM v2 endpoints
  webhook-outbox/        # transactional outbox
  ui/openbuddy-{shell,sidebar,settings,workbench,โ€ฆ} (19 packages)

.moon/                   # moon workspace + task configuration
  workspace.yml          # 32-project graph (renderer + Electron + packages)
  tasks/                 # typecheck / test / build / dev / electron.* presets
  toolchains.yml         # node 22 / pnpm 10 / typescript 5.6

moon.yml                 # renderer moon project (Vite + React)
electron/moon.yml        # Electron host moon project

scripts/                 # dev/build helpers (thin shims over moon tasks)
docs/                    # all documentation (this folder)

For a deeper dive see docs/ARCHITECTURE.md.


๐Ÿงฉ Capabilities

OpenBuddy ships with 63 workspace packages (12 capability, 26 UI, 8 collaboration, โ€ฆ), every one a Cordis service that can be enabled, configured, or extended independently.

Core agent

Package Purpose
@openbuddy/core-session Session lifecycle, fork, rewind
@openbuddy/capability-plan Plan mode + plan approval flow
@openbuddy/capability-task Sub-agent task spawning & cancellation
@openbuddy/capability-automation Local scheduler for recurring agent runs
@openbuddy/capability-web-search Provider-pluggable web search
@openbuddy/capability-inspiration Prompt templates & starters
@openbuddy/capability-folder-trust Per-folder permission grants
@openbuddy/capability-authorization Capability-level policy
@openbuddy/capability-mcp-client MCP connector governance

File & shell

Package Purpose
@openbuddy/fs-fs-local Local filesystem via Cordis
@openbuddy/files-kb Knowledge-base file indexing

Multi-agent

Package Purpose
@openbuddy/team-team Multi-agent team orchestration
@openbuddy/team-subagent Sub-agent spawning
@openbuddy/collaboration-protocol A2A message envelopes
@openbuddy/collaboration-room Shared rooms
@openbuddy/collaboration-inbox Cross-agent inbox
@openbuddy/collaboration-policy Cross-agent policy
@openbuddy/collaboration-task Cross-agent task graph
@openbuddy/collaboration-network Network topology
@openbuddy/collaboration-evidence Audit evidence
@openbuddy/collaboration-coordinator Coordination layer

Enterprise

Package Purpose
@openbuddy/auth-casdoor Casdoor OIDC client + admin REST
@openbuddy/auth-permission Permission prompts & policy UI
@openbuddy/payment Stripe / WeChat Pay / Alipay / HMAC
@openbuddy/saml SAML 2.0 primitives
@openbuddy/scim SCIM v2 endpoints (RFC 7644)
@openbuddy/webhook-outbox Transactional outbox + retry/backoff

Email & calendar

Package Purpose
@openbuddy/capability-email IMAP/SMTP + Gmail/Graph/JMAP API
@openbuddy/capability-calendar Calendar integration

UI primitives

19 packages under packages/ui/openbuddy-ui-* โ€” shell, sidebar, settings, settings-models, workbench, home, conversation, experts, dialogs, markdown, primitives, modules, theme, runtime, slots, automation, locale, hmr.


๐Ÿ› ๏ธ Built With

LayerTech
ShellElectron 44, electron-builder 26, Squirrel, Squirrel.Mac
RendererReact 18, Vite 5, Zustand 4, React Router 6, react-markdown, lucide-react, KaTeX, Mermaid
Agent runtime@earendil-works/pi-coding-agent, @earendil-works/pi-agent-core, @earendil-works/pi-ai
Capability meshCordis 3, MCP SDK 1.25
Monorepomoon 2.5, pnpm 11
QualityVitest 2, Playwright 1.58, Testing Library, TypeScript 5.6 strict
Backend integrationsCasdoor, NewAPI, Stripe, WeChat Pay, Alipay, IMAP, SMTP, Gmail API, Graph API, JMAP

๐Ÿ“š Documentation

All documentation lives in docs/. Start here:

Doc What it's for
docs/README.md Full docs index
docs/GETTING_STARTED.md 30-minute developer setup
docs/ARCHITECTURE.md Layer-by-layer architecture deep dive
docs/CODEBASE_ANALYSIS.md Verified 2026-09-05 package inventory & build/runtime architecture
docs/PLUGIN_DEVELOPMENT.md Build your first Cordis capability
docs/FAQ.md Frequently asked questions
docs/COMMUNITY.md Where to ask, chat, and contribute
docs/ROADMAP.md Public roadmap
SECURITY.md Security policy & disclosures
SUPPORT.md How to get help
docs/release-ci.md Release & CI pipeline
docs/workbuddy-parity-matrix.md OpenBuddy vs WorkBuddy capability parity
docs/openbuddy-capability-matrix.md Package-by-package capability list
docs/TESTING.md Testing strategy & conventions
docs/PERFORMANCE.md Performance budget & optimization
docs/ACCESSIBILITY.md WCAG 2.2 AA conformance
docs/OPERATIONS.md Production deployment & ops
docs/WORKBUDDY_MIGRATION.md Migrating from Tencent WorkBuddy
docs/EXAMPLES.md Examples & showcase
docs/GLOSSARY.md Terminology glossary
docs/ENVIRONMENT.md Environment variable reference
docs/RELEASING.md Release process
docs/I18N.md Translation & localization workflow
docs/COMPARISON.md OpenBuddy vs Cursor / Continue / aider / Copilot
docs/adr/ Architecture decision records
docs/openbuddy-product-vs-pi.md How OpenBuddy extends Pi
SECURITY.md Security policy & disclosures
SUPPORT.md How to get help
SPONSORS.md Sponsorship & funding

๐Ÿ—บ๏ธ Roadmap

The full backlog lives in TODO.md. The public roadmap is in docs/ROADMAP.md. Highlights:

โœ… Shipped

  • Core layout: Sidebar / HomePage / ChatView / Composer
  • In-process Pi agent over the Electron bridge
  • WorkBuddy design tokens & 207-icon foundation (all implemented, zero stubs)
  • BYOK multi-provider config
  • Skills / MCP / Experts surfaces
  • Plan mode ยท Rewind ยท Tasks ยท Slash Commands ยท Automations
  • Windows (NSIS + MSI) & macOS (DMG) installers
  • CI release workflow (GitHub Actions)
  • moon-managed monorepo (moon run everywhere, 32-project DAG, incremental builds)
  • Casdoor OIDC + NewAPI gateway + payment adapters + SCIM v2 + SAML 2.0

๐Ÿšง In progress

  • SceneTabs & skill recommendation bar
  • Pinned sessions & workspace grouping
  • Permission management panel
  • Search across sessions
  • Linux builds (AppImage + .deb)
  • Code signing & notarization

๐Ÿ”ฎ Next

  • Plugin marketplace (public catalog + install flow)
  • Web companion (read-only session view)
  • Voice input / output
  • Local vector store integration
  • 12 more capability packages on the public roadmap

Want to influence the roadmap? Open an issue with the roadmap: label or join the discussion in docs/COMMUNITY.md.


๐Ÿค Contributing

OpenBuddy is early and moving fast โ€” contributions of every size are welcome.

  1. Read CONTRIBUTING.md for the workflow.
  2. Read our CODE_OF_CONDUCT.md.
  3. Pick an issue from TODO.md or open a new one to discuss.
  4. Fork, branch from master, and hack.
  5. Run pnpm electron:dev (= moon run openbuddy:dev.electron).
  6. Open a PR โ€” every PR is reviewed within 48h.

Areas that especially need help right now:

  • ๐Ÿง Linux packaging & smoke tests
  • ๐ŸŽจ UI polish / screenshots / icons
  • ๐ŸŒ Docs & i18n (we want Japanese, Korean, Spanish, German next)
  • ๐Ÿ” CI for macOS signing & notarization
  • ๐Ÿงช Plugin marketplace catalog curation
  • ๐Ÿ’ผ Enterprise deployment playbooks (Caddy / Nginx / Vault)

All contributors are listed in the GitHub contributors graph. New contributors get a ๐ŸŽ‰ in the next release notes.


๐Ÿ›ก๏ธ Security

OpenBuddy treats security as a first-class concern:

  • Context-isolated renderer with allowlisted IPC (electron/preload/index.ts)
  • Per-folder trust grants via @openbuddy/capability-folder-trust
  • Capability-level policy via @openbuddy/capability-authorization
  • Casdoor OIDC with PKCE and refresh token rotation
  • SCIM v2 provisioning + SAML 2.0 federation
  • Transactional outbox webhook delivery (no lost events)
  • Local-first audit ledger persisted across restarts

See SECURITY.md for the full policy and how to report vulnerabilities.


๐ŸŒ Community

  • GitHub Discussions โ€” design proposals & help
  • GitHub Issues โ€” bug reports & feature requests
  • Discord โ€” real-time chat (link in docs/COMMUNITY.md)
  • WeChat group โ€” Chinese-language community
  • Office hours โ€” weekly video Q&A (announced in Discussions)

Full details, language-specific channels, and code-of-conduct enforcement contacts are in docs/COMMUNITY.md.


โญ Star History

If OpenBuddy has earned its place on your daily-driver list, please consider giving it a โญ. It directly fuels the next release cycle.

Star History Chart

๐Ÿ™ Acknowledgements

OpenBuddy stands on the shoulders of giants:

  • Tencent WorkBuddy โ€” the design north star. OpenBuddy reuses WorkBuddy's --wb-* design tokens, 207-icon foundation (all implemented), and brand atoms for a pixel-close visual experience.
  • Pi coding agent โ€” the in-process agent runtime behind OpenBuddy's Electron host.
  • Cordis โ€” the dependency-injection framework that powers our capability mesh.
  • moon ยท Electron ยท React ยท Vite โ€” moon orchestrates every task; Electron hosts the Cordis/Pi runtime; React + Vite ship the renderer.
  • Casdoor ยท NewAPI โ€” the open-source OIDC IdP and model gateway we integrate with.
  • Vitest ยท Playwright โ€” the test frameworks that keep us honest.

This project is an independent, community-driven open-source effort and is not affiliated with, endorsed by, or sponsored by Tencent.


๐Ÿ“„ License

OpenBuddy is released under the MIT License โ€” ยฉ OpenBuddy contributors.

You are free to use, modify, and distribute OpenBuddy in your own projects, commercial or otherwise, as long as you preserve the copyright notice.

About

๐Ÿš€ The open-source WorkBuddy successor โ€” powered by Pi's empathy engine. Autonomous tasks, local files, multi-agent collaboration with emotional intelligence

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

16 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages