# Amp

The frontier coding agent for your terminal and editor, with multi-model modes, threads, subagents, and the Oracle.

Schema: 1.0 · Data: ee5de863c30bdbe4fe7dd3e07c7e22ea9bf4ab2248dbc7c35cdbf60bc28be1db

## Configuration

### MCP

Status: supported

MCP servers configured under amp.mcpServers in settings, added via `amp mcp add`, or bundled inside skills via mcp.json (the recommended approach to keep the tool list clean).

- global: `~/.config/amp/settings.json` (json) — key: amp.mcpServers
- project: `.amp/settings.json` (json) — key: amp.mcpServers — Workspace servers require explicit user approval before running.
- project: `.agents/skills/<name>/mcp.json` (json) — Skill-bundled servers; tools are hidden until the skill is loaded.
- `command`: string — Command to run a local (stdio) server.
- `args`: string[] — Arguments passed to the command.
- `env`: record<string, string> — Environment variables for local servers. Supports ${VAR_NAME} interpolation in settings files.
- `url`: string — Endpoint of a remote server.
- `headers`: record<string, string> — HTTP headers sent with requests to remote servers (e.g. Authorization).
- `includeTools`: string[] — Tool names or glob patterns to filter which tools are exposed (recommended, skill-bundled mcp.json).
- transports: stdio, sse, http
- auth: oauth, headers, env
- Tools: supported
- Amp recommends bundling MCP servers in skills via an mcp.json file in the skill directory; servers start with Amp but tools stay hidden until the skill loads.
- Precedence when a server name appears in multiple places: --mcp-config CLI flag > amp.mcpServers in user/workspace settings > skill-bundled servers.
- MCP servers in workspace settings (.amp/settings.json) require explicit approval (`amp mcp approve <name>`) before they can run; global settings and --mcp-config do not.
- OAuth tokens are stored in ~/.amp/oauth/ and refreshed automatically; manage with `amp mcp oauth login|logout`.
- amp.mcpPermissions rules can allow or reject servers matching command/args or url patterns.

amp.mcpServers in settings.json
```json
"amp.mcpServers": {
  "playwright": {
    "command": "npx",
    "args": ["-y", "@playwright/mcp@latest", "--headless"]
  },
  "linear": {
    "url": "https://mcp.linear.app/sse"
  },
  "sourcegraph": {
    "url": "${SRC_ENDPOINT}/.api/mcp/v1",
    "headers": { "Authorization": "token ${SRC_ACCESS_TOKEN}" }
  }
}

```


Skill-bundled mcp.json
```json
{
  "chrome-devtools": {
    "command": "npx",
    "args": ["-y", "chrome-devtools-mcp@latest"],
    "includeTools": ["navigate_*", "take_screenshot", "click", "fill*"]
  }
}

```

Source: https://ampcode.com/manual#mcp
Checked: 2026-07-12

### Skills

Status: supported

SKILL.md skills (Agent Skills format) that the agent invokes automatically. Skills can bundle resources and MCP servers (mcp.json) in the skill directory.

- project: `.agents/skills/<name>/SKILL.md` (markdown) — Project skills, can be committed to git so the team shares them.
- global: `~/.config/agents/skills/<name>/SKILL.md` (markdown) — User-wide skills; ~/.agents/skills/ and ~/.config/amp/skills/ are also scanned.
- project: `.claude/skills/<name>/SKILL.md` (markdown) — Claude Code compatibility path (also ~/.claude/skills/); disable with amp.skills.disableClaudeCodeSkills.
- `name`: string (required) — Skill identifier. Must be unique; project skills override user-wide, both override built-ins.
- `description`: string (required) — What the skill does. Always visible to the model and determines when it invokes the skill.
- invocation: automatic
- User-invokable skills were removed; the model invokes skills based on name and description (see ampcode.com/news/neo).
- Skill precedence (first wins): ~/.config/agents/skills/, ~/.agents/skills/, ~/.config/amp/skills/, .agents/skills/, .claude/skills/, ~/.claude/skills/, then plugins, legacy toolbox directories, and built-in skills.
- name and description are always visible to the model; the SKILL.md body loads on demand when the skill is invoked.
- Skills can bundle MCP servers via an mcp.json file in the skill directory — Amp's recommended way to use MCP.
- amp.skills.path adds extra skill directories; amp.skills.disableClaudeCodeSkills disables loading from Claude Code directories.
- Amp ships a built-in building-skills skill that creates skills tailored to your codebase.

SKILL.md
```markdown
---
name: my-skill
description: A description of what this skill does
---

# My Skill Instructions

Detailed instructions for the agent...

```

Source: https://ampcode.com/manual#agent-skills
Checked: 2026-07-12

### Rules

Status: supported

AGENTS.md guidance files at project, user, and system scope, with @-file mentions and glob-scoped granular guidance in mentioned files.

- project: `AGENTS.md` (markdown) — In cwd, parent dirs, and subtrees. Architecture, build/test commands, conventions.
- global: `~/.config/amp/AGENTS.md` (markdown) — Personal preferences and device-specific guidance; ~/.config/AGENTS.md also works.
- enterprise: `/etc/ampcode/AGENTS.md` (markdown) — System-wide/organization-managed guidance (macOS: /Library/Application Support/ampcode/AGENTS.md, Windows: %ProgramData%\ampcode\AGENTS.md).
- `globs`: string[] — YAML frontmatter in an @-mentioned file; the file is only included once Amp has read a file matching any glob. Globs are implicitly prefixed with **/ unless they start with ./ or ../.
- invocation: @file-mention
- AGENTS.md in the cwd (or editor workspace roots) and parent directories up to $HOME are always included; subtree AGENTS.md files are included when the agent reads a file in that subtree.
- If no AGENTS.md exists in a directory, AGENT.md or CLAUDE.md is used instead.
- @-mention other files inside agent files to include them as context; relative, absolute, ~/ paths and glob patterns are supported.
- Mentioned files can declare `globs` in YAML frontmatter so they are only included after Amp reads a matching file (granular, language- or area-specific guidance).
- Run agents-md list from the command palette to see the agent files in use; Amp offers to generate an AGENTS.md if none exists.

Glob-scoped guidance file (docs/typescript-conventions.md)
```markdown
---
globs:
  - '**/*.ts'
  - '**/*.tsx'
---

Follow these TypeScript conventions:

- Never use the `any` type

```


@-mentions in AGENTS.md
```markdown
See @doc/style.md and @specs/**/*.md.

When making commits, see @doc/git-commit-instructions.md.

```

Source: https://ampcode.com/manual#agents-md
Checked: 2026-07-12

### Hooks

Status: supported

Lifecycle event handling via TypeScript plugins: amp.on(...) handlers can observe, approve, reject, or modify tool calls and agent turns.

- project: `.amp/plugins/*.ts` (typescript)
- global: `~/.config/amp/plugins/*.ts` (typescript) — System plugins applied across your own projects.
- events: session.start, agent.start, tool.call, tool.result, agent.end
- Amp has no shell-command hook config file; hooks are written as plugins — TypeScript files exporting a default function that receives the PluginAPI.
- tool.call handlers return allow, reject-and-continue, modify, or synthesize; agent.end handlers can return continue with a follow-up user message. There is no session.end event.
- The legacy permissions system (amp.permissions, amp.guardedFiles.allowlist, amp.dangerouslyAllowAll set to false) is now a built-in plugin activated when those settings are present.
- Plugins can also register tools (amp.registerTool), command-palette commands (amp.registerCommand), show UI, and classify with amp.ai.ask.
- Reload with `plugins: reload` from the command palette; inspect with `plugins: list`.

Gate tool calls with a plugin
```typescript
import type { PluginAPI } from '@ampcode/plugin'

export default function (amp: PluginAPI) {
  amp.on('tool.call', async (event, ctx) => {
    const confirmed = await ctx.ui.confirm({
      title: `Allow ${event.tool}?`,
      message: `Amp wants to call ${event.tool}.`,
      confirmButtonText: 'Allow',
    })
    if (confirmed) return { action: 'allow' }
    return { action: 'reject-and-continue', message: `The user rejected ${event.tool}.` }
  })
}

```

Source: https://ampcode.com/manual#plugins
Checked: 2026-07-12

### Commands

Status: deprecated

Custom slash commands (.agents/commands/) were removed in favor of skills; command-palette commands can still be added programmatically via the plugin API.

- project: `.agents/commands/<name>.md` (markdown) — Legacy location, removed. Migrate to .agents/skills/<name>/SKILL.md.
- global: `~/.config/amp/commands/<name>.md` (markdown) — Legacy location, removed. Migrate to ~/.config/agents/skills/<name>/SKILL.md.
- invocation: command palette (Ctrl+O)
- Custom commands in .agents/commands/ and ~/.config/amp/commands/ were two ways of doing the same thing as skills and have been removed; Amp's migration guide moves each command to a skill directory (.agents/skills/<name>/SKILL.md).
- Plugins can register command-palette actions with amp.registerCommand(...), including availability states (enabled/disabled/hidden).

Register a command via a plugin
```typescript
import type { PluginAPI } from '@ampcode/plugin'

export default function (amp: PluginAPI) {
  amp.registerCommand(
    'open-plugin-docs',
    {
      title: 'Open plugin docs',
      category: 'docs',
      description: 'Open the Amp Plugin API manual page.',
    },
    async (ctx) => {
      await ctx.system.open('https://ampcode.com/manual/plugin-api')
    },
  )
}

```

Source: https://ampcode.com/news/slashing-custom-commands
Checked: 2026-07-12

### Settings

Status: supported

JSON/JSONC settings with an amp. prefix at user, workspace, and enterprise-managed scope. Workspace settings override user settings (except keymaps).

- global: `~/.config/amp/settings.json` (json) — User settings (same path on macOS and Linux; %USERPROFILE%\.config\amp\settings.json on Windows).
- project: `.amp/settings.json` (json) — Workspace settings; nearest file searched upward from cwd to the repo root.
- enterprise: `/etc/ampcode/managed-settings.json` (json) — Managed policy settings (macOS: /Library/Application Support/ampcode/managed-settings.json, Windows: %ProgramData%\ampcode\managed-settings.json).
- `amp.mcpServers`: object — MCP servers that expose tools (see MCP surface).
- `amp.mcpPermissions`: array — Allow or reject MCP servers matching command/args or url patterns; first matching rule applies.
- `amp.tools.disable`: string[] — Disable tools by name; supports glob patterns and builtin:toolname to disable only the builtin variant.
- `amp.keymap`: object — Customize the CLI keymap; chords are space-separated keys. User entries override workspace entries.
- `amp.skills.path`: string — Additional skill directories, colon-separated (semicolon on Windows), ~ supported.
- `amp.skills.disableClaudeCodeSkills`: boolean — Disable loading skills from Claude Code directories. Default false.
- `amp.notifications.enabled`: boolean — Play notification sounds when the agent completes or is blocked. Default true.
- `amp.showCosts`: boolean — Show thread cost information in the CLI. Default true.
- `amp.git.commit.ampThread.enabled`: boolean — Add the Amp-Thread trailer to agent commits. Default true.
- `amp.git.commit.coauthor.enabled`: boolean — Add Amp as co-author in agent commits. Default true.
- `amp.defaultVisibility`: object — Default thread visibility per repository origin. Values: private, workspace, group
- `amp.remoteThreadCreation.enabled`: boolean — Let ampcode.com create new threads in this interactive TUI. Default false.
- `amp.updates.mode`: string — Update checking behavior. Default auto. Values: auto, warn, disabled
- `amp.fuzzy.alwaysIncludePaths`: string[] — Glob patterns always included in fuzzy file search even if gitignored.
- `amp.terminal.copyOnSelect`: boolean — Copy TUI selections to the clipboard automatically. Default true.
- `amp.thread.autoArchiveOnQuit`: boolean — Archive open CLI threads when quitting. Default false.
- Edit user settings with `amp config edit`, workspace settings with `amp config edit --workspace`; a custom file can be passed via --settings-file.
- .jsonc variants (settings.jsonc) are also read at both user and workspace scope.
- Workspace settings are found by searching upward from the cwd to the repository root.
- Enterprise managed settings override user and workspace settings and add amp.admin.compatibilityDate.
- Keymaps are the exception to precedence: amp.keymap entries in user settings override workspace entries.

User settings
```json
{
  "amp.mcpServers": {
    "playwright": {
      "command": "npx",
      "args": ["-y", "@playwright/mcp@latest", "--headless"]
    }
  },
  "amp.tools.disable": ["browser_*"],
  "amp.notifications.enabled": false
}

```

Source: https://ampcode.com/manual#configuration
Checked: 2026-07-12

## Search, browser & identification

Not researched. Unknown does not mean unsupported.
