# Session Commands Reference

All commands available within an interactive Octomind session. Type the command at the prompt.

## Session Management

### `/help`
Show all available commands with descriptions.

### `/exit` / `/quit`
Exit the current session.

### `/list [PAGE]`
List all saved sessions. Optional page number for pagination.

### `/session [NAME]`
Switch to a different session by name. Without argument, shows current session info.

### `/clear`
Clear the terminal screen.

## Information & Monitoring

### `/info`
Display comprehensive session statistics:
- Token usage (input, output, cached, reasoning)
- Cost breakdown (per-request and cumulative)
- Cache savings (tokens and USD)
- Compression statistics (if compression has occurred)
- Model information

### `/report`
Generate a detailed usage report for the session with per-request breakdown.

### `/share`
Upload the current session's JSONL log to the share endpoint and print a permanent URL pointing at the web viewer (`octomind.run/r/<id>`). The full forensic trace — every user/assistant turn, every tool call with args and results, every cost update, every compression/truncation marker — renders in the browser exactly as it occurred on disk.

The CLI **does not** open the URL automatically — clicking it is your choice.

```
/share
```

Output:
```
url    https://octomind.run/r/<8-char id>
id     <8-char id>
```

Environment overrides:
- `OCTOMIND_SHARE_URL` — point `/share` and `/analyze` at a different host (defaults to `https://octomind.run`). Use this only when pointing at a self-hosted instance or a local dev server.

### `/analyze`
Open the current session in the web viewer **without uploading anything**. A tiny HTTP server is bound to `127.0.0.1` on a random port; the printed URL points at `octomind.run/analyze?b=127.0.0.1:<port>&t=<token>` so the browser fetches the JSONL directly from your machine.

The bridge:
- listens on loopback only — unreachable from other machines,
- gates every request with a single-use 24-char token sent in the `X-Bridge-Token` header,
- aborts the previous bridge when `/analyze` is re-invoked (fresh port + fresh token each time),
- shuts down with the `octomind` process — there is no persistent state and no upload.

```
/analyze
```

Output:
```
url    https://octomind.run/analyze?b=127.0.0.1:<port>&t=<token>
port   127.0.0.1:<port> (loopback only)
```

Use `/analyze` for ephemeral, private review of an in-flight session; use `/share` when you want a permanent link to send to someone else.

### `/model [MODEL]`
Show or change the current model. Without argument, displays current model. With argument, switches to specified model in `provider:model` format.

```
/model openai:gpt-4o
/model anthropic:claude-sonnet-4
```

### `/role [ROLE]`
Show or change the current role. Without argument, displays current role.

```
/role assistant
/role developer
```
### `/effort [LEVEL]`
Show or change the reasoning effort level. Without argument, displays current level. With argument, sets the effort to one of: `low`, `medium`, `high`, `xhigh`, `max`.

```
/effort high
/effort max
```

### `/loglevel [LEVEL]`
Change the log level. Options: `none`, `info`, `debug`.

```
/loglevel debug
```

## Context Management

### `/context [FILTER]`
View session context (message history). Filters:
- `all` -- Show all messages
- `assistant` -- Only assistant messages
- `user` -- Only user messages
- `tool` -- Only tool calls and results
- `large` -- Only messages exceeding a token threshold

```
/context
/context tool
/context large
```

### `/done`
Mark the current task as complete. Triggers:
- Plan completion (if a plan is active)
- Force context compression (preserves only env-loaded skills, drops manually activated ones)
- Lesson extraction and storage (when `[learning]` is enabled — see [Learning Guide](../usage/13-learning.md))

## Media

### `/image <PATH>`
Attach an image for AI analysis. Supports PNG, JPEG, GIF, WebP.

```
/image screenshot.png
/image /path/to/diagram.jpg
```

### `/video <PATH>`
Attach a video for AI analysis.

```
/video demo.mp4
```

### `/copy`
Copy the last assistant response to the clipboard.

## MCP & Tools

### `/mcp [ACTION] [ARGS]`
Manage MCP servers at runtime.

| Action | Description |
|--------|-------------|
| `/mcp` or `/mcp list` | List all MCP servers with status |
| `/mcp info` | Detailed server information |
| `/mcp health` | Force health check on all servers |
| `/mcp validate` | Validate MCP configuration |
| `/mcp add <name> <url>` | Add HTTP server dynamically |
| `/mcp enable <name>` | Enable a registered server |
| `/mcp disable <name>` | Disable a server |
| `/mcp remove <name>` | Remove a server |

## Commands & Workflows

### `/run [COMMAND]`
Execute a custom command defined in `[[commands]]` config section. Without argument, lists available commands.

```
/run reduce
/run estimate
```

### `/workflow [NAME]`
Execute a workflow. Without argument, lists available workflows.

```
/workflow developer_workflow
```

### `/prompt [NAME]`
Inject a prompt template defined in `[[prompts]]` config section. Without argument, lists available prompts.

```
/prompt review
/prompt explain
```

### `/plan [ACTION]`

Manage the structured task plan.

| Usage | Description |
|-------|-------------|
| `/plan` or `/plan show` | Show current plan with progress |

**Note**: The `/plan` slash command only displays the current plan. To create, modify, or clear a plan, use the `plan` MCP tool directly with these commands:

- `plan(command="start", title="...", tasks=[...])` — Create a new plan
- `plan(command="next", content="...")` — Mark current task complete, advance to next
- `plan(command="step", content="...")` — Add progress note to current task
- `plan(command="reset")` — **Clear/reset the current plan**
- `plan(command="done", content="...")` — Complete the plan with final summary
### `/skill [NAME|PAGE|PATTERN]`
Manage skills from taps. Skills are reusable instruction packs that inject domain knowledge into context.

| Usage | Description |
|-------|-------------|
| `/skill` | List all skills (active first, then alphabetical) |
| `/skill <name>` | Toggle a skill on/off |
| `/skill <page>` | Show page N of the skill list |
| `/skill *pattern*` | Filter skills by glob pattern |

### `/schedule [SUBCOMMAND] [ARGS]`
Direct control over the built-in `schedule` MCP tool — schedule a message to be injected as a user message at a future time or on the next idle. Same operations as the MCP tool, but driven from chat input. See [Scheduled Tasks](../use-cases/07-scheduled-tasks.md) for the broader use case.

| Usage | Description |
|-------|-------------|
| `/schedule` or `/schedule list` | List all pending entries with IDs, trigger times, and countdown |
| `/schedule remove <id>` | Cancel a scheduled entry |
| `/schedule add message="<text>"` | Schedule a one-shot for the next idle (default `when="idle"`) |
| `/schedule add when="<when>" message="<text>" [every="<interval>"] [description="<label>"]` | Schedule a new entry |
| `/schedule edit <id> [when="..."] [message="..."] [every="..."] [description="..."]` | Update an existing entry (use `every="none"` to clear a repeat) |
| `/schedule help` | Show inline usage |

Key=value tokens accept shell-style quoting so multi-word values work: `when="in 1h 30m"`, `message='hello world'`. Supported `when` formats: `idle` (fires on next idle — no running taps or background jobs), `now` (fires immediately), relative (`in 5m`, `in 1h30m`, `in 90s`), time-of-day (`15:30`, `3:30pm`, `9am` — tomorrow if past), or absolute (`2026-03-30 15:30`). `every` accepts `idle` (fires on every idle) or the same duration syntax as relative `when` (`10m`, `1h`, `1h30m`). When both `when` and `every` are omitted on `add`, `when` defaults to `idle`.

Examples:
```
/schedule add message="summarize what we just did"             # default: when="idle"
/schedule add when="idle" message="run lint and report results"
/schedule add every="idle" message="remind me to commit"        # fires every idle
/schedule add when="now" message="say the date" every="5m"
/schedule add when="in 5m" message="check the build"
/schedule add when="9am" message="standup reminder" every="1h" description="daily"
/schedule edit abc12345 when="in 1h"
/schedule remove abc12345
```

### `/learning [ACTION]`

Manage the cross-session learning system. See [Learning Guide](../usage/13-learning.md) for full details.

| Usage | Description |
|-------|-------------|
| `/learning` or `/learning status` | Show learning system status and statistics |
| `/learning extract` | Force lesson extraction from current session |
| `/learning inject` | Force inject relevant lessons into current session |
