CLI Overview
Use Cline CLI for interactive terminal sessions and automated headless workflows.
Prerequisites
- Cline CLI installed (install via
npm i -g cline) - Provider authenticated (
cline auth) — use the Cline Provider, ClinePass, or your own provider key (Authorization Guide)
Quick Start
# Interactive session
cline
# Run one task immediately
cline "refactor this module to use async/await"
# Structured output for scripts
cline --json "list TODO comments"Headless mode
Use headless mode for scripts/automation and processable output.
Headless is triggered when using flags like --json, when stdin is piped, or when output is redirected.
When headless activates
| Invocation | Reason |
|---|---|
cline --json "task" | JSON output mode |
cat file | cline "task" | stdin is piped |
cline "task" > output.txt | stdout is redirected |
# CI/script style execution
git diff | cline "review these changes"
# JSON for parsing: print only the final answer
cline --json "summarize this changelog" | jq -r 'select(.type == "run_result") | .text'See: Headless Mode
Autonomous execution
For fully unattended runs, use auto-approval:
cline --auto-approve true "run tests and fix failures"Mode selection also works in headless runs:
# plan-first
cline -p "design migration plan"
# act immediately (default)
cline "apply migration"Autonomous execution can modify files and run commands without further prompts. Use a clean branch and review results.
High-Value Commands
cline --help
cline <command> --help| Command | Purpose |
|---|---|
cline | Start interactive mode or run a prompt |
cline auth | Authenticate and set provider/model |
cline config | Show the current configuration |
cline mcp | Manage MCP servers |
cline doctor | Diagnose/fix configuration issues |
cline history | Show and manage task history |
cline schedule | Manage scheduled tasks |
cline hub | Manage local hub daemon |
cline kanban | Run the Kanban app |
Most-Used Global Flags
Source of truth: CLI Reference
| Flag | Purpose |
|---|---|
-p, --plan | Start in Plan mode |
--auto-approve <boolean> | Global tool auto-approval (true/false, default true) |
-m, --model <model> | Override model for this run |
-P, --provider <id> | Override provider for this run |
-c, --cwd <path> | Set working directory |
--config <dir> | Use config directory |
--data-dir <dir> | Use isolated local state |
--json | Output newline-delimited JSON messages |
--thinking <level> | Set reasoning effort: none|low|medium|high|xhigh. Bare --thinking uses medium. Without the flag, Cline uses the level you last chose with /model, or else the provider's default |
-t, --timeout <seconds> | Set task timeout |
Automation Patterns
Pipe context in
cat README.md | cline "summarize key setup steps"
git diff | cline "review for potential regressions"Chain tasks
git diff | cline "explain these changes" | cline "write a commit message"Restrict command execution
The CLI has no allow or deny list for shell commands. To block commands, use a PreToolUse hook that cancels run_commands calls you don't allow, like the .clineignore hook.
Include images in tasks
Mention an image file with @ and the CLI attaches it to the prompt:
cline "fix the UI shown in @./design-mockup.png"Set execution timeout
cline --timeout 600 "run full test suite"JSON Output Schema
When you give Cline a task with --json, each line is a JSON object with a type. Agent events arrive as agent_event lines, and a run_result line holds the final text when the run finishes. The CLI Reference describes the line types.
Next Steps
- CLI Reference
- ACP — use Cline as the coding agent in Zed, JetBrains IDEs, Neovim, and other ACP clients