---
name: claudraband
description: Use claudraband CLI to control Claude Code sessions programmatically. Use when running, scripting, or automating Claude Code via the claudraband CLI — sending prompts, listing/resuming sessions, or working in interactive REPL mode. Triggers on any mention of claudraband, claudraband-cli, npx claudraband, bunx claudraband, or automating Claude Code sessions. Used when you need to ask yourself (Claude) a question
---
# Claudraband CLI
Claudraband spawns Claude Code in a hidden shared tmux session, tails its JSONL log, and provides a clean command-line interface for sending prompts, streaming output, and managing sessions.
Local built binary: `node packages/claudraband-cli/dist/bin.js` or `bun packages/claudraband-cli/dist/bin.js`
Published binary: `claudraband` via `npx @halfwhey/claudraband` or `bunx @halfwhey/claudraband`
---
## Commands
### Send a prompt
```bash
node packages/claudraband-cli/dist/bin.js "your prompt here"
```
Positional args after flags are concatenated as the prompt. Blocks until Claude finishes all tool calls, then exits.
### Interactive REPL
```bash
node packages/claudraband-cli/dist/bin.js -i
```
Starts a read-eval-print loop. Send multiple prompts to the same session without restarting. Exit with `Ctrl+D`, cancel current prompt with `Ctrl+C`.
### List sessions
```bash
node packages/claudraband-cli/dist/bin.js sessions [--cwd
]
```
Lists resumable sessions for a directory (defaults to `cwd`). Output per line: ``.
Sessions are stored at `~/.claude/projects//.jsonl`. A session only appears here if the file is >= 100 bytes.
### Resume a session
```bash
node packages/claudraband-cli/dist/bin.js resume [prompt...]
```
Resumes a previous session by UUID. Optionally send a new prompt immediately.
---
## Flags
| Flag | Short | Default | Description |
|------|-------|---------|-------------|
| `--help` | `-h` | - | Show usage and exit |
| `--interactive` | `-i` | false | REPL mode |
| `--cwd ` | - | `cwd` | Working directory for session |
| `--claude ""` | `-c` | - | Claude CLI launch flags, e.g. `--model sonnet --effort high` |
| `--approve-all` | - | false | Auto-select first permission option |
| `--terminal-backend ` | - | `auto` | `auto`, `tmux`, or `xterm` |
| `--debug` | - | false | Debug logging to stderr |
### Permission modes
- `default` -- prompt user for each tool call
- `plan` -- plan only, no file edits
- `auto` -- bypass all permission checks
- `acceptEdits` -- auto-accept file edits
- `dontAsk` -- skip all confirmations
- `bypassPermissions` -- dangerously skip everything
---
## Session lifecycle
tmux-backed sessions share a tmux session named `claudraband-working-session`. Each Claude session gets its own tmux window named with the Claude session ID, and the CLI sends prompts into that window's pane while tailing the JSONL log for events.
**Turn completion**: detected via 3-second idle timeout after Claude sends a response with no outstanding tool calls. This is not a hard delay -- the idle timer only starts after a response arrives.
**Interruption**:
- `Ctrl+C` while prompt is running -- sends interrupt to Claude, waits for it to finish
- `Ctrl+C` while idle -- stops session and exits
- `Ctrl+D` in REPL -- exits the loop and stops the session
---
## Permission prompts
When Claude requests a tool permission, the CLI prints:
```
Permission:
1.