d1spatch
v0.1.0
Published
Messenger-to-agent bridge for coding CLI agents (Claude, Codex)
Readme
d1spatch
Messenger-to-agent bridge for coding CLI agents (Claude, Codex).
Currently supports Signal as the messenger transport. More transports coming soon.
Why d1spatch
Turn your messenger into a remote control for local coding agents. It lets you:
- Trigger agent runs from your phone without opening a terminal.
- Keep conversations in Signal while agents execute locally.
- Switch between Claude/Codex in a single session.
Prerequisites
- Node.js 18+
- Java 21+
- signal-cli
- At least one of:
claude,codex
signal-cli setup
Install signal-cli:
# macOS
brew install signal-cli
# Linux — download from https://github.com/AsamK/signal-cli/releasesLink to your Signal account:
signal-cli link -n "d1spatch"This prints a tsdevice: URI. Convert it to a QR code (or pipe to qrencode -t ANSI), then scan it in Signal on your phone under Settings > Linked Devices > Link New Device.
Verify it works:
signal-cli -a +YOUR_NUMBER receiveThe phone number you linked with is your SIGNAL_ACCOUNT.
Setup
npm install
cp .env.example .env # edit with your values
npm run buildInstall (npm package)
npm install -g d1spatch
# or
npx d1spatch --config /path/to/.envEnvironment variables
| Variable | Required | Description |
|----------|----------|-------------|
| SIGNAL_ACCOUNT | Yes | Phone number linked with signal-cli (with +) |
| ALLOWED_USER_ID | Yes | Phone number allowed to use the bridge (digits only) |
| WORKING_DIR | No | Working directory for agents (default: cwd) |
| SKIP_PERMISSIONS | No | true to auto-approve all agent actions |
| CLAUDE_ALLOWED_TOOLS | No | Comma-separated Claude tools to allow |
| DEBOUNCE_MS | No | Output debounce in ms (default: 1500) |
| MAX_MESSAGE_LENGTH | No | Max message length before splitting (default: 4000) |
You can point to an env file with --config /path/to/.env (or -c).
Usage
npm start # production (repo)
npm run dev # development (repo)
npm start -- --config /path/to/.env
d1spatch --config /path/to/.env # npm package
d1spatch -c /path/to/.env
d1spatch doctorSend any message via Signal. The bridge replies with an agent selection menu. Pick a number, then all messages route to that agent.
Commands
| Command | Description |
|---------|-------------|
| /agent | Switch agent (kills current session) |
| /reset | Kill session, start fresh |
| /status | Show active agent |
License
MIT
