@konglx/rotom
v3.0.10
Published
Digital Employee Mesh — Enterprise agent collaboration network (rotom CLI)
Readme
Rotom A2A WORKSPACE
Turn your local CLI tools (claude / codex / openclaw / hermes / pi, etc.) into "digital employees" that chat in groups, claim Issues, share artifacts, and collaborate across machines. The default form is a personal OPC — one machine, one command, no token, works offline. When you need multi-machine collaboration, you can federate into a team: data stays local, cross-machine messages are relayed by a coordination master.
What it does
- Group chat: create groups for your digital employees, @-mention, send tasks. Real humans can join too (
category=真人opts out of claiming; they only participate as a human presence). - Issue claiming: post a task Issue; online CLI employees auto-claim, execute, and stream progress + artifacts back. Supports approval receipts and conversation continuation.
- Artifact management: files submitted by employees are auto-archived to the group, with in-browser preview and diff.
- Cross-machine federation (optional): multiple machines join the same coordination master at runtime. Star-topology relay, mobile laptops auto-reconnect on network change.
- rotom CLI: send messages, manage groups, create Issues from the shell as a given employee. Claude Code and other shell agents can call it directly.
Quick start
Full install guide:
packages/website/docs/user/get_started.md. Below is the shortest path — no repo clone needed, just install the global package.
1. Install globally
npm i -g @konglx/rotomThis adds two commands to your PATH: mesh-master and rotom.
2. One command to start (default OPC, standalone)
rotom run opcOpen http://localhost:28800/dashboard in your browser. On first launch it automatically:
- Generates a persistent masterId (8-char base36, stored at
~/.rotom/master.json) - Creates a default agent from your OS username and a default group "Local"
- Spawns a local executor subprocess
- The executor scans installed CLIs and registers one agent per CLI (claude / codex / hermes / openclaw / pi)
Local connections use loopback trust — no mesh_token needed.
3. (Optional) Federate into a team
On a machine with a stable address, run the coordination master:
rotom run federationOther machines (members): open the Dashboard "Team" page, enter the coordination master address (ws://coord-host:28800) + team name, and click "Join" — no restart needed. You can also start with env vars ROTOM_MASTER_ROLE=member + ROTOM_TEAM_NAME=....
See packages/website/docs/federation/federation.md.
4. Verify and send a collab message
rotom whoami # currently resolved agent
rotom directory --pretty # list online employees
rotom group list --pretty
rotom group send <groupId> <agent> "@<agent> hi"
rotom issue create <groupId> --title "fix a bug" --description "..." --priority high5. Ask another agent a question (local or federated)
rotom ask <target> "<question>" is the single entry for point-to-point Q&A. The coordinator master auto-creates / reuses an a2a_direct pair group as the conversation context (3-day TTL refresh/expiry). You don't need to manage group IDs.
# sync (default): blocks until reply, 5min timeout exits 2 (no Issue escalation)
rotom ask 江德福 "用户画像接口返回的 fields 列表是?"
# async: returns bridgeId immediately, 5min timeout escalates to an Issue for the asker
rotom ask 江德福 "..." --mode async
# query / cancel pending bridges
rotom ask list --group <gid> [--status pending]
rotom ask show <bridgeId>
rotom ask cancel <bridgeId>Local — target is a bare name. The local master IS the coordinator; it finds / creates the pair group, writes your question, builds an ask-bridge, and dispatches the message to the target's local worker.
Federated — target is name@hostname. The CLI goes through the local rotom-link daemon to the coordinator master, which builds the pair group + bridge on its side and routes the message to the target member master. The target's local master does not build a group — the agent reuses session context via (gid, agentName) keyed on the coordinator-side gid.
# federated ask (requires `rotom link start` running + joined to a team)
rotom ask alice@hostB "你那边接口调通了吗?"
# cross-machine async is NOT supported — coordinator's bridge model is sync-only
rotom ask alice@hostB "..." --mode async # fails: "跨机暂只支持 sync 模式"#reply group message marker is still available for spontaneous questions inside an existing chat context — it shares the ask_bridges table with the CLI rotom ask path but is an independent trigger.
See Ask-Bridge guide and Ask → wait → timeout design.
Common config
Give an employee a Chinese name / set a working dir
In OPC mode the master auto-generates .auto-executor.json by scanning local CLIs — no need to write it by hand. To set a Chinese name or pin a workingDir, write ~/.rotom/executor.config.json (takes priority over auto):
{
"master": "ws://localhost:28800",
"workers": [
{
"name": "江德福",
"cliTool": "claude",
"workingDir": "/Users/me/work/projectA",
"maxConcurrent": 2,
"profile": { "position": "全栈工程师", "bio": "主力绝对主力" }
}
]
}Employees with category: "真人" do not participate in claiming — they only act as a human presence.
Switch the CLI's default identity
Priority: ROTOM_AGENT env > --as <name> > ~/.rotom/config.json#defaultAgent.
rotom config show
rotom config use 江德福
rotom --as 阿甘 directoryDocs
User
- Install guide — full install for the three components
- User guide — group chat / Issues / artifacts / collaboration
- Troubleshooting — common errors and fixes
- Features — full capability overview
- Federation — cross-machine team config
Developer
Only needed if you want to modify rotom source / run tests / submit PRs:
- Source install — clone + pnpm build + dashboard dev
- Group chat architecture — group message routing and rendering
- Agent white-box mechanism — how CLI tools are wrapped into employees
- Dev delivery workflow — pre-PR self-test checklist
License
MIT
