Skip to main content
Software Engineering

Workshop 06: Mastering AI-Powered Coding Agents (2026 Edition)

26 Modules
Chapter 5: 2.b: Setting Up Terminal-Based AI Coding Agents19%

2.b: Setting Up Terminal-Based AI Coding Agents

This section covers installing and configuring the two leading terminal-based coding agents: Claude Code and OpenAI Codex CLI. Both operate directly in your terminal, reading your codebase and making changes autonomously.

Claude Code — Setup

Claude Code is Anthropic's agentic coding tool. It is a standalone terminal application (not a VS Code extension, though it can run inside the VS Code terminal panel). It is also available as a desktop app, web app, and IDE extensions.

Prerequisites

  • Node.js: Version 22 or newer (LTS recommended).
  • API Key: An Anthropic API key from console.anthropic.com.
  • Operating System:
    • macOS 12+
    • Ubuntu 20.04+ / Debian 10+
    • Windows 11 via WSL2
  • Git: Required for repository operations.

Installation

# Install Claude Code globally via npm
npm install -g @anthropic-ai/claude-code

# Verify installation
claude --version

Authentication

# Option 1: Set your API key as an environment variable (recommended)
export ANTHROPIC_API_KEY="your-api-key-here"

# Add to your shell config for persistence:
# For bash: echo 'export ANTHROPIC_API_KEY="your-key"' >> ~/.bashrc
# For zsh:  echo 'export ANTHROPIC_API_KEY="your-key"' >> ~/.zshrc
# For fish: set -Ux ANTHROPIC_API_KEY "your-key"

# Option 2: Claude Code will prompt you to authenticate on first run
# if no API key is found

First Run

# Navigate to your project
cd ~/projects/my-app

# Start Claude Code
claude

# Claude Code will:
# 1. Read CLAUDE.md if present (project configuration)
# 2. Scan the repository structure
# 3. Present an interactive prompt

# You can also provide a direct task:
claude "Add input validation to the user registration form"

# Or run in non-interactive mode for automation:
claude -p "List all TODO comments in the codebase"

Key Modes and Commands

# Interactive mode (default) — conversation with your codebase
claude

# One-shot mode — execute a single task and exit
claude -p "Explain the authentication flow in this project"

# Fast mode — uses Sonnet 4.6 for quicker, cheaper responses
# (toggle inside a session with /fast)

# Resume previous session
claude --resume

# Start with a specific model
claude --model claude-sonnet-4-6

Essential Slash Commands

Once inside a Claude Code session, these commands are available:

CommandPurpose
/fastToggle between Opus (thorough) and Sonnet (fast)
/compactCompress conversation to save context
/clearClear conversation history
/helpShow all available commands
/costShow token usage and cost for the session

Creating Your First CLAUDE.md

Claude Code reads a CLAUDE.md file at your project root for persistent instructions. Create one to guide the agent:

cat > CLAUDE.md << 'EOF'
# Project: My App

## Tech Stack
- Framework: React 18 + TypeScript 5
- Backend: Node.js + Express
- Database: PostgreSQL
- Testing: Vitest + Testing Library

## Conventions
- Use functional components with hooks
- Prefer named exports over default exports
- All new code must include unit tests
- Run `npm run lint` before committing

## Forbidden
- Do not modify files in src/generated/
- Do not add new npm dependencies without asking
- Never commit .env files
EOF

Setting Up MCP Servers (Optional)

MCP (Model Context Protocol) lets Claude Code connect to external tools. Configure servers in your project's .mcp.json:

{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres"],
      "env": {
        "DATABASE_URL": "postgresql://localhost:5432/mydb"
      }
    },
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_TOKEN": "${GITHUB_TOKEN}"
      }
    }
  }
}

With MCP configured, Claude Code can query your database, interact with GitHub, or use any other configured tool directly during a session.

OpenAI Codex CLI — Setup

The OpenAI Codex CLI is an open-source terminal-based coding agent. Its source code is available on GitHub (github.com/openai/codex).

Prerequisites

  • Node.js: Version 22 or newer (LTS recommended).
  • API Key: An OpenAI API key from platform.openai.com. Alternatively, keys from other supported providers (Anthropic, Azure, Ollama, etc.) can be used.
  • Operating System:
    • macOS 12+
    • Ubuntu 20.04+ / Debian 10+
    • Windows 11 via WSL2

Installation

# Install via npm
npm install -g @openai/codex

# Verify installation
codex --version

Authentication

# Set your OpenAI API key
export OPENAI_API_KEY="your-api-key-here"

# Or use a .env file in your project root:
echo 'OPENAI_API_KEY=your-api-key-here' > .env

# For other providers:
export ANTHROPIC_API_KEY="your-key"    # To use Claude models
export AZURE_API_KEY="your-key"         # For Azure OpenAI

First Run

# Navigate to your project
cd ~/projects/my-app

# Start interactive session
codex

# Or provide a direct prompt
codex "Explain the following function and suggest improvements"

# With a specific model
codex --model gpt-4o "Add comprehensive error handling to the API routes"

# With a specific approval mode
codex --approval-mode full-auto "Fix all ESLint warnings in src/"

Approval Modes

The Codex CLI offers three levels of autonomy:

ModeBehaviourWhen to Use
Suggest (default)Shows proposed changes for your approvalLearning, sensitive code
Auto EditAutomatically applies file changesRoutine refactoring
Full AutoReads, writes, and executes commands (sandboxed)Automated pipelines, trusted tasks
# Full auto with network-disabled, directory-sandboxed execution
codex --approval-mode full-auto "Add unit tests for the user module"

Multi-Provider Support

# Use Claude models via Codex CLI
codex --provider anthropic --model claude-sonnet-4-6 "Refactor this module"

# Use a local Ollama model
codex --provider ollama --model codellama "Explain this regex"

Creating Your First AGENTS.MD

Codex CLI reads AGENTS.MD files for project-specific instructions:

cat > AGENTS.MD << 'EOF'
# Project: My App

## Code Style
- Use Prettier for formatting: `npx prettier --write .`
- Variable names in camelCase
- JSDoc comments for all public functions

## Testing
- Run `npm test` before proposing changes
- All new features must include unit tests
- Mock external API calls using msw

## Forbidden Actions
- Do not commit to main branch directly
- Do not introduce new dependencies without approval
- Never disable linting or type-checking rules
EOF

Side-by-Side Comparison

AspectClaude CodeCodex CLI
Install commandnpm install -g @anthropic-ai/claude-codenpm install -g @openai/codex
Start commandclaudecodex
Config fileCLAUDE.mdAGENTS.MD
Default modelClaude Opus 4.8codex-mini-latest
Fast mode/fast (switches to Sonnet)--model o4-mini
Approval modesInteractive by defaultSuggest / Auto Edit / Full Auto
Tool integrationMCP serversLimited
Open sourceNoYes
HooksBuilt-in hooks systemVia shell scripts / CI
SubagentsBuilt-inNot supported
API key env varANTHROPIC_API_KEYOPENAI_API_KEY

Verifying Your Setup

Run these quick checks to confirm everything is working:

# Claude Code
claude -p "What files are in this directory? List them briefly."

# Codex CLI
codex "What files are in this directory? List them briefly."

Both commands should scan your current directory and produce a file listing, confirming that the agent can read your local filesystem.

Next Steps

With your terminal agents installed, the next section covers API key management and authentication best practices across all providers.


Next: 2.c: API Keys and Authentication