extensions/cli/README.md
The Continue CLI (cn) is a customizable command line coding agent.
macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/continuedev/continue/main/extensions/cli/scripts/install.sh | bash
Windows (PowerShell):
irm https://raw.githubusercontent.com/continuedev/continue/main/extensions/cli/scripts/install.ps1 | iex
Or install with npm if you have Node.js 20+:
npm i -g @continuedev/cli
cn
Headless mode (-p flag) runs without an interactive terminal UI, making it perfect for:
# Basic usage
cn -p "Generate a conventional commit name for the current git changes."
# With piped input
echo "Review this code" | cn -p
# JSON output for scripting
cn -p "Analyze the code" --format json
# Silent mode (strips thinking tags)
cn -p "Write a README" --silent
TTY-less Environments: Headless mode is designed to work in environments without a terminal (TTY), such as when called from VSCode/IntelliJ extensions using terminal commands. The CLI will not attempt to read stdin or initialize the interactive UI when running in headless mode with a supplied prompt.
The CLI automatically saves your chat history for each terminal session. You can resume where you left off:
# Resume the last session in this terminal
cn --resume
# List recent sessions and choose one to resume
cn ls
# List sessions in JSON format (for scripting)
cn ls --json
-p: Run in headless mode (no TUI)--config <path>: Specify agent configuration path--resume: Resume the last session for this terminal<prompt>: Optional prompt to start withCONTINUE_CLI_DISABLE_COMMIT_SIGNATURE: Disable adding the Continue commit signature to generated commit messagesFORCE_NO_TTY: Force TTY-less mode, prevents stdin reading (useful for testing and automation)cn: Start an interactive chat sessioncn ls: List recent sessions with TUI selector to choose one to resumecn login: Authenticate with Continuecn logout: Sign out of current sessioncn remote: Launch a remote instancecn serve: Start HTTP server modecn ls)Shows recent sessions, limited by screen height to ensure it fits on your terminal.
--json: Output in JSON format for scripting (always shows 10 sessions)The CLI fully supports running in environments without a TTY (terminal):
# From Docker without TTY allocation
docker run --rm my-image cn -p "Generate docs"
# From CI/CD pipeline
cn -p "Review changes" --format json
# From VSCode/IntelliJ extension terminal tool
cn -p "Analyze code" --silent
The CLI automatically detects TTY-less environments and adjusts its behavior:
For more details, see spec/tty-less-support.md.