Skip to main content

Overview

The Apollo CLI (apollo) brings your entire workspace to the terminal. Manage tasks, query releases, check project status, search the knowledge base, take notes, review flashcards, and chat with Apollo Brain — all without leaving your editor or terminal.
The CLI is designed for three audiences: developers who live in the terminal, scripts/CI that need structured output, and Claude Code as a skill for AI-assisted workflows.

Installation

npm install -g @apollo/cli
After installation, verify it works:
apollo --version

Quick Start

# 1. Authenticate
apollo login

# 2. See your tasks
apollo task mine

# 3. Mark a task as done
apollo task done "fix auth bug"

# 4. Search the knowledge base
apollo kb search "deployment" -p "Apollo"

# 5. Create a personal note
apollo note create -t "Meeting notes" --content "Key decisions: ..."

# 6. Check flashcards due for review
apollo flashcard due

# 7. Ask Apollo Brain a question
apollo ai "What tasks are blocked right now?"

# 8. Personal dashboard
apollo status

Authentication

The CLI uses a browser-based login flow (similar to gh auth login or aws sso login):
1

Start login

Run apollo login. The CLI starts a temporary local server on localhost:9876.
2

Browser opens

Your browser opens to apol.dev/cli-auth where you authenticate via your normal Apollo login.
3

Token stored

After authentication, the token is saved to ~/.apollo/config.json. The local server shuts down automatically.

Token Management

CommandDescription
apollo loginAuthenticate via browser
apollo logoutClear stored credentials
apollo whoamiShow current user and auth status

CI / Automation

For non-interactive environments (CI pipelines, Claude Code), set the APOLLO_TOKEN environment variable:
export APOLLO_TOKEN="your-supabase-jwt-token"
apollo task list --json
When APOLLO_TOKEN is set, the CLI skips all interactive prompts.

Global Flags

These flags work with every command:
--json          # Output raw JSON (for scripts and Claude Code)
--no-color      # Disable colored output

Output Modes

The CLI automatically adapts its output based on context:
ModeWhenBehavior
PrettyInteractive terminal (TTY)Colored tables, spinners, icons
PlainPiped output (no TTY)Clean text, no ANSI codes
JSON--json flagRaw structured data for parsing
Auto-detected via process.stdout.isTTY. You never need to configure this manually.

Fuzzy Name Resolution

Every command that accepts a resource reference supports multiple formats:
InputResolution
550e8400-...Direct UUID pass-through
"Fix authentication bug"Exact name match (case-insensitive)
"fix auth"Fuzzy match — resolves if single clear match
"deploy"Ambiguous — prompts you to pick from candidates
meSpecial: resolves to the authenticated user (for --assignee)
When a fuzzy match is ambiguous, the CLI shows candidates:
Multiple matches for "deploy":
  1. Deploy staging environment
  2. Deploy monitoring stack
  3. Deploy CLI to npm

Select [1-3]:
In --json mode, ambiguous matches return an error with candidates instead of prompting.

Configuration

All CLI state lives in ~/.apollo/:
~/.apollo/
├── config.json     # Auth tokens, default project, preferences
└── cache/          # Resolver cache (auto-managed)

Command Groups