CLI
Install the bot CLI, log in to the control plane, and manage projects, agents, and a local bot-agent from the terminal.
The bot CLI is a Go client for the control plane at
https://169.63.180.31.sslip.io. Use it to
manage projects and agents, install a local bot-agent, and send messages —
interactively or in scripts.
Authentication details (device flow, token files, bootstrap tokens): CLI Authentication.
Install
Download a release for your OS and CPU from
GitHub Releases. Archives are
named bot-<os>-<arch>-v<version>.tar.gz (Windows: .zip).
| Platform | Archive |
|---|---|
| macOS Intel | bot-darwin-amd64-v*.tar.gz |
| macOS Apple silicon | bot-darwin-arm64-v*.tar.gz |
| Linux x86_64 | bot-linux-amd64-v*.tar.gz |
| Linux arm64 | bot-linux-arm64-v*.tar.gz |
| Windows x64 | bot-windows-amd64-v*.zip |
| Windows arm64 | bot-windows-arm64-v*.zip |
# Linux / macOS example
tar -xzf bot-darwin-arm64-v0.1.0.tar.gz
chmod +x bot
sudo mv bot /usr/local/bin/bot
bot --version
From source (Go 1.25+):
git clone git@github.ibm.com:copilot/bot.git
cd bot
go build -o bot .
The default control-plane URL is https://169.63.180.31.sslip.io. Override with
bot config set server <url> or --server.
Quick start
bot login
bot auth status
bot projects list
bot projects create "my-agent" -d "description"
bot agents create PROJECT_ID "worker" -d "description"
bot runtime install
bot runtime start
bot runtime auth --project PROJECT_ID --agent AGENT_ID
bot runtime send "Hello" --wait 2m
bot tui
bot with no arguments launches the TUI when stdout is a TTY; otherwise it
prints help.
Configuration
State lives in a config directory (0700):
- macOS:
~/Library/Application Support/bot/ - Linux:
~/.config/bot/(or$XDG_CONFIG_HOME/bot)
| File | Purpose | Mode |
|---|---|---|
tokens.json | OAuth access + refresh JWTs | 0600 |
config.yaml | server_url, output, insecure, binary_repo | 0600 |
bot config list
bot config get server
bot config set server https://169.63.180.31.sslip.io
bot config set output json
bot --insecure login # lab / self-signed TLS only
--config is a directory, not a file path.
Commands
bot login / logout / auth status
bot config [list|get|set]
bot projects [list|get|create|update|delete]
bot agents [list|get|create|update|delete|bootstrap-token]
bot members …
bot files / mcp / skills / secrets / vault …
bot runtime install|start|stop|auth|send|status|logs
bot tui
Every command accepts -o json for scripts. Global flags: --server,
--insecure, --config, -o/--output, -v/--verbose, --version.
Full auth matrix and troubleshooting: CLI Authentication.
Related docs
- Getting started — dashboard path to a first conversation
- CLI Authentication — OAuth device flow and bootstrap tokens
- OAuth 2.0 API — authorize / token / refresh endpoints
- Agent API: Getting started — HTTP API against a running bot-agent