尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗MyOffice is a local control room for your AI agents. Tell the CEO what you need in plain words; it routes the job to the right helper and you watch the office while it runs. Each helper is an animal at a desk: it wakes when work arrives, shows its current action on its screen, and drops the result into Needs you. Idle agents sleep, so idle time costs zero tokens.
127.0.0.1; prompts, output and file contents stay on your machine.| A real office, not a dashboard | Isometric 3D rooms, animals at desks, clickable agents, a live event stream, a bottom activity dock and a daily token counter. |
| Any agent | Claude Code is automatic; OpenCode is read from its local database; Codex, Gemini and any other CLI plug in through myoffice run, a hook or a JSONL watcher. |
| Small and dependency-free | Python standard library + a single-page three.js frontend. No database server, no cloud account. |
| Built for a team | A CEO routes work to specialists (SOC Analyst, Lab Builder, Content Writer…) and a second helper reviews the result. |
| Made to be watched | Light and dark themes, sound with a mute toggle, focus mode, room and agent panels, and a click-anywhere overview. |
Click any image to open it full size.
Try it without installing: open the live demo — fake agents, no backend and no model calls.
macOS or Linux (Windows via WSL2):
curl -fsSL https://raw.githubusercontent.com/halilbaris/AI-Office/main/install.sh | bash
This clones into ~/MyOffice, creates the private agents.json and bridge.json, and puts the myoffice
launcher in ~/.local/bin.
myoffice start
Manual checkout
git clone https://github.com/halilbaris/AI-Office.git
cd AI-Office
./start.sh
Requirements: Python 3.10+, git, and one of Claude Code or
OpenCode for the office's own agents. tmux is needed to give work from the office;
watching your own sessions works without it.
cd frontend && python3 -m http.server 8000
# open http://127.0.0.1:8000/?demo=1
The demo uses frontend/demo-data.json: fake agents wake up, work and finish without a backend or any model
calls. ?auto=0 turns automatic runs off and ?light=1 renders at lower resolution.
Three ways in, all on the same local event stream:
1. Wrapper — works with any CLI
myoffice run -- codex exec "fix the failing test"
myoffice run -- gemini -p "summarize this repo"
myoffice run --agent writer -- ./my-agent
The wrapper tees the output to your terminal and sends only tool names and short targets to the office. It never changes the command's arguments or working directory.
2. Hook — for tools that can call a command
myoffice hook --agent writer --tool read --target README.md
3. Passive logs — for tools that already write JSONL
cp watch.json.example watch.json
# list the Codex, Gemini or other session folders you want to watch
OpenCode is detected automatically from ~/.local/share/opencode/opencode.db (v1 and v2 schemas). Claude Code is
read through the built-in bridge (~/.claude/sessions + transcripts).
Every session carries its source (claude, opencode, wrapper, hook, log), so the UI can show where
it came from.
flowchart LR
B["Browser · 3D office"] <-->|JSON + SSE| S["server.py · 127.0.0.1"]
S --> R["runner.py"] --> T["tmux"] --> C["Claude Code / OpenCode"]
C -->|progress| S
S --> BR["bridge.py · read-only"] --> CL["~/.claude"]
S --> P["providers/ · read-only"] --> OC["OpenCode DB · JSONL logs"]
X["myoffice run / hook"] -->|POST /api/ingest| S
127.0.0.1. runner.py starts agents in tmux windows;
bridge.py watches your own Claude Code sessions; providers/ watches OpenCode and configured JSONL logs.events.jsonl is the single log. The browser replays it over SSE and the terminal list is merged
from every source.127.0.0.1 only.bridge.json (cwd → agent, default fallback).| File | Purpose |
|---|---|
agents.json | Your private team: cwd, model, tools and preset tasks. Created from agents.example.json. |
bridge.json | Maps a working directory to an office agent. Created on first run; edit it to match your folders. |
watch.json | Optional passive JSONL watchers. Copy watch.json.example. |
events.jsonl, state/, runs/, output/, memory/ | Local working data (gitignored). |
Agents, models and folders are also editable in Settings → Agents. Settings → Health explains anything missing in plain words.
./scripts/check.sh
Runs Python syntax, the unit tests (59), JSON and frontend checks, the leftover-Turkish rule and an API smoke test on port 8798.
tests/ for parsers, mapping and ingestion changes.MyOffice was originally taken from and is developed on top of selmakcby/ajan-ofisi. The original project provided the 3D office, the CEO flow and the agent runner. This fork adds the universal agent ingestion layer, the bottom activity dock, the installable CLI, the sound and overview controls, and this documentation.
PolyForm Noncommercial 1.0.0 — personal, noncommercial use. The original project's copyright and license remain with its authors; see the upstream repository.