Cubicle Crew
Turn parallel coding sessions into a glanceable pixel office so you can spot work, questions, and finished tasks.
- Source repo
- rezored/cubicle-crew
- Stars
- ★ 34
- Last updated
- 1d ago
- License
- MIT
- Primary language
- JavaScript
- FA score
- 59/100 · Major gaps
At a glance
- How it runs
- Works with
- Universal · cross-platformCodex · Claude Code
- Cost
- Free, no paid service needed
- Setup effort
- Low · running in minutes
- You'll need
- Typical use
- Developers running several Claude Code sessions can keep a second-screen view of who is working, waiting for input, or finished.
- Not a fit if
- Linux users who need terminal jumping or launch at login
- OpenCode users who need to jump from a session to its terminal
- Source review
- 59/100 · Major gaps
What does this agent do, and when should you use it?
Cubicle Crew is a local session visualization tool built from a Node.js server and a canvas client using vanilla ES modules, with an Electron desktop widget also available. The server reads local session records from Claude Code, Codex, and Gemini CLI, and polls the OpenCode database read-only; browser and Electron windows receive events over WebSocket. Sessions appear as characters, desks, tool states, and team relationships in a pixel-art office, with Claude Code prompts that need your attention highlighted. Run the browser version with npx cubicle-crew or use a desktop build; data stays on your machine except for the optional weather feature.
On startup, the server watches ~/.claude/projects, session records from Codex and Gemini CLI, and polls the OpenCode database read-only, converting records into events such as tool_start, tool_end, say, and user_prompt. It maps tool types to states such as typing, reading, running, and delegating, and attempts to link sub-agents to their parent sessions. Browser or Electron clients receive events over WebSocket and render characters, desks, states, team links, and context usage in a canvas office; Claude Code waiting states can also trigger a sound, notification, or optional Allow/Deny controls. Other tools can send events to http://127.0.0.1:4317/api/event; the app also stores coins and settings locally and can export statistics.
- Developers running several Claude Code sessions can keep a second-screen view of who is working, waiting for input, or finished.
- Users delegating work to sub-agents can follow task ownership through team links and character positions in the office.
- Developers using Codex, Gemini CLI, or OpenCode can view those sessions alongside Claude Code in one scene.
- Users connecting GitHub Copilot CLI, Cursor, or their own scripts can send session events to the local API.
- Windows, macOS, and Linux users who want persistent desktop session indicators can run the Electron widget and its notifications.
How do you install or deploy this agent?
Requires Node.js 18 or later. The quickest route is to launch the browser app with npx; to run from source, clone the repository and install dependencies. Desktop builds are also available for Windows, macOS, and Linux; Windows users can download the installer from the latest release.
How do you use this agent?
After starting the browser version, open the address printed in the console (default http://localhost:4317) and then start sessions such as Claude Code. The app watches local records and displays sessions automatically. To connect another tool, send events to the local API; in-office Allow/Deny handling for Claude Code permission prompts must be enabled in settings.
What are this agent's strengths and limitations?
- Shows Claude Code, Codex, Gemini CLI, and OpenCode sessions together, with team links for sub-agent relationships.
- Reads local session records without API keys or required hooks; the OpenCode database is polled read-only.
- Runs as a browser app or Electron desktop widget, and offers a local events API for Copilot CLI, Cursor, or scripts.
- Optional permission controls, system notifications, and terminal jumping help surface sessions that need attention.
- Depends on local records written by tools such as Claude Code; the README notes that its JSONL transcript format is not an official API and parsing may break if it changes.
- Codex, Gemini CLI, and OpenCode lack live-session status files, so permission prompts do not turn those sessions red; terminal jumping is limited to Claude Code.
- The Linux build does not yet support terminal jumping or launch at login; Windows and macOS installers may show an unsigned-app warning on first launch.
- Real weather is optional and requires choosing a city; when enabled, city coordinates are sent to Open-Meteo every 20 minutes.
How does this agent compare with similar options?
The README compares Cubicle Crew with Pixel Agents, a VS Code extension: Cubicle Crew runs independently as a desktop widget or browser app without requiring VS Code, and adds coins, furniture and pets, team queues, and a local day/night scene.
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| Cubicle Crew This agent | 59 · Major gaps | Web appFree | ★ 34 | 1d ago | JavaScript | Codex · Claude Code |
| cctop Session Panel | 73 · Some gaps | Desktop appFree | ★ 159 | 1mo ago | Swift | Codex · Claude Code |
| Cindy | 52 · Major gaps | Desktop appFreemium | ★ 3.2k | today | TypeScript | Codex · Claude Code |
| Alook AI Workforce Layer | 42 · Major gaps | CLIFree + model costs | ★ 1.4k | today | TypeScript | Codex · Claude Code |
How does FollowAgents rate this agent?
Why each dimension lost points
least_privilege: server binds 127.0.0.1 with Host/Origin checks, but the installed app auto-starts at login and the optional phone view opens a LAN port, widening the surface — scored 1. user_confirmation: Allow/Deny prompts require explicit opt-in with a 45s fallback to terminal, and update install requires a click — 2. data_flow_transparency: docs/security.md enumerates read fields, written files and network calls in detail — 3. sensitive_data_handling: only truncated 60-char fields are kept and prompts/outputs are not read, but bubbles still show commands/paths unless hidden manually — 2. dependency_security: only ws and electron, but no lockfile evidence, audit or signing — 1. external_effects: weather and update checks are off by default, yet auto-start at login is a default external effect — 2. rollback: settings.json is backed up before edits and save.json is atomic with .bak, but no version rollback guidance — 2. source_attribution: MIT and author are clear, but publisher is unverified and builds are unsigned — 1.
self_consistency: README and security.md agree on ports, read paths and the permission hook — 2. dependency_availability: engines declares Node>=18 but no lockfile evidence and Electron 44 is not pinned — 1. failure_messages: only port fallback and npm run debug are mentioned; no systematic error-handling description — 1.
audience_and_scenarios: targets users running many Claude Code/Codex/Gemini/OpenCode sessions; scenario is clear — 2. capability_boundaries: read-only local logs, view-only phone mode, no permission prompts for non-Claude sessions — boundaries are explicit — 2. trigger_precision: state mapping relies on an 8-second silence heuristic and an unofficial JSONL format — 1. environment_fit: Windows/macOS/Linux/WSL and browser supported, but Linux lacks jump-to-terminal and login start — 2.
information_architecture: README is well-structured with clear sections and doc links — 3. install_notes: npx, source, per-platform installs and unsigned warnings are covered — 3. naming_stability: package and bin names are stable, but internal pixel-office paths diverge from the product name — 2. examples_and_faq: demo URLs, curl examples and a comparison exist, but no formal FAQ — 2. known_limitations: a dedicated section lists limitations — 2. license: full MIT text matches package.json — 3. versioning_changelog: semver version present but no CHANGELOG — 1. maintenance_responsibility: personal side project, unverified publisher, no governance statement — 1.
output_usability: visual state, stats export and snapshot sharing are practical, but depend on canvas and local setup — 2. marginal_value: addresses multi-session observability, though it is an enhancement rather than core tooling — 2. cost_benefit: single dependency, offline, zero-config, but Electron footprint and gamification are redundant for some users — 2.
claim_traceability: most README claims map to security.md and package.json — 2. cross_source_corroboration: README, security.md, package.json and the workflow corroborate ports, dependencies and builds — 2. fact_inference_separation: some behaviour claims (token economy, heuristic linking) lack code evidence and read as inference — 1.
- The installed app auto-starts at login and the phone view opens a LAN port; disable both in managed environments.
- Windows/macOS installers are unsigned, requiring SmartScreen/Gatekeeper bypass on first run — a supply-chain risk.
- No lockfile evidence and unpinned Electron/ws versions reduce build reproducibility.
- State detection relies on an unofficial JSONL format and an 8-second silence heuristic, which can misread long thinking as idle.
- Publisher is unverified and update downloads only check the SHA-256 GitHub reports, a weak trust anchor.
FAQ
Does it require a paid model service or API key?
Which session tools can appear in the office?
Can I handle every session's permission prompts in the office?
What if session records change or the app cannot parse them?
npm run debug to inspect parsed events and sub-agent linking.