CLI Reference
IO provides a command-line interface via the io command.
Commands
io start
Start the IO daemon.
bash
io startThe daemon will:
- Initialize the data directory at
~/.io/ - Start the database and run migrations
- Load skills and wiki
- Start the orchestrator
- Start the scheduler
- Start the API server on port 7777
- Connect to Telegram (if configured)
io setup
Interactive first-time setup wizard.
bash
io setupPrompts for:
- Port (default: 7777)
- Telegram bot token (optional)
- Telegram user ID (optional)
- Supabase URL (optional)
- Supabase anon key (optional)
io --version
Print the current version.
bash
io --versionio --help
Show help information.
bash
io --helpGlobal Options
| Option | Description |
|---|---|
--version, -v | Print version and exit |
--help, -h | Show help and exit |
Process Management
IO is designed to run as a long-lived daemon. Recommended approaches:
Using pm2
bash
npm install -g pm2
pm2 start "io start" --name io
pm2 save
pm2 startup # auto-start on bootUsing systemd (Linux)
ini
[Unit]
Description=IO Daemon
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/io start
Restart=on-failure
User=your-user
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.targetUsing launchd (macOS)
xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>io.daemon</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/io</string>
<string>start</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
</dict>
</plist>Exit Codes
| Code | Meaning |
|---|---|
| 0 | Clean shutdown |
| 1 | Startup error (config, database, etc.) |