What Claude Code is
Claude Code is an AI coding assistant that lives in the terminal — the text window developers type commands into. Instead of hunting for buttons you write what should happen in plain sentences; Claude reads the files, changes them, runs commands, and explains what it did.
Never worked in a terminal? — the terms in brief
- Terminal — the text window you type commands into instead of clicking icons. Depending on the system it is also called a console or command prompt.
- CLI — a program with no graphical interface that you drive by typing commands. Short for command line interface.
- Slash command — a shortcut starting with
/that triggers a particular action in Claude Code, such as/help. - OAuth — a sign-in method that logs you in through your browser without a password being stored anywhere.
- API key — a secret string a program uses to identify itself to a service. Here, the alternative to signing in through the browser.
- IDE — a code editor with a built-in toolbox, such as VS Code, IntelliJ IDEA or PyCharm. Short for integrated development environment.
None of that helps until it runs on your machine. This module takes the path in order: requirements, installing, signing in, terminal and editor — and at the end your first session.
What your machine needs
Supported are macOS 13.0+ , Windows 10 1809+ or Windows Server 2019+ , and on the Linux side Ubuntu 20.04+ , Debian 10+ and Alpine Linux 3.19+ . Add at least 4 GB of RAM , an x64 or ARM64 processor, and an internet connection; for a shell, Bash, Zsh, PowerShell or CMD will do.
You also need an Anthropic account on a suitable plan — Pro, Max, Team, or Enterprise. Free Claude.ai access does not include Claude Code. Alternatively it runs on an API key from the Console, or through a cloud provider.
On native Windows, Git for Windows is worth having: with it, Claude Code uses Git Bash for its Bash tool; without it, it reaches for PowerShell instead. It is not required.
Installing
The recommended route is the native installer — it keeps itself current in the background, so there is nothing further to look after.
On macOS and Linux, WSL included:
curl -fsSL https://claude.ai/install.sh | bash
On Windows in PowerShell:
irm https://claude.ai/install.ps1 | iex
On Windows in the command prompt:
curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd
A package manager works too, but then without automatic updates: brew install --cask claude-code for the stable channel, brew install --cask claude-code@latest for the current one, and on Windows winget install Anthropic.ClaudeCode .
Whether it worked is answered by:
claude --version
For a closer look, claude doctor inspects the installation, the MCP servers and your settings, and names whatever is off.
Which release channel you follow is set in /config : latest brings new features straight away, stable deliberately trails by about a week.
Signing in
The first claude opens your browser and signs you in to your Anthropic account over OAuth. Nothing else is needed.
If you prefer an API key, set it as an environment variable beforehand:
export ANTHROPIC_API_KEY=sk-ant-...
claude
Enterprise setups through a cloud provider each have their own variable:
- Amazon Bedrock —
CLAUDE_CODE_USE_BEDROCK=1 - Google Vertex AI —
CLAUDE_CODE_USE_VERTEX=1 - Microsoft Foundry —
CLAUDE_CODE_USE_FOUNDRY=1
Your credentials then live in the macOS keychain, or on Linux and Windows in ~/.claude/.credentials.json with file mode 0600 .
You can switch accounts at any time with /logout ; sign-in can also be triggered directly with claude auth login .
Setting up your terminal
Claude Code runs in any common terminal — Terminal.app, iTerm2, Windows Terminal, Alacritty, Kitty, Ghostty, WezTerm and others. No particular choice is required; only two knobs differ between terminals.
The first is notifications for when Claude finishes or needs something from you. Which route it takes is set by preferredNotifChannel : "auto" sends a desktop notification where the terminal allows it, "terminal_bell" rings the terminal bell instead, and "iterm2" , "iterm2_with_bell" , "kitty" and "ghostty" address that channel directly. "notifications_disabled" means silence.
If that is not enough, hook into the Notification hook and run a command of your own — a sound, a script, whatever you prefer.
The second is key bindings . Shift+Enter for a line break works in most terminals with no setup; in VS Code, Cursor, Devin Desktop, Alacritty and Zed you write the binding once with /terminal-setup .
Lastly the display: by default Claude Code takes the terminal’s alternate screen and shows the session fullscreen. If you would rather the conversation stayed in the normal scrollback — handy for screen readers, terminal multiplexers, or when you pipe the output — set CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1 before starting.
Between classic and flicker-free fullscreen rendering you switch mid-conversation with /tui ; the same choice is available permanently as the tui setting.
Editor extensions
Claude Code began as a pure terminal tool but is at home in the editor as well. The two are not exclusive: the CLI for longer stretches, the extension for a quick reach in between.
For VS Code there is an official extension with its own interface, visible diffs, and access to the files you have open. It installs from the editor’s extensions view.
In the JetBrains IDEs — IntelliJ IDEA, PyCharm, WebStorm and the rest — Claude Code runs in the integrated terminal.
The VS Code descendants Cursor , Devin Desktop (Windsurf until v2.1.162) and Kiro use the same extension; there you search the extensions view for “Claude Code” or install from Open VSX.
Alongside these there is a desktop app for macOS and Windows with visible diffs, a preview, and background sessions. On Linux the CLI remains the way.
Your first session
Change into a project directory and start:
cd my-project
claude
A prompt greets you. Just write into it what you want — ordinary sentences. You can paste an image straight in, a screenshot or a sketch of the task.
What files are in this project and what does it do?
Claude reads the files, gets its bearings, and answers. From there you ask it for changes, for a bug hunt, for tests, or for an explanation. Before it does anything consequential it asks — what it may do unasked is something you set yourself later.
That is enough to begin with. The next module brings the slash commands you actually steer a session with.