← ClaudeAtlas

inboxlisted

Send a message from one Claude session to another concurrent session — typically a sandboxed session asking the host (non-sandboxed) session to do something the sandbox can't (write via a read-only connector, run a host-only tool), or leaving a note for a named session. Delivery is automatic via the inbox hook. Also covers the rare container (e.g. ~/me) that can't reach the shared inbox and needs a manual relay.
hsigstad/research-kit · ★ 0 · AI & Automation · score 70
Install: claude install-skill hsigstad/research-kit
# Inter-session inbox Concurrent Claude sessions leave messages for each other under `<workspace>/inbox/messages/`. A `UserPromptSubmit` hook (`userprompt_inbox.py`) injects any unseen messages addressed to a session at its next prompt, so **delivery is automatic** — nobody has to relay or be told to "check the inbox". **Host and sandbox share the SAME `<workspace>` filesystem and git repo.** The sandbox's `/workspace` and the host's workspace are the same directory on the same machine (see `[[workspace_shared_filesystem]]`). So the normal case is simple: write the message into the shared inbox and the other session picks it up. There is no "may not be mounted" problem in the standard sandbox — that only bites the separate `~/me` container (see Fallback below). ## Just use the sender tool Don't hand-write message files. Use: ```sh research-kit/tools/send_message.py --to host --subject "<subject>" --body "<text>" # body can also come from stdin: echo "Rebuild rol and deploy." | research-kit/tools/send_message.py --to host --subject "rol deploy" ``` The tool resolves the workspace, writes `<from>-to-<to>_<utc-timestamp>.md` into `<workspace>/inbox/messages/`, and stamps the machine-parsed headers (`From-Session:` / `From-Name:` / `To-Session:` / `To-Name:`) so the recipient can **reply straight back**. Hand-rolling the file loses reply-routing and name targeting. ### Addressing (pick one) - `--to host | sandbox | all` — environment address. Default is the *other* env (a