Claude Code, the agent harness

Claude Code is the program that makes Claude actually do things, not just talk about them. It's a terminal application. You run claude and you're in a live conversation where Claude can read files, run commands, install dependencies, hit APIs, open a browser, or use any MCP server you've connected. This page is about what Claude Code is, what it's made of, and why it's the default starting point if you want to build anything autonomous with Claude.

The simple explanation.

Claude the model is a brain in a jar, see What is autonomous AI. It can think, write, and plan, but on its own it can't touch anything outside the chat window. A harness is the program that gives the brain hands: it catches the model's requests to use tools, executes those requests, and hands back the results. Claude Code is Anthropic's official harness.

If you use Claude.ai on the web, that's ALSO a harness, a simpler one, aimed at end users. Claude Code is the developer/power-user version: more tools, more configuration, more automation, full access to your file system and terminal.

~ what Claude Code is made of ~

What ships inside the box.

Claude Code is one install that gives you a lot at once. Here's what you actually get:

Why this is the default starting point.

You could build your own agent harness from scratch. People do. But for almost everyone, Claude Code is the right starting place, for four reasons:

~ why Claude Code by default ~

Translation: you get all the power and none of the plumbing. Every update to Claude's tool-use behavior ships with Claude Code changes the same day. Every new MCP server works immediately. Every skill and hook you write is just a file you can share. If you need something weirder later, you can always graduate to a custom harness, but start here.

Install and first run, in 60 seconds.

# Install (requires Node.js)
npm install -g @anthropic-ai/claude-code

# Authenticate the first time
claude

# From then on, just run this from any project directory
claude

The first run prompts you to log in. After that, typing claude in any directory drops you into a session scoped to that directory. Read/Write/Edit work against that directory's files. Your hooks, skills, and settings are picked up automatically from .claude/ if present.

The rest of this section, in reading order.

  1. Settings, the settings.json model and what you can configure
  2. Permissions, the most important page here. How to set up allow/deny rules correctly.
  3. Hooks, running your own code on agent events
  4. Skills, packaged prompts and slash commands
  5. Memory, persistent state across sessions

When Claude Code is NOT the right choice.

Two legitimate reasons to not use Claude Code:

  1. You're embedding an agent inside a product end users interact with. Users don't have terminals. You need to wrap the agent in a web app, mobile app, or Slack bot. In this case, build a custom harness using the Anthropic SDK directly. Claude Code is for developer workflows; for user-facing products, you need more control over the UI.
  2. You're bridging multiple model providers for research or vendor-neutrality. Claude Code is Claude-specific. If you want one harness that can talk to GPT, Gemini, and Claude interchangeably (usually for evaluation research), build your own.

Everyone else: start with Claude Code.