Amp CLI reference - Settings
Amp settings.json settings
Amp documents 52 settings keys, including $schema, amp.fuzzy.alwaysIncludePaths and amp.showCosts. These keys go in Amp's settings.json and the other config files it reads. Each row gives the docs' description, accepted values and an example where one is documented.
Last verified 9 official pagesFull Amp reference
| Key | Description | Example |
|---|---|---|
$schema | The JSON Schema URL used by your editor for validation, descriptions, and completions in settings files. string, e.g. https://ampcode.com/cli-settings.schema.json Docs: $schema | {
"$schema": "https://ampcode.com/cli-settings.schema.json",
"amp.showCosts": true
} |
amp.fuzzy.alwaysIncludePaths | Glob patterns for paths always included in fuzzy file search even if ignored by Git, useful for build output or generated files referenced with @ mentions. array of strings, default [] Docs: amp.fuzzy.alwaysIncludePaths | ["dist/**", "node_modules/@myorg/**"] |
amp.showCosts | Shows cost information for threads in the CLI while working. Workspace admins can also hide costs for all members. boolean, default true Docs: amp.showCosts | -no example |
amp.git.commit.ampThread.enabled | Adds the boolean, default true Docs: amp.git.commit.ampThread.enabled | -no example |
amp.git.commit.coauthor.enabled | Adds the boolean, default true Docs: amp.git.commit.coauthor.enabled | -no example |
amp.keymap | Customizes CLI keybindings. Configuring a command replaces its default; use an array to keep the old shortcut, or null to unbind. User keymap entries override workspace entries. object mapping command IDs to string | string[] | null, default {} Docs: amp.keymap | {
"amp.keymap": {
"mode.toggle": ["ctrl+s", "ctrl+j"],
"thread.copyURL": "<leader> u",
"thread.interrupt": ["esc esc", "ctrl+l"]
}
} |
mode.toggle | Keymap command ID shown in the amp.keymap example; bound to Ctrl+S by default per the keybindings page. string | string[] | null Docs: mode.toggle | "mode.toggle": ["ctrl+s", "ctrl+j"] |
thread.copyURL | Keymap command ID shown in the amp.keymap example for copying the thread URL. string | string[] | null Docs: thread.copyURL | "thread.copyURL": "<leader> u" |
thread.interrupt | Keymap command ID shown in the amp.keymap example for interrupting the agent (default Esc Esc). string | string[] | null Docs: thread.interrupt | "thread.interrupt": ["esc esc", "ctrl+l"] |
leader | Keymap entry that changes the <leader> key (default Ctrl+X). string Docs: leader | -no example |
command | Local (stdio) MCP server field: the command to run. Required for stdio servers in amp.mcpServers and skill mcp.json. string Docs: command | -no example |
args | Local MCP server field: the command arguments. string[] (optional) Docs: args | -no example |
env | Local MCP server field: environment variables for the server. object of strings (optional) Docs: env | -no example |
url | Remote MCP server field: the server endpoint. Required for HTTP servers. string Docs: url | -no example |
headers | Remote MCP server field: HTTP headers sent with requests. Can contain ${amp:id-token} for HTTPS servers in orbs. object of strings (optional) Docs: headers | "headers": { "Authorization": "token ${SRC_ACCESS_TOKEN}" } |
transport | HTTP MCP server field in the settings JSON Schema selecting the transport. http | sse | http-first Docs: transport | -no example |
oauth | HTTP MCP server field in the settings JSON Schema for OAuth client configuration. object: clientId (required), clientSecret, authUrl (required), tokenUrl (required), scopes (string[]), redirectUrl Docs: oauth | -no example |
includeTools | Common field for MCP servers defined in skills: tool names or glob patterns that choose which tools are exposed. Optional but recommended. string[] Docs: includeTools | "includeTools": ["navigate_*", "take_screenshot", "click", "fill*"] |
${amp:id-token} | Header placeholder that makes Amp send an Amp ID token to an HTTPS MCP server in an orb. Works only in headers of HTTPS servers without OAuth; outside an orb the server fails to connect. Docs: ${amp:id-token} | "headers": { "Authorization": "Bearer ${amp:id-token}" } |
amp.defaultVisibility | Defines default thread visibility per repository origin. object mapping origin to private | workspace | group Docs: amp.defaultVisibility | {"github.com/org/repo": "workspace"} |
amp.notifications.enabled | Plays notification sounds when the agent completes a task or is blocked waiting for input. Over SSH, or when AMP_FORCE_BEL is set, Amp sends a terminal bell instead. boolean, default true Docs: amp.notifications.enabled | -no example |
amp.remoteThreadCreation.enabled | Lets ampcode.com create new threads that open in the interactive TUI on this machine, in the directory where it was started. boolean, default false Docs: amp.remoteThreadCreation.enabled | {
"amp.remoteThreadCreation.enabled": true
} |
amp.runner.autoUpdate.enabled | Lets boolean, default true Docs: amp.runner.autoUpdate.enabled | -no example |
amp.runner.env.enabled | Lets boolean, default false Docs: amp.runner.env.enabled | -no example |
amp.skills.disableClaudeCodeSkills | Disables loading skills from Claude Code directories (.claude/skills/, ~/.claude/skills/, ~/.claude/plugins/cache/). boolean, default false Docs: amp.skills.disableClaudeCodeSkills | -no example |
amp.skills.disableGlobalAgentsSkills | Disables loading skills from ~/.config/agents/skills/ and ~/.agents/skills/. boolean, default false Docs: amp.skills.disableGlobalAgentsSkills | -no example |
amp.skills.path | Additional directories containing skills, colon-separated (semicolon on Windows). ~ expands to home; relative paths resolve against the workspace root. string Docs: amp.skills.path | ~/my-skills:/shared/team-skills |
amp.terminal.copyOnSelect | Copies transcript selections to the clipboard automatically. When false, press Ctrl+C to copy a selection. boolean, default true Docs: amp.terminal.copyOnSelect | -no example |
amp.terminal.detailsExpandedByDefault | Expands thinking and tool call details by default in the CLI transcript. boolean, default false Docs: amp.terminal.detailsExpandedByDefault | -no example |
amp.thread.autoArchiveOnQuit | Automatically archives the active thread and connected background threads when quitting Amp. boolean, default false Docs: amp.thread.autoArchiveOnQuit | -no example |
amp.tools.disable | Disables specific tools by name. Use builtin:toolname to disable only the built-in tool; * globs are supported. array of strings, default [] Docs: amp.tools.disable | -no example |
amp.mcpPermissions | Allows or blocks MCP servers that match a pattern; the first matching rule applies and unmatched servers are allowed. Match remote servers by url and local servers by command and args. array of {matches: object, action: allow | reject}, default [] Docs: amp.mcpPermissions | "amp.mcpPermissions": [
{ "matches": { "command": "*" }, "action": "reject" },
{ "matches": { "url": "*" }, "action": "reject" }
] |
amp.updates.mode | Controls update checking: warn shows notifications, disabled turns checks off (also disables runner auto-update), auto installs updates. AMP_SKIP_UPDATE_CHECK=1 overrides it. "auto" | "warn" | "disabled", default "auto" Docs: amp.updates.mode | -no example |
amp.admin.compatibilityDate | Managed-settings field giving the date used to determine which backward-compatibility migrations Amp must apply. Supported in managed-settings.json and the workspace document. string, YYYY-MM-DD Docs: amp.admin.compatibilityDate | 2024-01-15 |
amp.url | Setting named as not allowed in the workspace managed settings document because it could make the client unable to reach the server that provides the settings. Docs: amp.url | -no example |
amp.proxy | Setting named as not allowed in the workspace managed settings document because it could make the client unable to reach the settings server. Docs: amp.proxy | -no example |
amp.workspaces | Setting that is local to one machine and therefore cannot be set in the workspace managed settings document. Docs: amp.workspaces | -no example |
amp.mcpTrustedServers | Setting that is local to one machine and therefore cannot be set in the workspace managed settings document. Docs: amp.mcpTrustedServers | -no example |
name (SKILL.md frontmatter) | Skill name in SKILL.md YAML frontmatter. Amp uses the first skill with a given name; in hosted repositories it must match the directory name. string Docs: name (SKILL.md frontmatter) | ---
name: my-skill
description: A description of what this skill does
--- |
description (SKILL.md frontmatter) | Skill description the model sees and uses to decide when to load the skill. string Docs: description (SKILL.md frontmatter) | -no example |
mcpServers (SKILL.md frontmatter) | Defines MCP servers for a skill. If both mcpServers and a sibling mcp.json exist, Amp uses mcpServers. object of MCP server definitions Docs: mcpServers (SKILL.md frontmatter) | -no example |
builtin-tools (SKILL.md frontmatter) | In a plugin-bundled skill, lists the plugin's own tools so they stay hidden from the model until the skill is loaded. list of tool names Docs: builtin-tools (SKILL.md frontmatter) | -no example |
globs (mentioned guidance file frontmatter) | YAML front matter in an @-mentioned guidance file so it is included only after Amp reads a matching file. Globs are implicitly prefixed with **/ unless they start with ../ or ./. string[] Docs: globs (mentioned guidance file frontmatter) | ---
globs:
- '**/*.ts'
- '**/*.tsx'
--- |
services.<name>.command | .amp/services.yaml field: required shell command run through a login shell. A service with a portal must listen on $PORT. string Docs: services.<name>.command | command: pnpm dev -- --host 0.0.0.0 --port "$PORT" |
services.<name>.cwd | .amp/services.yaml field: working directory relative to the repository root. string, default repository root Docs: services.<name>.cwd | -no example |
services.<name>.port | .amp/services.yaml field: fixed local port. Omit to let Amp choose a free port that stays the same across restarts. integer 1 to 65535 Docs: services.<name>.port | -no example |
services.<name>.env | .amp/services.yaml field: string environment variables for the command; values can refer to another service's public URL. PORT, PUBLIC_URL, and AMP_THREAD_ID cannot be set. object of strings Docs: services.<name>.env | FRONTEND_URL: ${services.web.publicURL} |
services.<name>.health | .amp/services.yaml field: HTTP path Amp requests after the port opens; 2xx and 3xx mean ready. path string Docs: services.<name>.health | health: /healthz |
services.<name>.portal | .amp/services.yaml field: primary portal link. true means / with the service name; or a mapping with url, title, description. true | {url, title, description} Docs: services.<name>.portal | portal: true |
services.<name>.portals | .amp/services.yaml field: more portal links for the same service; each needs url and title, and folders can group links. list Docs: services.<name>.portals | -no example |
services.<name>.review | .amp/services.yaml field: whether Amp injects the portal review widget. boolean, default true Docs: services.<name>.review | review: false |
services.<name>.platforms | .amp/services.yaml field: optional nonempty list of platforms the service runs on; omit to run on all platforms. [linux] | [darwin] | [linux, darwin] Docs: services.<name>.platforms | platforms: [darwin] |
The rest of the Amp reference
FAQ
How many settings keys does Amp have?
The official Amp docs list 52 settings keys, including $schema, amp.fuzzy.alwaysIncludePaths and amp.showCosts. All of them are in the table above, in the docs' order.
What does $schema do in Amp?
The JSON Schema URL used by your editor for validation, descriptions, and completions in settings files. Values: string, e.g. https://ampcode.com/cli-settings.schema.json. Example: {
Where are Amp settings keys documented?
On 9 official docs pages at ampcode.com, last read on October 17, 2026. Every row in the table links the exact section it came from.
Sources
Last verified . Names and examples are copied verbatim from the 9 official pages below, and every row above links the exact section it came from.
- ampcode.com/docs/cli/settings22 items
- ampcode.com/docs/cli/keybindings5 items
- ampcode.com/docs/customize/skills8 items
- ampcode.com/docs/customize/mcp2 items
- ampcode.com/cli-settings.schema.json2 items
- ampcode.com/docs/cli/runners2 items
- ampcode.com/docs/customize/plugins1 item
- ampcode.com/docs/customize/agents-md1 item
- ampcode.com/docs/orbs/portals9 items
Newsletter
Know when your tools change
One email per week. New coding agent releases, the flags and commands they add, and what they mean for how you work.