Skip to main content
Annie CLI is a terminal-native AI assistant for infrastructure observability. Ask natural language questions, pipe in kubectl output or logs, and get markdown-rendered answers — all from your terminal.

Installation

1

Download the Binary

Download the latest release for your platform from the Releases page:
# macOS (Apple Silicon)
curl -sL https://annie-cli.anyshift.io/releases/<version>/annie-<version>-darwin-arm64.tar.gz | tar xz
mv annie /usr/local/bin/

# macOS (Intel)
curl -sL https://annie-cli.anyshift.io/releases/<version>/annie-<version>-darwin-amd64.tar.gz | tar xz
mv annie /usr/local/bin/

# Linux (amd64)
curl -sL https://annie-cli.anyshift.io/releases/<version>/annie-<version>-linux-amd64.tar.gz | tar xz
sudo mv annie /usr/local/bin/

# Linux (arm64)
curl -sL https://annie-cli.anyshift.io/releases/<version>/annie-<version>-linux-arm64.tar.gz | tar xz
sudo mv annie /usr/local/bin/
Replace <version> with the desired version (e.g. 0.4.4).
On macOS, if the binary is quarantined, run: xattr -d com.apple.quarantine /usr/local/bin/annie
2

Authenticate

Annie ships with production defaults — no manual configuration needed. Just log in:
annie auth login
This opens your browser to complete authentication. Your default project is fetched automatically from the backend. If you have access to multiple projects, you’ll be prompted to select one.To switch projects later, use annie project switch <name>.
3

Start Asking

Launch the interactive TUI or ask a one-shot question:
# Interactive chat
annie

# One-shot query
annie ask "why is the checkout service slow?"

Interactive Chat

Launch annie with no arguments to enter the interactive TUI — a full-screen terminal chat showing the active project name in the banner, an animated thinking spinner, scrollable viewport, and markdown-rendered responses. Conversation context is maintained across the session, so you can ask follow-up questions naturally.

Slash Commands

CommandDescription
/helpShow available commands
/copyCopy last response to clipboard
/mouseToggle mouse tracking (disable for text selection)
/projectSwitch active project
/shareCopy conversation URL to clipboard
/export [path]Export conversation as timestamped markdown file (optionally specify a custom file path)
/clearClear screen (keeps session context)
/contextShow project, conversation ID, and piped context info
/alertsQuick prompt for active alerts
/servicesQuick prompt for monitored services
/jsonPrint last response as JSON
/quitExit

Keyboard Shortcuts

KeyAction
EnterSend message
Alt+EnterInsert newline (multi-line input)
Up/DownBrowse input history across sessions
Ctrl+LClear screen
Ctrl+UClear input before cursor
Page Up/DownScroll through conversation
Mouse wheelScroll viewport
Ctrl+CCancel in-progress request, or quit
Ctrl+DQuit
Input history is persisted across sessions so you can recall previous questions with the Up arrow.

One-Shot Queries

For scripting or quick questions, use annie ask:
# Ask a question directly
annie ask "why is checkout slow?"

# Add context
annie ask "what changed?" --context env=prod --context team=payments

# Verbose mode shows the reasoning chain
annie ask "show me active alerts" --verbose

# JSON output for scripting
annie ask "list services" --output json | jq '.answer'

# Follow-up mode (interactive REPL after initial answer)
annie ask "what's failing?" --follow

# Override project for a single query (name or UUID, does not change default)
annie ask --project "Production - US East" "list s3 buckets"

# Custom timeout (default: 15m)
annie ask "list all ec2 instances" --timeout 20m

Pipe Anything

Annie reads piped stdin automatically — feed it logs, events, or any text for instant analysis:
kubectl get events -A | annie ask "anything unusual?"
kubectl logs -n prod -l app=backend --tail=200 | annie
cat error.log | annie ask "what's the root cause?"
When both stdin and stdout are pipes, Annie falls back to one-shot mode for scripting.

Use from AI Coding Agents

Annie works as a bridge between AI coding agents and your infrastructure. For example, from inside Claude Code:
> Use the annie cli to determine how many ec2 instances are in <Anyshift Project Name>
Claude Code will run annie ask on your behalf, interpret the response, and incorporate the infrastructure context into your development workflow — no context-switching required.

Project Management

Annie inherits the active project from the backend. You can discover and switch projects directly from the terminal:
# List all projects (active project marked with *)
annie project list

# Show current project name and ID
annie project current

# Switch by name (case-insensitive, partial match)
annie project switch "Production - US East"
In the interactive TUI, use the /project slash command for an interactive project selector.

Authentication

# Browser login (default)
annie auth login

# Check status
annie auth status

# Logout
annie auth logout
Tokens are stored locally in ~/.annie/auth.json with 0600 permissions and auto-refresh when expiring.

Configuration

Annie works out of the box with sensible defaults. All settings can be overridden via ~/.annie/config.yaml or ANNIE_ prefixed environment variables:
annie config set <key> <value>
annie config get <key>
annie config list
KeyDescription
api_urlAnyshift backend API URL
platform_urlAnyshift web app URL (for custom deployments)
project_idAnyshift project ID
show_bannerShow ASCII art banner on launch (default: true)
telemetryEnable anonymous usage telemetry (default: true)

Privacy

  • Anonymous usage telemetry is on by default and can be disabled with annie config set telemetry false or ANNIE_TELEMETRY=off
  • The NO_COLOR environment variable is respected for accessibility

Get Started