Kantor Agent plugin

A Claude Code plugin that draws a 3D office where your session and subagents work at desks from real transcripts, zero config.

  • 171 ★ on the repository
  • Last commit
  • MIT
Plugin

Extended access

Why this level

  • Runs a local server and reads session transcripts; the optional public tunnel exposes a page without login to anyone who knows the address.
All reasons and checks

humaedihume/kantor-agent

Install

Works in

In your terminal, with SkillFoxx CLI

npx skillfoxx add plugins/kantor-agent

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • Runs a local server and reads session transcripts; the optional public tunnel exposes a page without login to anyone who knows the address.

This is third-party code. Review the repository files before installing.

What it does

Kantor Agent shows in a browser what Claude Code is doing in your project as a small three.js 3D office. The main session is the team lead Joko at his own desk. Four colleagues (Budi, Sari, Agus, Rina) relax in the lounge and walk to a desk whenever Claude spawns a subagent of any type. If all four are busy, freelancers enter through the door, sit at spare desks and leave when done. Every movement comes from real local transcripts in `~/.claude/projects`: files are read read-only, abbreviated and scrubbed of secrets, and no activity is invented. The `/kantor-agent:kantor-agent` command starts a local server on Node 18+ or PHP 8.1+ at `http://127.0.0.1:8788/kerja` and writes nothing into the project folder. A side panel holds a live action feed, subagent history and `TodoWrite` tasks.

Who it is for. People who launch many subagents in Claude Code and want to see the parallel work on one screen instead of scrolling a log.

Good fit when

  • The main session spawns several subagents and it is unclear who is busy with what.
  • A visual demo of agent work is needed for a meeting or a screen recording.
  • You want to leave an office window on a second monitor and watch a long task.
  • The `TodoWrite` task list is worth seeing on a board next to subagent activity.
  • You want to show progress from a phone by opening a temporary public address.

Not a fit when

  • You need token and quota analysis: the office shows action and token counts but is no usage report.
  • Work happens outside Claude Code: transcripts are read only from its directory.
  • You plan to open the page outward on sensitive project tasks: the public address has no login.

Example request

Start Kantor Agent for this project and tell me which address opens the office.

Limitations

The interface and docs are entirely in Indonesian, with only a short English summary at the top of the README. It needs Claude Code with plugin and subagent support (tested on v2.1.283), Node 18+ or PHP 8.1+ and a WebGL browser. A public address requires cloudflared; the page has no login and shows subagent task descriptions, file names and an activity summary, so give the link only to trusted people and close it with `tutup-publik`. Do not install the plugin and the manual version together, or the command list shows two identical entries.

How to disable. Stop the server with `/kantor-agent:kantor-agent stop`, then run `claude plugin uninstall kantor-agent@kantor-agent` and `claude plugin marketplace remove kantor-agent`. The cache and logs live in `~/.cache/kantor-agent/` and can be deleted.

FAQ

How do I install Kantor Agent in Claude Code?

Run `/plugin marketplace add humaedihume/kantor-agent`, then `/plugin install kantor-agent@kantor-agent` and `/reload-plugins`. Then run `/kantor-agent:kantor-agent` in the project folder.

What data does the plugin read?

Claude Code transcripts in `~/.claude/projects`, read-only: subagent task descriptions, tool names, relative paths, action and token counts. Tool result contents, Bash arguments and full prompts are never read.

How do I open the office from a phone?

`/kantor-agent:kantor-agent publik` starts a temporary cloudflared tunnel with a trycloudflare.com address. The page has no login, so share the address carefully and close it with `tutup-publik`.

How do I change names and the port?

Create `.claude/kantor-agent.json` in the project and set `title`, `port` and `names` for the lead, team and freelancers. The default port is 8788, and the next free one is chosen if it is busy.

Can I run it without Node?

Yes, PHP 8.1 or newer works: `kantor.sh start --php`. If both exist, Node is used by default.

Discussion

No questions or reviews yet.

Plugins
Editors’ pick

Multi-agent orchestration for Claude Code: teams, roles, autopilot and task routing across skills and subagents

PluginBroad access40.6KRepository stars

A local real-time dashboard for Claude Code and Codex sessions: agent activity and tool calls

CLIExtended access1.1KRepository stars
Editors’ pick

Anthropic's coding agent for the terminal, IDE and GitHub: understands your codebase, runs tasks and handles git

CLIBroad access154.7KRepository stars

Agent-Native Agent

Agent-Native Agent (ANA)

A Claude Code plugin and self-hosted app: a dashboard and chat with a coding agent that rewrites the app while you use it

PluginBroad access130Repository stars

A Claude Code plugin marketplace with ready sets of agents, slash commands, hooks and skills, plus a search site

PluginExtended access3.7KRepository stars

claude-code-sub-agents

Claude Code Subagents Collection

A collection of specialized subagents for Claude Code: frontend, backend, data, infrastructure, testing, security

PluginExtended access1.7KRepository stars

README in short

The README is in Indonesian with an English summary: features, requirements, plugin and manual install, a transcript-reading diagram, the rules that assign subagents to desks and a privacy section listing what is hidden.

README badge

Original SKILL.md

---
name: kantor-agent
description: Jalankan "Kantor Agent" — kantor 3D (three.js) tanpa konfigurasi di http://127.0.0.1:8788/kerja yang menampilkan apa yang sedang dikerjakan Claude di project ini. Ketua (sesi utama) bekerja di mejanya; 4 anggota tim (Budi, Sari, Agus, Rina) santai di lounge lalu duduk bekerja setiap kali Claude memanggil subagent (jenis apa pun); bila tim penuh, freelancer datang lewat pintu. Semua dari transkrip nyata ~/.claude/projects, read-only, tanpa menulis file ke project. Node ≥ 18 (atau PHP ≥ 8.1). Pakai saat user ingin melihat/menyalakan/mematikan kantor agent, dashboard subagent, atau URL publiknya.
argument-hint: "[start|stop|status|publik|tutup-publik] [--node|--php] [--port N]"
---

Runtime siap pakai ada di `${CLAUDE_SKILL_DIR}/runtime/` — **tidak ada yang disalin ke project**. Semua perintah memakai
`bash "${CLAUDE_SKILL_DIR}/runtime/bin/kantor.sh" <perintah>` dan dijalankan di **root project saat ini** (folder tempat
Claude Code dibuka), karena transkrip dicari berdasarkan path folder itu.

Argumen user: $ARGUMENTS

## Langkah
1. **Pilih perintah dari argumen** (tanpa argumen = `start`):
   - `start` / kosong → `bash "${CLAUDE_SKILL_DIR}/runtime/bin/kantor.sh" start` (teruskan `--node`, `--php`, `--port N` bila ada).
   - `stop` → `… kantor.sh stop` · `status` → `… kantor.sh status` · `restart` → `… kantor.sh restart`.
   - `publik` / `tunnel` / `--publik` → jalankan `start` dulu, lalu `… kantor.sh tunnel` (butuh `cloudflared`).
   - `tutup-publik` / `tunnel-stop` → `… kantor.sh tunnel-stop`.
2. Skrip bersifat idempoten: bila server sudah berjalan untuk project ini ia hanya mencetak URL; port sibuk → otomatis
   pindah ke port bebas berikutnya; Node ≥ 18 dipakai bila ada, selain itu PHP ≥ 8.1. Bila keduanya tidak ada, sampaikan
   pesan error skrip apa adanya (cara memasang Node/PHP) lalu berhenti.
3. **Laporkan singkat** (Bahasa Indonesia): URL lokal (baris `URL :`), runtime, cara menghentikan
   (`/kantor-agent stop` atau perintah `Hentikan` yang dicetak). Bila skrip mencetak `Catatan : belum ada transkrip…`,
   jelaskan bahwa kantor terisi setelah Claude Code dipakai di folder ini (semua karakter santai sampai ada aktivitas).
4. **Tawarkan URL publik dalam satu kalimat** (jangan dijalankan tanpa persetujuan eksplisit): "Ingin dibuka dari ponsel
   di luar jaringan? Jalankan `/kantor-agent publik`." Saat user memintanya, setelah `tunnel` berhasil sampaikan
   peringatannya: siapa pun yang tahu link bisa melihat aktivitas agent (read-only, diredaksi), bagikan hanya ke orang
   tepercaya, dan matikan dengan `/kantor-agent tutup-publik`.

## Cara membaca kantornya (untuk menjawab pertanyaan user)
- **Ketua** (default "Joko") = sesi utama Claude Code terbaru yang aktif; lebih dari satu sesi aktif → catatan "+N sesi lain".
- **Tim** (Budi, Sari, Agus, Rina) = subagent. Subagent baru → anggota bebas pertama (urutan tetap) berjalan ke mejanya;
  selesai/dihentikan/limit → "Beres!" lalu kembali santai. Penugasan dihitung ulang dari data yang sama sehingga stabil.
- **Freelancer** = subagent saat keempat anggota tim sibuk: masuk lewat pintu, duduk di meja cadangan (maks 4 meja,
  sisanya kartu "+N"), pulang lewat pintu setelah selesai.
- Nama/judul/port bisa ditimpa lewat `<project>/.claude/kantor-agent.json` (opsional, lihat README):
  `{"title": "…", "port": 8788, "names": {"ketua": "…", "team": ["…","…","…","…"], "freelancers": ["…"]}, "autostart": false}`.

## Aturan
- Read-only terhadap project dan transkrip; jangan membuat atau mengubah file di project kecuali user meminta
  `.claude/kantor-agent.json`. Cache/PID/log ada di `~/.cache/kantor-agent/<slug-project>/`.
- Jangan pernah membuka tunnel publik tanpa persetujuan user; jangan menyalin isi transkrip ke balasan.
- Autostart (hook SessionStart plugin) mati secara bawaan. Aktifkan hanya bila user meminta: `"autostart": true` di
  `.claude/kantor-agent.json` (atau env `KANTOR_AUTOSTART=1`).
- Verifikasi opsional: `node "${CLAUDE_SKILL_DIR}/runtime/bin/check.mjs" <url-dasar>`; bila Node **dan** PHP ada:
  `node "${CLAUDE_SKILL_DIR}/runtime/bin/parity.mjs" --project="$PWD"` (harus "PARITY OK").

Report a problem

Foxx AIKantor Agent
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.