The company-agents CLI is the keyboard interface to Company Agents. Everything the dashboard can do, the CLI can do. It is also the preferred interface for automation: no browser, no modal dialogs, stable JSON output, exit codes you can check. The CLI ships in the same installer as the desktop app and is also available as a standalone binary for headless servers.

Install

macOS (Homebrew)

brew install company-agents/tap/company-agents

macOS / Linux (curl)

curl -fsSL https://agents.salesteams.ai/install.sh | sh

Windows (Scoop)

scoop bucket add company-agents https://github.com/company-agents/scoop-bucket
scoop install company-agents

Debian/Ubuntu

curl -fsSL https://agents.salesteams.ai/apt/gpg.key | sudo apt-key add -
echo "deb https://agents.salesteams.ai/apt stable main" | sudo tee /etc/apt/sources.list.d/company-agents.list
sudo apt update && sudo apt install company-agents
Verify:
company-agents --version
# => company-agents 0.1.0

Pointing at an instance

The CLI talks to a running orchestrator over the REST API. By default it looks for:
http://localhost:3100
If your orchestrator is on a different host, set:
export COMPANY_AGENTS_URL=https://orchestrator.internal:3100
export COMPANY_AGENTS_TOKEN=ca_prod_...
Or use the login command once and the credentials are stored at ~/.company-agents/cli/credentials:
company-agents login
The login flow prompts for a URL and a token, tests the connection, and writes the credentials with 0600 permissions. For multi-environment workflows, use profiles:
company-agents login --profile staging
company-agents --profile staging company list

Command groups

The CLI is organized into two top-level groups:
  • Setup commands — one-time install, login, key generation, instance creation, template installation. See Setup commands.
  • Control plane commands — everyday operations: create companies, hire agents, run workflows, inspect tasks, watch logs, manage secrets. See Control plane commands.
A few top-level conveniences that do not fit either group:
CommandPurpose
company-agentsOpens the dashboard in the browser
company-agents --versionPrints the CLI version
company-agents doctorRuns a health check against your setup
company-agents help <command>Detailed help for any command

Global flags

Every command accepts:
FlagPurpose
--profile <name>Use a named profile instead of the default
--url <url>Override the orchestrator URL
--token <token>Override the token
--output <format>table (default), json, yaml, jsonl
--quietSuppress non-essential output
--verboseVerbose diagnostic output
--no-colorDisable color and formatting
--helpShow command help

Output formats

The default table output is for humans. For scripting, prefer json:
company-agents task list --output json | jq '.data[] | select(.status == "running")'
jsonl is useful for streaming (tail-style) output:
company-agents activity watch --output jsonl | grep approval

Exit codes

  • 0 — success
  • 1 — generic error
  • 2 — bad arguments or usage
  • 3 — authentication or permission denied
  • 4 — not found
  • 5 — conflict (e.g., slug in use)
  • 6 — rate limited
  • 7 — timeout
  • 8 — budget or policy blocked
  • 9 — orchestrator unreachable
For CI and automation, always check the exit code; do not parse stderr.

Config file

The CLI reads an optional config file at ~/.company-agents/cli/config.yaml:
default_profile: dev

profiles:
  dev:
    url: http://localhost:3100
    token_path: ~/.company-agents/cli/credentials
  staging:
    url: https://staging.example.com:3100
    token_env: CA_STAGING_TOKEN
  prod:
    url: https://prod.example.com:3100
    token_env: CA_PROD_TOKEN

defaults:
  output: table
  color: auto
Anything you can set on the command line can be set in the config file. Command-line flags win over config file values, which win over env vars, which win over defaults.

Shell completion

# bash
company-agents completion bash > /etc/bash_completion.d/company-agents

# zsh
company-agents completion zsh > ~/.zsh/completions/_company-agents

# fish
company-agents completion fish > ~/.config/fish/completions/company-agents.fish
Completions include dynamic candidates (company slugs, agent IDs, task IDs) pulled from the running orchestrator.

Next