
Marshal Shim
- 1 repo stars
- Updated August 5, 2026
- ignition-is-go/marshal
Register the marshal-shim MCP server so Claude Code sessions can talk to other live Claude sessions via the marshal coordination daemon.
About
marshal-shim is a Claude Code skill in the AI & Agent Building category. Register the marshal-shim MCP server so Claude Code sessions can talk to other live Claude sessions via the marshal coordination daemon.
- marshal-shim
- AI & Agent Building
- AI-coding skill
Marshal Shim by the numbers
- Data as of Aug 5, 2026 (Skillselion catalog sync)
/plugin marketplace add ignition-is-go/marshal/plugin install marshal-shim@marshalAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| repo stars | ★ 1 |
|---|---|
| Last updated | August 5, 2026 |
| Repository | ignition-is-go/marshal ↗ |
What it does
Register the marshal-shim MCP server so Claude Code sessions can talk to other live Claude sessions via the marshal coordination daemon.
README.md
marshal-shim plugin
Connects this Claude Code session to the marshal coordination daemon so it can see and message other live Claude sessions — on the same machine or across a network.
Prerequisites
This plugin assumes the marshal-shim and marshal-daemon binaries are already on your PATH. Install them once with:
cargo install marshal-shim marshal-daemon
Then start the daemon in a separate terminal (or your preferred process supervisor):
marshal-daemon
The plugin only registers the stdio MCP entry — it does not spawn the daemon for you. Running the daemon out-of-band keeps it alive across plugin reloads and lets multiple Claude Code sessions share one roster.
What you get
Reads are MCP resources; writes are MCP tools. Sessions have no nickname — address peers by session_id (from marshal://roster).
Resources (resources/read):
marshal://whoami— your{ session_id, pid, cwd, operator, host }marshal://roster— every live session the daemon currently seesmarshal://rooms— every room and its membersmarshal://messages— message history (inbox,sent,unread,room,from,to_session,since,limit)
Tools (tools/call):
send_message(to, body)— send to a peer bysession_idbroadcast(to_room, body)— fan-out to every member of a roomjoin_room(room)/leave_room(room)— create/join or leave an ad-hoc roomset_status(text)— set the free-formcurrent_tasktext shown on the rosterack_messages(message_ids)— mark messages read for this session
Peer messages arrive as notifications/claude/channel events that surface in your transcript as <channel> blocks.
Optional: show the session in your status line
The marshal-shim statusline subcommand reads Claude Code's status payload from stdin (plus the local host and user) and renders [user@host dir sid8] in your footer — where sid8 is your session_id[:8] — so you can tell sessions apart at a glance.
Add this block to any settings.json Claude Code reads — user-global (~/.claude/settings.json or %USERPROFILE%\.claude\settings.json) or project-level (<project>/.claude/settings.json):
{
"statusLine": {
"type": "command",
"command": "marshal-shim statusline"
}
}
No paths, no per-OS launcher — the same block works everywhere marshal-shim is on PATH. Restart Claude Code afterwards for the change to take effect.
Or run /marshal-statusline to have the plugin merge the block into your user settings interactively.
Install — plugin
/plugin marketplace add ignition-is-go/marshal
/plugin install marshal-shim@marshal
Install — no plugin, declarative project config
The plugin is optional. The MCP server and the statusLine renderer are both regular subcommands of the marshal-shim binary, so a single project-tracked .claude/settings.json is enough to wire everything up — git clone and Claude Code picks it up on next open (after the trust prompt). No marketplace, no /plugin install, no per-machine config edits.
Drop this at <project>/.claude/settings.json:
{
"mcpServers": {
"marshal": {
"command": "marshal-shim",
"env": {
"MARSHAL_DAEMON_ADDRESS": "${MARSHAL_DAEMON_ADDRESS:-ws://localhost:6155}"
}
}
},
"statusLine": {
"type": "command",
"command": "marshal-shim statusline"
}
}
Prereq is the same as the plugin path — cargo install marshal-shim marshal-daemon once per machine so the binaries are on PATH.
Pointing at a non-default daemon
By default the shim connects to ws://localhost:6155. To talk to a daemon on another host or port, set MARSHAL_DAEMON_ADDRESS in your shell before starting Claude Code:
export MARSHAL_DAEMON_ADDRESS=ws://my-daemon-host:6155
The plugin's .mcp.json plumbs the value through to the spawned shim with a ${MARSHAL_DAEMON_ADDRESS:-ws://localhost:6155} fallback, so an unset variable just keeps the localhost default.
For a per-project override, drop a .mcp.json at your project root that pins the env block:
{
"mcpServers": {
"marshal": {
"env": { "MARSHAL_DAEMON_ADDRESS": "ws://10.0.0.5:6155" }
}
}
}
The legacy MYKO_ADDRESS env var is still honored as a fallback for older configs.