Monkey Desk
English · 中文
A visual multi-agent workspace for DeepSeek Harness (DSH) Web. Monkey Desk gathers subagents from every conversation in the current workspace into a live office where each agent has a workstation, a screen, a lifecycle state, and contextual actions.

Why Monkey Desk
Multi-agent work is usually buried in session IDs, tool calls, and logs. Once several tasks are running, it becomes difficult to tell who is working, who has finished, which agent can be resumed, and where revision feedback should go.
Monkey Desk translates that machinery into a workspace you can understand at a glance:
- A lit screen and typing motion mean the agent is working.
- A sleeping character means a persistent subagent has completed its current task and can be resumed.
- A faded workstation means a one-shot task has ended and can be inspected or archived.
- Hovering a workstation exposes dispatch, revision, wake-up, and archive actions.
Features
- Adds a dedicated Monkey Desk view to DSH conversations.
- Aggregates subagents across every conversation in the current workspace.
- Refreshes the workspace team and latest activity summaries every four seconds.
- Visualizes
running,ready, andgonelifecycle states. - Dispatches new work directly to resumable subagents.
- Sends revision requests back to the same agent with its work history intact.
- Archives sessions with an explicit confirmation step.
- Provides a “hire agent” form for persistent, one-shot, and context-fork agents.
- Detects whether Codex and Claude Code CLIs are available on the host.
- Adapts from a three-column office to two-column and mobile single-column layouts.
Live DSH integration

Installation
Requirements:
- A working DeepSeek Harness installation.
- A DSH Web profile.
- Codex or Claude Code only when their respective execution providers are selected.
Install the GitHub repository into the web profile:
dsh plugin --profile web add https://github.com/svmlearn/dsh-monkey-desk.gitRestart DSH Web:
dsh --profile webOpen a conversation and select the Monkey Desk view.
Install from a local checkout
git clone https://github.com/svmlearn/dsh-monkey-desk.git
dsh plugin --profile web add ./dsh-monkey-desk
dsh --profile webUsage
Monitor the team
Use the filters to show all, running, sleeping, or departed workstations. The latest available activity summary appears below each subagent's screen. Dispatch is routed through the subagent's actual parent conversation automatically.
Dispatch, revise, and archive
Hover a workstation to reveal its actions:
Dispatchsends a new task to the subagent.Wakeresumes a persistent agent after its previous task has finished.Revisesends feedback to the same agent, preserving its history.Archivearchives the session after a second confirmation.
Hire a role
Select “Hire agent,” then enter a role name, execution provider, and first task:
| Type | Context model | Lifecycle | Best for |
|---|---|---|---|
| Persistent role (Spawn) | Fresh independent context | Can be resumed, dispatched, and revised repeatedly | Stable product, engineering, or operations roles |
| One-shot worker | Receives only the task's required information | Leaves after delivery | Well-scoped one-off execution |
| Fork subagent | Copies a snapshot of the parent context at creation | Branches from the current point | Side work that requires the current discussion context |
> A fork inherits a point-in-time context snapshot. It does not create continuously synchronized shared memory between parent and child.
In the current release, Codex and Claude Code providers support one-shot workers only. Persistent roles and context forks use DeepSeek subagents.
The hire form does not silently create an agent. It writes a structured instruction into the current conversation draft. You review and send it, then the parent agent handles the system role, skills, and subagent creation. This keeps the creation process visible and inspectable.
How it works
DSH Web conversation.view
│
├── lib/client.js
│ ├── /monkey-desk-team (workspace aggregation)
│ ├── subagents.history
│ ├── subagents.prompt
│ └── workspace.archiveSession
│
└── lib/index.js
├── /monkey-desk-team (cross-conversation agent list)
└── /monkey-desk-engines (local CLI availability probe)| File | Responsibility |
|---|---|
lib/client.js | Registers the team view, renders workstations, refreshes state, and handles interactions |
lib/index.js | Host-side plugin that aggregates workspace teams and checks Codex/Claude CLI availability |
cordis.patch.yml | Mounts the plugin into the DSH Web profile |
package.json | Declares the DSH bundle and client injections |
Privacy and security
- The plugin contains no API keys and requires no separate credentials.
- It includes no analytics, telemetry, or third-party data upload.
- Session discovery, activity summaries, dispatch, and archive actions use APIs supplied by the current DSH host.
/monkey-desk-teamreads only session and subagent projections in the current DSH workspace./monkey-desk-enginesreturns only whethercodexandclaudeexecutables are available. It returns no paths or credentials.
Current limitations
- The plugin UI is currently Chinese-first.
- Lifecycle state is inferred from DSH's current subagent projections; it is not a token-by-token live desktop.
- Agent creation still requires the user to send the generated instruction. This is an intentional confirmation step.
- This repository distributes source code on GitHub only.
private: trueprevents accidental publication to the npm registry.
Development
There is no build step. lib/client.js is a native module wrapper loaded by DSH Web. The UI uses React supplied by the host and renders through React.createElement.
Quick pre-release checks:
node --check lib/index.js
node --check lib/client.js
npm pack --dry-runLicense
[MIT](LICENSE) © 2026 svmlearn