Skip to content
Code Guide

10. Reference

What’s inside: Complete command reference, troubleshooting guides, and daily checklists.

I need to…Go to
Look up a command10.1 Commands Table
Find keyboard shortcut10.2 Keyboard Shortcuts
Configure settings10.3 Configuration Reference
Fix an error10.4 Troubleshooting
Quick daily reference10.5 Cheatsheet
Set up workflow10.6 Daily Workflow
Copy ready-to-use templatesexamples/ directory — Commands, hooks, agents

Usage tip: Bookmark this section — you’ll reference it often.


Purpose: Quick lookup for all Claude Code information

CommandActionCategory
/helpShow all available commandsNavigation
/clearClear conversation historySession
/compactSummarize and compress contextContext
/statusShow session info (context, cost)Info
/usageCheck rate limits and token allocationInfo
/statsView usage statistics with activity graphsInfo
/output-styleChange response format (concise/detailed/code)Display
/feedbackReport bugs or send feedback to AnthropicSupport
/chromeCheck Chrome connection, manage permissionsMode
/configView and modify global settingsConfig
/copyCopy last response to clipboard — interactive picker to select specific code blocks, or “Always copy full response” option (v2.1.59+)Session
/debugSystematic troubleshooting and error investigationDebug
/doctorRun diagnostics and troubleshooting checksDebug
/executeExit Plan ModeMode
/exitExit Claude CodeSession
/fastToggle fast mode (Opus 4.6, 2.5x faster, 6x price)Mode
/hooksInteractive hook configurationConfig
/initGenerate starter CLAUDE.md based on project structureConfig
/loginLog in to Claude accountAuth
/logoutLog out and re-authenticateAuth
/loop [interval] [prompt]Run a prompt or slash command on a recurring interval (e.g. /loop 5m check the deploy) — v2.1.71+Automation
/mcpManage Model Context Protocol serversConfig
/memoryView and edit auto-memory (context Claude automatically saved across sessions via MEMORY.md) — v2.1.59+Config
/mobileShow App Store and Google Play download linksInfo
/modelChange model (with left/right arrows for effort slider)Mode
/permissionsConfigure permission allowlistsConfig
/planEnter Plan ModeMode
/pluginBrowse and install Claude Code pluginsConfig
/remote-control (/rc)Start remote control session (Pro/Max only)Mode
/renameGive current session a descriptive nameSession
/resumeResume a previous session (from within a session)Session
/rewindOpen rewind menu to undo recent changesEdit
/sandboxEnable OS-level isolationConfig
Ctrl+DExit Claude CodeSession
ActionShortcut
Run shell command!command
Reference file@filename
Cancel operationCtrl+C
Search historyCtrl+R
Dismiss suggestionEsc
ShortcutAction
EnterSend message
Shift+EnterNew line in message
Ctrl+CCancel current operation
Ctrl+DExit Claude Code
Ctrl+RSearch command history
Ctrl+LClear screen (keeps context)
Ctrl+BRun command in background
EscStop Claude mid-action (context preserved)
Esc×2 (double-tap)Open rewind menu (same as /rewind)
ShortcutAction
Ctrl+AJump to beginning of line
Ctrl+EJump to end of line
Ctrl+WDelete previous word
Ctrl+GOpen plan in external text editor for editing
TabAutocomplete file paths
/ Navigate command history
ShortcutAction
Alt+T (Option+T on macOS)Toggle thinking mode on/off
Ctrl+OView thinking blocks
ShortcutAction
Space (hold)Push-to-talk — hold to speak, release to send (default binding)

Rebinding: The voice:pushToTalk binding is configurable in ~/.claude/keybindings.json (v2.1.71+). Add a custom binding if Space conflicts with your workflow:

{
"voice:pushToTalk": "ctrl+space"
}

Toggle voice on/off with /voice. The push-to-talk binding only activates when voice mode is active.

ShortcutAction
Shift+DownCycle through active teammates (in-process mode)
Ctrl+TToggle task list visibility
EnterView selected teammate’s session
EscapeInterrupt current turn, return to prompt
FlagsPurposeExample
-c -p "msg"Resume session + single promptclaude -c -p "run tests"
-r <id> -pResume specific session + promptclaude -r abc123 -p "check status"
-p -pNon-interactive automationclaude -p -p "lint fix" < errors.txt

Note: Combine resume flags with -p for scripting and CI/CD workflows.

LocationScopeCommitted
~/.claude/CLAUDE.mdAll projects (global)N/A
/project/CLAUDE.mdThis project (shared)✅ Yes
/project/CLAUDE.local.mdThis project (local overrides)❌ No (.gitignored)
/project/.claude/CLAUDE.mdPersonal project config❌ No
Parent/child directoriesAuto-loaded in monoreposDepends on location
FilePurposeCommitted
settings.jsonHook configuration✅ Yes
settings.local.jsonPermission overrides❌ No
PatternMatches
Bash(git *)Any git command
Bash(npm test)Exactly npm test
EditAll file edits
WriteAll file writes
WebSearchWeb search
mcp__serena__*All Serena tools
Read(file_path:*.env*)Block reading any .env* file path
Edit(file_path:*.pem)Block editing .pem certificates
Bash(command:*rm -rf*)Block destructive bash commands

Complete reference for all Claude Code command-line flags.

FlagDescriptionExample
-p, --printPrint response and exit (non-interactive)claude -p "analyze app.ts"
--output-formatOutput format (text/json/stream-json)claude --output-format json
--json-schemaJSON Schema for structured output validationclaude --json-schema '{"type":"object","properties":{"name":{"type":"string"}}}'
--input-formatInput format (text/stream-json)claude --input-format stream-json
--replay-user-messagesRe-emit user messages in streamclaude --replay-user-messages
--allowedToolsWhitelist specific toolsclaude --allowedTools "Edit,Read,Bash(git *)"
--disallowedToolsBlacklist specific toolsclaude --disallowedTools "WebFetch"
--mcp-configLoad MCP servers from JSON fileclaude --mcp-config ./mcp.json
--strict-mcp-configOnly use MCP servers from configclaude --strict-mcp-config
--plugin-dirLoad plugins from directory (repeatable)claude --plugin-dir ~/.claude/plugins
--append-system-promptAdd to system promptclaude --append-system-prompt "Use TypeScript"
--permission-modePermission mode (default/acceptEdits/plan/dontAsk/bypassPermissions)claude --permission-mode plan
--modelModel selectionclaude --model sonnet
--max-budget-usdMaximum API spend limit (with --print only)claude -p "analyze" --max-budget-usd 5.00
--toolsEnable specific tools for the sessionclaude --tools "Edit,Read,Bash"
--agentSpecify agent for sessionclaude --agent security-reviewer
--system-promptOverride system prompt entirelyclaude --system-prompt "You are a reviewer"
--add-dirAllow tool access to additional directoriesclaude --add-dir ../shared ../utils
--worktree / -wRun in isolated git worktreeclaude --worktree
--continueContinue last conversation (in current directory)claude --continue
-r, --resumeResume session by ID or show pickerclaude --resume abc123
--dangerously-skip-permissionsSkip all permission promptsclaude --dangerously-skip-permissions
--debugEnable debug mode (supports categories: "api,mcp")claude --debug
--verboseVerbose outputclaude --verbose
--versionShow versionclaude --version

Note: This table covers the most commonly used flags. The full CLI reference (~45 flags) is available at docs.anthropic.com.

Common Combinations:

Terminal window
# CI/CD mode - non-interactive with auto-accept
claude -p "fix linting errors" --dangerously-skip-permissions
# JSON output for scripting
claude -p "analyze code quality" --output-format json
# Economic analysis with Haiku
claude -p "review this file" --model haiku
# Allow access to a directory outside CWD
claude --add-dir ./src/components
# Plan mode for safety
claude --permission-mode plan
# Multi-directory project
claude --add-dir ../shared-lib ../utils ../config

Safety Guidelines:

FlagRisk LevelUse When
--dangerously-skip-permissions🔴 HighOnly in CI/CD, never on production
--allowedTools🟢 SafeRestricting tool access
--disallowedTools🟢 SafeBlocking specific tools
--permission-mode plan🟢 SafeRead-only exploration
--debug🟡 MediumTroubleshooting (verbose logs)

Interactive Troubleshooting: Use the /diagnose command for guided, interactive problem-solving. It auto-scans your environment and provides targeted solutions. See examples/commands/diagnose.md.

Use this symptom-based guide for rapid issue identification and resolution:

SymptomLikely CauseQuick FixPrevention
”Context too long” errorSession accumulated too much context/compact first, then /clear if neededCompact regularly at 70%
Slow/delayed responsesHigh context usage (>75%)Check /status, run /compactMonitor context with /status
”Rate limit exceeded”API throttling from frequent requestsWait 2 minutes, use --model haiku for simple tasks, or use cc-copilot-bridge for flat-rate accessBatch operations, use /compact, consider Copilot Pro+
Claude forgets instructionsContext overflow, CLAUDE.md lostCreate checkpoint, /clear, reload CLAUDE.mdKeep CLAUDE.md concise (<500 lines)
MCP server not connectingServer crashed or config errorclaude mcp list, check paths, restart serverTest servers after config changes
Permission prompts every timeTool not in allowedToolsAdd pattern to settings.json allowedToolsUse wildcards: Bash(git *)
Changes not taking effectCached configurationRestart Claude Code sessionUse /exit before config changes
Session won’t resumeCorrupted session fileStart fresh with /clearExit cleanly with /exit or Ctrl+D

Quick Diagnosis Flow:

  1. Check context: /status → If >70%, run /compact
  2. Check connectivity: Try simple command → If fails, check network
  3. Check configuration: claude mcp list → Verify MCP servers
  4. Check permissions: Review error message → Add to allowedTools if needed
  5. Still failing: /doctor → Run diagnostics and verify system health
SymptomCauseSolution
”Context too long”Used 100% context/clear or /compact
Slow responsesHigh context usage/compact
”Permission denied”Security settingsCheck settings.local.json
Hook not runningRegistration errorCheck settings.json matcher
MCP tool not foundServer not runningCheck mcp.json config
Agent not foundFile namingCheck .claude/agents/
Command not foundPath errorCheck .claude/commands/
Context LevelRecommended Action
0-50%Continue normally
50-75%Be more specific in queries
75-90%Use /compact
90%+Use /clear

“Tool execution failed”

  • Check tool permissions in settings.local.json
  • Verify command syntax
  • Check for missing dependencies

“Agent not available”

  • Verify agent file exists in .claude/agents/
  • Check YAML frontmatter syntax
  • Restart Claude Code session

“Hook blocked operation”

  • Check hook exit code (2 = blocked)
  • Review hook error message
  • Adjust hook rules if needed

Common MCP Errors and Solutions

API Error 400: "tools.11.custom.name: String should match pattern '^[a-zA-Z0-9_-]{1,64}'"

Cause: MCP server name contains invalid characters.

Solution:

  • Server names must only contain: letters, numbers, underscores, hyphens
  • Maximum 64 characters
  • No special characters or spaces

Example:

Terminal window
# ❌ Wrong
claude mcp add my-server@v1 -- npx server
# ✅ Correct
claude mcp add my-server-v1 -- npx server
MCP server 'my-server' not found

Cause: Server not properly registered or wrong scope.

Solution:

  1. Check scope settings (local/user/project)
    Terminal window
    claude mcp list # Verify server is listed
  2. Ensure you’re in the correct directory for local scope
  3. Restart Claude Code session
  4. Re-add server if needed:
    Terminal window
    claude mcp add my-server -s user -- npx @my/server
Error: Cannot find module 'C:UsersusernameDocuments'

Cause: Backslashes in Windows paths not properly escaped.

Solution:

Terminal window
# ❌ Wrong
claude mcp add fs -- npx -y @modelcontextprotocol/server-filesystem C:\Users\username\Documents
# ✅ Correct - Use forward slashes
claude mcp add fs -- npx -y @modelcontextprotocol/server-filesystem C:/Users/username/Documents
# ✅ Correct - Escape backslashes
claude mcp add fs -- npx -y @modelcontextprotocol/server-filesystem "C:\\Users\\username\\Documents"

Enable Debug Mode:

Terminal window
# Debug all MCP connections
claude --mcp-debug
# View MCP status inside Claude Code
/mcp

View Log Files:

Terminal window
# macOS
tail -f ~/Library/Logs/Claude/mcp*.log
# Linux
tail -f ~/.local/share/claude/logs/mcp*.log
# Windows (PowerShell)
Get-Content "$env:APPDATA\Claude\logs\mcp*.log" -Wait -Tail 50

Manual Server Test:

Terminal window
# Test if server works standalone
npx -y @modelcontextprotocol/server-filesystem ~/Documents
# Expected: Server should start and output JSON-RPC messages
# If it crashes immediately, check server logs

Quick Diagnostic Commands:

Terminal window
# List all configured servers
claude mcp list
# Test specific server
claude --mcp-debug -p "List available tools"
# Remove and re-add server
claude mcp remove my-server
claude mcp add my-server -s user -- npx @my/server

Connection Failed: Common Causes

ErrorCauseSolution
ECONNREFUSEDServer not runningCheck mcp.json command is correct
Timeout after 30sSlow initializationIncrease timeout or check server logs
Module not foundMissing dependenciesRun npm install in server directory
Permission deniedFile accessCheck file permissions on server executable
ENOENTServer binary not foundVerify npx/npm is in PATH
Invalid JSONServer output malformedCheck server version compatibility

Serena MCP specific issues:

Terminal window
# Index not found
serena list-memories
# If empty, re-index:
# In your project, ask Claude: "Index this project with Serena"
# Session not persisting
# Check mcp.json has correct data directory:
{
"mcpServers": {
"serena": {
"command": "npx",
"args": ["-y", "@serenaai/serena-mcp"],
"env": {
"SERENA_DATA_DIR": "/absolute/path/to/.serena"
}
}
}
}

Context7 MCP issues:

Terminal window
# Documentation not found
# Ensure you're searching for official libraries:
# ✅ "React useState documentation"
# ❌ "my-custom-lib documentation" (not in Context7)
# Slow lookups
# Context7 fetches from official docs - network dependent
# Check your internet connection

Sequential Thinking MCP issues:

Terminal window
# "Sequential not responding"
# Sequential uses significant compute - expect 10-30s responses
# Not an error, just be patient
# Quality seems off
# Sequential works best with specific, well-defined problems
# ✅ "Debug why user authentication fails on mobile"
# ❌ "Make the app better"

Pattern matching problems:

// ❌ Wrong - too specific
{
"allowedTools": ["Bash(npm test)"]
}
// This ONLY allows exactly "npm test"
// ✅ Right - use wildcards
{
"allowedTools": ["Bash(npm *)"]
}
// This allows any npm command

Common permission patterns:

{
"allowedTools": [
"Bash(git *)", // All git commands
"Bash(npm *)", // All npm commands
"Bash(pytest *)", // All pytest commands
"Edit", // All file edits
"Write", // All file writes
"Read", // All file reads
"mcp__serena__*", // All Serena tools
"mcp__context7__*", // All Context7 tools
"Task" // Allow agent delegation
]
}

Claude stops responding mid-task:

Possible causes:

  1. Network interruption - Check your internet connection
  2. API rate limit - Wait 1-2 minutes and retry
  3. Context exhausted - Use /compact or /clear
  4. Long-running operation - Some MCP operations take 30s+

Workaround for long operations:

Terminal window
# Instead of:
"Analyze all 500 files in the codebase"
# Break into chunks:
"Analyze files in /src/components/ first"
"Now analyze /src/utils/"
"Finally analyze /src/services/"

Windows-specific problems:

Terminal window
# npm global install fails
# Run PowerShell as Administrator
npm install -g @anthropic-ai/claude-code
# PATH not updated
# Manually add to PATH:
$env:Path += ";$env:APPDATA\npm"
# Permission errors
# Check antivirus isn't blocking Node.js

macOS-specific problems:

Terminal window
# "Command not found" after install
# Check shell config loaded:
source ~/.zshrc # or ~/.bashrc
# Permission denied on /usr/local
# Don't use sudo with npm
# Fix permissions:
sudo chown -R $(whoami) /usr/local
# curl install blocked
# Check firewall/VPN settings

Linux-specific problems:

Terminal window
# npm not found
# Install Node.js first:
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejs
# Global install permission issues
# Configure npm to use home directory:
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

Diagnostic scripts for instant troubleshooting. Get them from:

⚠️ Nuclear option for corrupted installations. Use when all else fails.

Get the scripts from:

When to use clean reinstall:

  • Mysterious errors that persist after normal troubleshooting
  • Corrupted configuration files
  • Breaking changes after Claude Code updates
  • Migration to new machine (export/import workflow)

What gets deleted:

  • ✓ Claude Code binary and npm packages
  • ✓ Downloaded models and cache
  • ✓ Local session data
  • ⚠️ Config file (optional - backed up by default)

What survives:

  • ✓ Project-level .claude/ folders
  • ✓ Project CLAUDE.md files
  • ✓ Custom agents, skills, commands, hooks (in projects)
  • ✓ MCP server configurations (in mcp.json)
╔══════════════════════════════════════════════════════════╗
║ CLAUDE CODE CHEATSHEET ║
╠══════════════════════════════════════════════════════════╣
║ ║
║ ESSENTIAL COMMANDS ║
║ ───────────────── ║
║ /help Show commands /clear Fresh start ║
║ /status Session info /compact Save context ║
║ /plan Safe mode /rewind Undo changes ║
║ /exit Quit Ctrl+C Cancel ║
║ ║
║ QUICK ACTIONS ║
║ ───────────── ║
║ !command Run shell @file Reference file ║
║ Ctrl+R Search ↑/↓ History ║
║ ║
║ CONTEXT MANAGEMENT ║
║ ────────────────── ║
║ 🟢 0-50% Work freely ║
║ 🟡 50-75% Be selective ║
║ 🔴 75-90% /compact now ║
║ ⚫ 90%+ /clear required ║
║ ║
║ PERMISSION MODES ║
║ ──────────────── ║
║ Default Ask before changes ║
║ Auto-accept Execute without asking ║
║ Plan Mode Read-only exploration ║
║ ║
║ CONFIGURATION ║
║ ───────────── ║
║ ~/.claude/CLAUDE.md Global settings ║
║ /project/CLAUDE.md Project settings ║
║ .claude/settings.json Hooks config ║
║ .claude/settings.local.json Permission overrides ║
║ ║
║ .claude/ FOLDER ║
║ ─────────────── ║
║ agents/ Custom agents commands/ Slash commands ║
║ hooks/ Event scripts rules/ Auto-load rules ║
║ skills/ Knowledge modules ║
║ ║
║ THINKING MODE (Opus 4.5/4.6: adaptive depth in 4.6) ║
║ ───────────────────────────────────────── ║
║ Alt+T Toggle on/off Current session ║
║ /config Global setting Persists across sessions ║
║ Note: "ultrathink" keywords are now cosmetic only ║
║ ║
║ MCP SERVERS ║
║ ─────────── ║
║ Serena Semantic code analysis ║
║ Context7 Library documentation ║
║ Sequential Structured reasoning ║
║ Postgres Database queries ║
║ Playwright Browser automation ║
║ ║
║ HOOKS (events) ║
║ ────────────── ║
║ PreToolUse Before tool (security) ║
║ PostToolUse After tool (format, log) ║
║ UserPromptSubmit On message (enrich context) ║
║ ║
║ WORKFLOW ║
║ ──────── ║
║ Describe → Analyze → Review → Accept/Reject → Verify ║
║ ║
║ BEST PRACTICE: Always read the diff before accepting! ║
║ ║
╚══════════════════════════════════════════════════════════╝
┌─────────────────────────────────────────────────────────────┐
│ DAILY WORKFLOW │
├─────────────────────────────────────────────────────────────┤
│ │
│ MORNING (Setup) │
│ ─────────────── │
│ □ Git pull latest changes │
│ □ Review context with /status │
│ □ Load project memory (/sc:load if using Serena) │
│ □ Review yesterday's progress │
│ │
│ WORK SESSION │
│ ──────────── │
│ □ Define task clearly before starting │
│ □ Use TodoWrite for multi-step work │
│ □ Commit after each completed task │
│ □ /compact when context >70% │
│ □ Take breaks every 90 minutes │
│ │
│ END OF DAY │
│ ────────── │
│ □ Commit all work in progress │
│ □ Save session (/sc:save) │
│ □ Note blockers or next steps │
│ □ Push to remote │
│ │
└─────────────────────────────────────────────────────────────┘

Use this before sending complex requests:

□ WHAT: Clear deliverable described?
□ WHERE: File paths/locations specified?
□ HOW: Constraints/approach mentioned?
□ WHY: Context for decision-making?
□ VERIFY: Success criteria defined?

Example applying checklist:

❌ Vague: "Add user authentication"
✅ Complete:
"Add JWT authentication to the /api/login endpoint.
- WHERE: src/api/auth/login.ts
- HOW: Use jsonwebtoken library (already in deps),
bcrypt for password comparison
- CONSTRAINTS: Token expires in 24h, include userId and role
- VERIFY: Test with wrong password, expired token, invalid token"

💡 Production-Ready Examples: For complete, battle-tested templates including advanced commands (/pr, /release-notes, /sonarqube) and security hooks, see the examples/ directory. The templates below are minimal starting points.

---
name: your-agent-name
description: Use this agent when [specific trigger]
model: sonnet
tools: Read, Write, Edit, Bash, Grep, Glob
skills: []
---
# Agent Name
## Role Definition
You are an expert in [domain].
## Activation Triggers
Use this agent when:
- [Trigger 1]
- [Trigger 2]
## Methodology
1. [Step 1]
2. [Step 2]
3. [Step 3]
## Output Format
[Expected deliverables]
## Examples
[Concrete usage examples]
---
name: skill-name
description: Expert guidance for [domain]
allowed-tools: Read Grep Bash
---
# Skill Name
## Expertise Areas
- [Area 1]
- [Area 2]
## Methodology
1. [Step 1]
2. [Step 2]
## Checklists
- [ ] [Check 1]
- [ ] [Check 2]
## Examples
[Good and bad patterns]
# Command Name
## Purpose
[What this command does]
## Process
1. **Step 1**: [Instructions]
2. **Step 2**: [Instructions]
## Arguments
- $ARGUMENTS[0] (or $0): First argument - [How to handle]
- $ARGUMENTS[1] (or $1): Second argument - [How to handle]
## Output Format
[Expected output]
#!/bin/bash
INPUT=$(cat)
COMMAND=$(echo "$INPUT" | jq -r '.tool_input.command // ""')
# Block dangerous patterns
[[ "$COMMAND" =~ "dangerous-pattern" ]] && { echo "BLOCKED" >&2; exit 2; }
exit 0
#!/bin/bash
INPUT=$(cat)
FILE_PATH=$(echo "$INPUT" | jq -r '.tool_input.file_path // ""')
# Auto-format
[[ "$FILE_PATH" =~ \.(ts|tsx)$ ]] && npx prettier --write "$FILE_PATH" 2>/dev/null
exit 0
#!/bin/bash
CONTEXT="[Custom context here]"
cat << EOF
{"hookSpecificOutput":{"additionalContext":"$CONTEXT"}}
EOF
exit 0
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [{"type": "command", "command": ".claude/hooks/security.sh", "timeout": 5000}]
}
],
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [{"type": "command", "command": ".claude/hooks/format.sh"}]
}
],
"UserPromptSubmit": [
{
"matcher": "",
"hooks": [{"type": "command", "command": ".claude/hooks/context.sh"}]
}
]
}
}
{
"permissions": {
"allow": [
"Bash(git *)",
"Bash(npm test)",
"Bash(pnpm *)",
"Edit",
"Write"
],
"deny": [
"Bash(rm -rf *)",
"Bash(sudo *)"
],
"ask": [
"Bash(npm publish)",
"Bash(git push --force)"
]
}
}
# Project Name
## Tech Stack
- [Technology 1]
- [Technology 2]
## Code Conventions
- [Convention 1]
- [Convention 2]
## Architecture
- [Pattern 1]
- [Pattern 2]
## Commands
- `npm run dev` - Start development
- `npm test` - Run tests

Quick jump: Why Complementarity · Tool Matrix · Practical Workflows · Integration Patterns


Reading time: 10 minutes

Skill level: Intermediate

Goal: Chain Claude Code with the right AI tools for optimal workflows

TL;DR: Claude Code excels at contextual reasoning and multi-file implementation. Combine it with Perplexity (research), Gemini (images), Kimi (slides), and NotebookLM (synthesis) for a complete AI-powered development workflow.