Claude Code is Anthropic’s command-line AI tool. It runs in your terminal, reads and understands codebases, and assists with development tasks. Not a web IDE, not a VS Code extension at its core, not a cloud service — a CLI tool that processes code locally on your machine.
Two modes of operation
Interactive mode — run claude and you get a conversational session. You send messages, Claude responds, you review, you send more. Multi-turn, back-and-forth, with the ability to review each action before the next. This is how most developers use Claude Code day-to-day.
Non-interactive mode — run claude -p "your prompt" and Claude processes the prompt, prints the output to stdout, and exits. One shot, no conversation, no waiting for input. This is the mode designed for CI/CD pipelines and automation scripts.
The -p flag (short for --print) is the only thing separating these two modes. There’s no --batch, --headless, --ci-mode, or CLAUDE_CI environment variable. Just -p.
What it can and can’t do
Claude Code works with any programming language and any project structure. It doesn’t require package.json, Cargo.toml, or any specific project configuration. It uses its built-in tools (Read, Grep, Glob, Edit, Write, Bash) to explore and understand whatever codebase you point it at.
It needs an internet connection — it communicates with the Claude API to process your prompts. But your code stays on your machine. It sends prompts and context to the API and receives responses. Code doesn’t get uploaded to some server for processing.
Interactive vs non-interactive: same capabilities
Both modes use the same model. The -p flag doesn’t switch to a lighter model for speed. Both modes have access to the same codebase context — -p doesn’t limit analysis to a single file. Both modes have the same tools available.
The only difference is the interaction pattern: multi-turn conversation vs single-prompt execution. Permission modes are controlled separately through --permission-mode or configuration, not by the -p flag.
CI/CD integration
For pipelines, claude -p "Analyze this PR for security issues" is the standard pattern. It processes the prompt, outputs results, and exits cleanly — exactly what automated systems need. No built-in subcommands like claude analyze --pr. No special CI flags. The general-purpose -p with a descriptive prompt handles all non-interactive use cases.
One-liner: Claude Code is a CLI tool with two modes — interactive (claude) for conversation and non-interactive (claude -p) for automation — both using the same model and capabilities on any language.