khanh020905/my-office
Developer ToolsVisualizes live Claude Code sessions as characters in a 3D office, with approvals, resource monitoring and phone access.
What it does
My Office turns each running Claude Code session into a character at a desk in a 3D office. Reading files sends the character to the library, edits mean typing at the desk, commands happen in the server room, and a deploy launches a rocket. The same dashboard shows each session's desk screen and task, git activity on the whiteboard and team chat, and permission requests as cards you can answer with Allow, Always allow or Deny; risky commands (recursive deletes, force pushes, curl | sh, sudo, anything mentioning prod) need two clicks and never offer Always allow. It also exposes plan usage, prompt-cache warmth, per-session cost and a Mac panel for RAM, CPU, disk, forgotten dev servers and uncommitted worktrees.
The 3D layer is mostly a live view; the practical parts are the hooks CLI that feeds it, the approval flow, and the phone client. If you just want to write code in a terminal, this adds a lot of decoration around it.
Quick start
You need Node.js 20.9 or newer and Claude Code on macOS, Linux or Windows. The full machine panel and IDE-window actions are macOS only.
git clone https://github.com/khanh020905/my-office.git && cd my-office
npm install
node bin/cli.mjs install --service # adds hooks to ~/.claude/settings.json and runs the office at login
node bin/cli.mjs doctor # checks Node, the server, every hook and the background service
Then open http://localhost:4310. install backs up settings.json before editing and adds only its own hooks, so rerunning it is safe. node bin/cli.mjs uninstall removes every hook, the telemetry settings it added and the background service while keeping the rest of the file. To try the UI before installing, npm run dev and open http://localhost:4310/?demo, or use the hosted static demo.
Constraints
- The plan-usage numbers come from an undocumented Anthropic address, read via the Claude Code login in the Keychain (never stored); the README warns the address may change.
- Approvals from the office page only apply while it is open and visible, for at most 45 seconds; otherwise Claude Code asks as usual.
- Phone access needs a 6- to 10-digit PIN. The server listens on
127.0.0.1only until you enable "Open on phones" or install with--lan; outside the LAN, a Cloudflare quick tunnel exposes https-only access with a restricted API surface. Plain-HTTP LAN mode should only be used on trusted networks. - Usage breakdown ("What eats your plan") needs Claude Code's OpenTelemetry counters;
installadds them unless you already ship telemetry elsewhere, in which case it prints how to add the office as a second exporter. - Network calls for plan usage,
ghCI checks, Vietnamese translation and weather can each be disabled through environment variables (OFFICE_USAGE,OFFICE_CI,OFFICE_TRANSLATE, empty city). - License is MIT, but bundled brand names and logos remain their owners' trademarks; the project is not affiliated with Anthropic or those brands.
HotRepo's take
On the JavaScript new-project list for 2026-11-01, My Office was recorded at 117 stars and 63 forks, with a 2-hour growth window showing 10 new stars and 6 forks; the sample also moved from 107 to 117 stars between 10:45 and 12:45 UTC that day. That fork-to-star ratio is unusually high, which fits a visualization that people clone and modify for their own offices. There is no GitHub daily-rank entry yet and no discussion thread in the data, so the signal is early adoption rather than demonstrated quality. The README is far more detailed than most new repositories, but most visible effort goes into Vietnamese office life scenes; the practical value for a Claude Code user rests on the approval flow, plan and Mac panels, and phone client, so evaluate it on those.
Written by AI from the project's README, updated . The project's own docs are the source of truth.