# Dispatch

> Send a message/command to a specific session by ID. This skill is for the Manager session inside Workstation app. If you are in a standalone agent session, suggest the user open the Workstation app and use this skill from the Manager terminal.

- Skill: `varie-ai/dispatch` (Agent Skill)
- Install (CLI): `npx skillmds@latest add varie-ai/dispatch`
- Raw SKILL.md: https://api.skillmd.com/api/skills/varie-ai/dispatch/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: varie-ai (https://skillmd.com/u/varie-ai)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/varie-ai/dispatch

---


# /dispatch

## Agent Compatibility

This skill can run in Claude Code or Pi. Before running Workstation helper scripts, read `../_shared/agent-compatibility.md` and resolve:

- `WORKSTATION_DISPATCH` → `scripts/workstation-dispatch`
- `WORKSTATION_NOTIFY` → `scripts/workstation-notify`

Use `CLAUDE_PLUGIN_ROOT` when it is set; otherwise resolve the script path relative to this skill directory.

Send a message directly to a specific session.

**Context:** This skill is designed for the **Manager session** inside Workstation. If the agent detects it's not in a Manager context (no workstation socket responding), inform the user:
- "This skill works from the Manager session in Workstation."
- "Open the Workstation app and use /dispatch from the Manager terminal."

## When to Use

- When you have the exact session ID (from /work-sessions)
- When you want precise control over which session receives the message
- For follow-up messages to a session you've already identified

For fuzzy matching by repo name or task, use `/route` instead.

## Arguments

- `<session-id>` - The session ID (from /work-sessions output)
- `<message>` - The message to send to the session's terminal

## Implementation

### 1. Send dispatch command

```bash
"$WORKSTATION_DISPATCH" dispatch "<session-id>" "<message>"
```

### 2. Handle the response

**Success response:**
```json
{
  "status": "ok",
  "received": "dispatch",
  "targetSessionId": "abc123"
}
```

**Error responses:**
```json
{"status": "error", "message": "Session not found: xyz789"}
{"status": "error", "message": "Cannot dispatch to external session"}
```

### 3. Report result to user

**On success:**
```
Dispatched to session abc123.
Message sent: "<first 50 chars of message>..."
```

**On error:**
```
Failed to dispatch: <error message>

Use /work-sessions to see available sessions.
```

## Example Usage

```
User: "Send 'check the API status' to session abc123"

Manager runs:
  "$WORKSTATION_DISPATCH" dispatch "abc123" "check the API status"

Response:
  Dispatched to session abc123.
  Message sent: "check the API status"
```

## Creating New Sessions

`/dispatch` only sends to **existing** sessions. If you need to create a new session, you have two options:

1. **`/route`** — Auto-creates a first session on a repo if none exists
2. **`create-worker`** — Explicitly creates a session (use for additional sessions on a repo that already has one)

```bash
"$WORKSTATION_DISPATCH" create-worker <repo> <repo-path> <task-name>
```

Always provide a **task name** when creating additional sessions so they can be differentiated.

## Notes

- The message is written to the session's terminal as if typed by a user
- The target agent session will process it as a new prompt
- Use /work-sessions first to find valid session IDs
- For auto-routing, use /route instead
- Session permission mode is set at creation time. To configure default permissions for new sessions, use `/workstation skip-permissions on/off`.

