CommunityWriting & Editinggithub.com

Charonyuu/myoffice

Open a live office view of every Claude Code, Codex and Gemini CLI agent on this machine — who is thinking, running a tool, writing a reply, waiting for the user, or done. Use when the user types /myoffice, asks what their agents are doing, wants to see all running sessions, or which agent is stuck or finished.

What is myoffice?

This skill, named 'myoffice', provides a live dashboard that visualizes all AI CLI agents (Claude Code, Codex, Gemini CLI) running on your machine. It displays each agent's current status (thinking, running a tool, writing a reply, waiting for user input, or finished) in a 3D office environment, making it easy to monitor multiple sessions at a glance. The dashboard is useful for developers who run multiple agents simultaneously and need to quickly identify which ones are idle, stuck, or complete. It supports platforms like Claude Code, Codex, and Gemini CLI by reading session data from their local project directories (`~/.claude/projects`, `~/.codex/sessions`, `~/.gemini/tmp`). The skill runs a local Node.js server (default port 4545) on 127.0.0.1 only, ensuring data stays local. Users can start, stop, and update the dashboard via simple commands, and optionally download 3D scene DLCs for a different visual theme. A JSON snapshot mode (`--json`) allows agents to query the dashboard programmatically from within a chat session.

Works with✓Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add Charonyuu/whatsmyagentdoing

Installed? Explore more Writing & Editing skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

What does myoffice do?

Start the dashboard. It serves a local page and opens it in the browser. Run it in the background so it keeps running and doesn't block the chat (this skill's base directory is shown above as "Base directory for this skill"):

node "<base directory>/bin/cli.js"

If it is already running, the same command just reopens the browser tab.

To update it — /myoffice update, or the user asks to update / upgrade — run node "<base directory>/bin/cli.js" --update (not in the background), report the version it printed, then start it again as above. The page also shows the version in the corner and an "Update" button when a new one is out.

To close it — /myoffice stop, or the user asks to stop / close / shut the office down — run (not in the background):

node "<base directory>/bin/cli.js" --stop

and say it's stopped. Then tell the user, in one line, that the office is open at the printed URL. If the output also says "Update available: vA → vB", tell the user a new version is out and offer to update it (/myoffice update, below). Requires Node.js 18+; if node is missing, say so and stop.

Scenes (3D)

Besides the built-in office there are downloadable 3D scenes (e.g. a pirate cove). When the user asks for another scene, a different look, "DLC", or names one ("海盜船", "pirate"):

  1. node "<base directory>/bin/cli.js" --scenes — lists every scene, whether it's installed, and its download size. Use the ids it prints; don't guess.
  2. node "<base directory>/bin/cli.js" --scene <id> (in the background) — downloads it if needed (checksum-verified, data only) and opens the office in that scene. --scene office goes back to the office.

Scenes are only downloaded when asked for. --remove-scene <id> deletes one.

Options the user may ask for:

  • --private — hide prompts/replies, show status only (for screen sharing)
  • --hours 4 — only sessions active in the last 4 hours (default 24)
  • --port 5000 — different port (default 4545)
  • --stop — stop the running dashboard
  • --json — print a one-off snapshot instead of opening a page. Use this when the user asks in chat what their other agents are doing: run node "<base directory>/bin/cli.js" --json --hours 2 and summarize by status.

Everything is read locally from ~/.claude/projects, ~/.codex/sessions and ~/.gemini/tmp; the server listens on 127.0.0.1 only and sends nothing anywhere.

Related Skills