A visible workspace for AI agents to collaborate as a single team.
Open Office
A visible workspace for AI agents to collaborate as a single team.
Supports Claude, Codex, Gemini, Copilot, Cursor, Aider, OpenCode, Pi & Sapling โ one team ๐
Features
- 8 AI backends, 23 roles โ Claude, Codex, Gemini, Copilot, and more in one pipeline
- Team-based delivery โ Leader coordinates planning, coding, review, and release
- Parallel collaboration โ Worktree isolation with auto commit, merge, and undo
- Flexible code review โ Mix Claude Code, Codex, or any tool you prefer
- Preview & feedback โ Live preview, rating, and continuous learning
- Persistent memory โ 4-layer memory across sessions and agents
- Telegram Control โ Manage your agent team remotely
- Native desktop app โ Tauri-based app with system notifications
- Token cost tracking โ Real-time usage per agent and team
Quick Start
npx bit-office
Learn More
- Team workflow โ how agents plan, execute, and deliver (view)
- Collaboration system โ multi-agent orchestration and worktree isolation (view)
- Memory design โ four-layer persistent memory architecture (view)
Run from Source
Prerequisites
- Node.js 18+
- pnpm
- At least one AI CLI installed (see Supported Backends)
Setup
git clone https://github.com/longyangxi/open-office.git
cd open-office
pnpm install
pnpm dev
Desktop App (Tauri)
Open Office also ships as a native macOS desktop app powered by Tauri.
Prerequisites
- Node.js 18+, pnpm
- Rust toolchain โ install via:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Dev Mode
pnpm dev:desktop
Build Release
pnpm build:desktop
Produces Open Office.app and .dmg at:
apps/desktop/src-tauri/target/release/bundle/macos/Open Office.app apps/desktop/src-tauri/target/release/bundle/dmg/Open Office0.1.0aarch64.dmg
Supported Backends
Open Office auto-detects installed AI CLIs at startup. Each backend has its own instruction file convention and capability set.
| Backend | Command | Stability | Guard | Instruction File | Resume | Structured Output | Tested | |---|---|---|---|---|---|---|---| | Claude Code | claude | Stable | Hooks | .claude/CLAUDE.md | Yes | Yes (stream-json) | โ
| | Codex CLI | codex | Stable | Sandbox (Seatbelt/Landlock) | AGENTS.md | โ | โ | โ
| | Gemini CLI | gemini | Beta | --sandbox flag | GEMINI.md | โ | โ | โ | | GitHub Copilot | copilot | Experimental | โ | .github/copilot-instructions.md | โ | โ | โ | | Cursor CLI | agent | Experimental | โ | .cursor/rules/instructions.md | โ | โ | โ | | Aider | aider | Experimental | โ | .aider.conf.yml | โ | โ | โ | | OpenCode | opencode | Experimental | โ | AGENTS.md | โ | Yes (json) | โ | | Pi | pi | Experimental | โ | .claude/CLAUDE.md | โ | โ | โ | | Sapling | sp | Experimental | โ | SAPLING.md | โ | Yes (json) | โ |
โ = actively tested in production workflows. Other backends have not yet verified end-to-end.>
Backends with ambiguous binary names (agent,pi,sp) use version-probe detection to avoid false positives.
Architecture
open-office/
โโโ apps/
โ โโโ web/ # Next.js PWA + PixiJS pixel office + control UI
โ โโโ gateway/ # Runtime daemon: events, channels, policy, orchestration
โ โโโ desktop/ # Tauri v2 native shell (macOS .app/.dmg)
โโโ packages/
โโโ memory/ # Four-layer persistent memory (L0โL3)
โโโ orchestrator/ # Multi-agent execution engine
โโโ shared/ # Typed command/event contracts (Zod schemas)
Channels: WebSocket (always on), Ably (optional), Telegram (optional)
Tech Stack
- Frontend: Next.js 15, React, PixiJS v8, Zustand
- Desktop: Tauri v2 (Rust + system WebView)
- Backend: Node.js daemon, WebSocket
- Memory: Four-layer JSON store (session โ agent โ shared), Jaccard dedup
- Protocol: Zod-validated event schemas
- Integrations: Ably, Telegram, external process detection
Contributing
Issues and PRs are welcome. If you're exploring AI-native dev tooling, workflows, or interfaces, Open Office is a great playground for experiments.
Acknowledgments
Pixel office art inspired by pixel-agents by @pablodelucca.
License
MIT - feel free to use, modify, and distribute.
If Open Office helps your workflow, consider giving it a star!