dyz-gongwen-skills
公文写作 Skills|AI 公文写作助手:防编造、守保密、GB/T 9704 一键排版,覆盖 22 种文书,支持 Claude Code / Codex / Cursor
Translation pending
A Claude Code / Codex skill: a live office of every agent on your machine.
SkillsJavaScript · HTMLGitHub @CharonyuuOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
See what every Claude Code and Codex agent on your machine is doing — live, in a little office.
Loading the full README.
Read the full README ↗A Claude Code / Codex skill: type /myoffice and see what every Claude Code, Codex, Gemini CLI, Antigravity CLI, Copilot CLI, OMP (oh-my-pi), Pi, Kimi Code, DeepSeek Harness, Grok Build, OpenCode and Hermes agent on your machine is doing — live, in a little office.
Website: https://charonyuu.github.io/whatsmyagentdoing/
OMP support: paths, profiles, Resume and limitations.
| Medium (2D) | List |
|---|---|
Recorded with --demo (a made-up team), so no real sessions are shown.
Easiest: ask your agent. Paste this into Claude Code or Codex:
Install the myoffice skill from https://github.com/Charonyuu/whatsmyagentdoing: clone it with
git clone --depth 1into~/.claude/skills/myoffice(for Codex:~/.codex/skills/myoffice), check thatnode --versionis 18 or newer, then tell me to start a new session and type /myoffice.
Or do it yourself:
# Claude Code
git clone --depth 1 https://github.com/Charonyuu/whatsmyagentdoing ~/.claude/skills/myoffice
# Codex
git clone --depth 1 https://github.com/Charonyuu/whatsmyagentdoing ~/.codex/skills/myoffice
Then type /myoffice (or just ask "what are my agents doing?"). The office opens in your browser. Update later with git -C ~/.claude/skills/myoffice pull.
Needs Node.js 18+. Nothing to npm install — the repo runs as cloned. Prefer no skill? node bin/cli.js from a clone works too.
It opens an isometric office. Agents that are working sit at cubicle desks: a thought bubble while thinking, typing with code scrolling on the monitor while a tool runs, standing up and waving when they need you. A handful of recently finished agents stay around off duty and wander: coffee and water in the pantry, the couch and beanbags, the bookshelf, the meeting-room whiteboard, the arcade cabinet, ping-pong and foosball (when two of them are free), the phone booth, or a nap at an empty desk. Everyone else has gone home. The windows follow your local time of day (and in Medium there's an office cat). Hover anyone to see what they're on.
Two looks: Medium is a hand-drawn 2D canvas (zero dependencies). High (3D) renders the same office with real-time lighting and shadows using Kenney's CC0 Mini Characters (with their walk / sit / interact animations) and Furniture Kit; drag to rotate, scroll to zoom. The 3D bundle (three.js, ~180 KB gzipped) and models (~1.3 MB, meshopt-compressed) only load when you pick High.
Scenes (3D): the office is built in; other scenes are small downloadable packs (Christmas Cabin, Neon Arcade, Haunted Hollow, Pirate Cove, Café, Space Station and Castle are about 100–290 KB each), fetched only when you pick one from the scene menu next to 2D/3D, run --scene pirate, or ask your agent for it. Packs are data only (a manifest plus Kenney CC0 models) and are checked against a pinned SHA-256 before they're installed into ~/.whatsmyagentdoing/scenes.
Each session updates in real time:
| Status | Meaning |
|---|---|
| 💭 Thinking | reasoning, or reading a tool result |
| ⏳ Running | a tool call is in flight — shows which (Bash: npm test, Edit app.ts, github · create_pr) |
| ✍️ Writing reply | started its answer, turn not finished yet |
| 🟠 Waiting for you | asked you a question / needs approval |
| ✅ Done | turn finished, with the last reply |
| ■ Interrupted / ❗ Error / – Idle |
The UI speaks English, 繁體中文, 简体中文, 日本語, 한국어, Español, Français, Deutsch and Português. By default it uses the language you write your prompts in (falling back to your browser's); pick one from the language menu in the toolbar to override.
In the agent panel, sessions are grouped into Needs you → Working → Finished, with a live timer for the current turn, a copy button for the resume command (claude --resume … / codex resume … / copilot --resume …), optional browser notifications when an agent finishes, and a toolbar filter to show any mix of agents (or all of them), plus subagents and idle sessions. The tab title shows how many agents are working.
Alerts: when an agent needs you (a question, an approval or an error), the page can send a browser notification and, with Settings → Sound, play a short chime. A tool that runs for more than 10 minutes, or thinking that goes silent for 8, is flagged as No progress, so a hung command or a lost prompt doesn't cost you an hour.
Today: the Today panel adds up today's turns and tokens by agent and by project, from Claude Code and Codex usage records since local midnight. Each card also shows how full the model's context window is (amber from 60%, red from 85%). Very large logs are read head + tail, so their counts can be low.
Layout: the office fills the window, with the agents listed in a side panel grouped by Needs you → Working → Finished. Click an agent there, or a person in the office, to open its status, model, folder, usage, resume command and recent conversation — your messages, its replies and the tools it ran, read from the end of its own log (full text for Claude Code and Codex). The panel slides away with its arrow and comes back from the tab at the top right; on phones it starts folded away. With --private the conversation is never sent to the page.
Agent badges: in both 2D and 3D, each provider's logo identifies its agents beside their names, including subagents. The same icons appear in the legend, list cards and filters. Open Settings → Agent badges to hide the office markers and legend; your choice is saved. Icons are bundled locally, with initials as a fallback if an image cannot load. See icon sources and attribution.
The toolbar keeps the view, 2D/3D and pop-out controls visible. Scene selection, agent filters, display options, notifications and language are grouped under Settings.
This is the beginning of the README. Read the rest at the original. Read the full README ↗