Amp is an agentic coding tool built by Sourcegraph. It runs in VS Code (and compatible forks like Cursor, Windsurf, and VSCodium) and as a command-line tool. It’s also multiplayer — you can share threads and collaborate with your team.
Sign in to ampcode.com and follow the instructions for VS Code, Cursor, and Windsurf to install the extension and authenticate. You can also use the Install button at the bottom of the page for quick access to installation instructions for all platforms.
Install globally:
npm install -g @sourcegraph/amp
Run interactively:
amp
Pipe input directly:
echo "What is today's date?" | amp
Install globally:
pnpm add -g @sourcegraph/amp
Run interactively:
amp
Pipe input directly:
echo "What is today's date?" | amp
Install globally:
yarn global add @sourcegraph/amp
Run interactively:
amp
Pipe input directly:
echo "What is today's date?" | amp
Run interactively (will prompt for login on first run):
npx @sourcegraph/amp
You can start a new thread by sending the prompt via stdin:
echo "What is today's date?" | npx @sourcegraph/amp
For non-interactive environments (e.g. scripts, CI/CD pipelines), you’ll need to export your API key as an environment variable:
export AMP_API_KEY=your-api-key-here
Amp currently uses Claude Sonnet 4 for most tasks. For the best results, follow these guidelines:
AGENT.md
files to guide Amp on how to run your tests and build steps and to avoid common mistakes.The first prompt in the thread carries a lot of weight. It sets the direction for the rest of the conversation. We encourage you to be deliberate with it. That’s why we use Cmd/Ctrl+Enter to submit a message in Amp — it’s a reminder to put effort into a prompt.
Here are some examples of prompts we’ve used with Amp:
observeThreadGuidanceFiles
return Omit<ResolvedGuidanceFile, 'content'>[]
and remove that field from its return value, and update the tests. Note that it is omitted because this is used in places that do not need the file contents, and this saves on data transferred over the webview API.” (See Thread)<build command>
and fix all the errors”<local development server url>
to see this UI component. Then change it so that it looks more minimal. Frequently check your work by screenshotting the URL”git diff
— someone helped me build a debug tool to edit a Thread directly in JSON. Please analyze the code and see how it works and how it can be improved. […]” (See Thread)git diff --staged
and remove the debug statements someone added” (See Thread)psql
and rewire all the threads
in the databaser to my user (email starts with thorsten)” (See Thread)Also see Thorsten Ball’s How I Use Amp.
If you’re on a team, use Amp’s thread sharing to learn from each other.
Amp looks in AGENT.md
files for guidance on codebase structure, build/test commands, and conventions.
File | Examples |
---|---|
AGENT.md in cwd, parent dirs, & subtrees | Architecture, build/test commands, overview of internal APIs, review and release steps |
$HOME/.config/AGENT.md | Personal preferences, device-specific commands, and guidance that you're testing locally before committing to your repository |
Amp includes AGENT.md
files automatically:
AGENT.md
files in the current working directory (or editor workspace roots) and parent directories are always included.AGENT.md
files are included when the agent reads a file in the subtree.$HOME/.config/AGENT.md
is always included.In a large repository with multiple subprojects, we recommend keeping the top-level AGENT.md
general and creating more specific AGENT.md
files in subtrees for each subproject.
To see the agent files that Amp is using in the editor extension, hover the X% of 168k indicator in the reply area after you’ve sent the first message in a thread.
Amp offers to generate an AGENT.md
file for you if none exists. You can create or update any AGENT.md
files manually or by asking Amp (“Update AGENT.md based on what I told you in this thread”).
To include other files as context, @-mention them in agent files. For example:
See @doc/style.md and @rules/internal-api-conventions.md.
When making commits, see @doc/git-commit-instructions.md.
@~/some/path
are also supported.mv CLAUDE.md AGENT.md && ln -s AGENT.md CLAUDE.md
, and repeat for subtree CLAUDE.md
filesmv .cursorrules AGENT.md && ln -s AGENT.md .cursorrules
and then add @-mentions of each .cursor/rules/*.mdc
file to AGENT.md
. (Amp does not yet support selective inclusion of Cursor rules.)Amp supports image uploads, allowing you to share screenshots, diagrams, and visual references with the AI. Images can provide important context for debugging visual issues or understanding UI layouts.
In the editor extension, you can:
In the CLI, you can instruct Amp to take screenshots and read images from the file system by asking it to analyze specific image files by path.
If Extended Thinking is enabled (it is by default), Amp can dynamically adjust the thinking budget given to Claude Sonnet 4. The higher the budget, the more tokens it uses to “think”.
If you tell the model to “think hard” (or “think a lot” and variations) the thinking budget will be more than doubled.
If you tell the model to “think really hard” (or “think very hard”) it will be increased even more.
You can mention files directly in your prompts by typing @ followed by a pattern to fuzzy-search. It can help speed up responses by avoiding the need to search the codebase.
Command | Shortcut |
---|---|
New Thread | CmdL |
Focus/Hide Amp Sidebar | CmdI |
Switch to Thread | CmdK |
Go to Next Thread | CmdShift] |
Go to Previous Thread | CmdShift[ |
Command | Shortcut |
---|---|
New Thread | CmdOptionJ |
Focus/Hide Amp Sidebar | CmdOptionU |
Switch to Thread | CmdK |
Go to Next Thread | CmdShift] |
Go to Previous Thread | CmdShift[ |
Command | Shortcut |
---|---|
New Thread | CmdOptionJ |
Focus/Hide Amp Sidebar | CmdOptionU |
Switch to Thread | CmdK |
Go to Next Thread | CmdShift] |
Go to Previous Thread | CmdShift[ |
Command | Shortcut |
---|---|
New Thread | CtrlL |
Focus/Hide Amp Sidebar | CtrlI |
Switch to Thread | CtrlK |
Go to Next Thread | CtrlShift] |
Go to Previous Thread | CtrlShift[ |
Command | Shortcut |
---|---|
New Thread | CtrlAltJ |
Focus/Hide Amp Sidebar | CtrlAltU |
Switch to Thread | CtrlK |
Go to Next Thread | CtrlShift] |
Go to Previous Thread | CtrlShift[ |
Command | Shortcut |
---|---|
New Thread | CtrlAltJ |
Focus/Hide Amp Sidebar | CtrlAltU |
Switch to Thread | CtrlK |
Go to Next Thread | CtrlShift] |
Go to Previous Thread | CtrlShift[ |
Command | Shortcut |
---|---|
New Thread | CtrlL |
Focus/Hide Amp Sidebar | CtrlI |
Switch to Thread | CtrlK |
Go to Next Thread | CtrlShift] |
Go to Previous Thread | CtrlShift[ |
Command | Shortcut |
---|---|
New Thread | CtrlAltJ |
Focus/Hide Amp Sidebar | CtrlAltU |
Switch to Thread | CtrlK |
Go to Next Thread | CtrlShift] |
Go to Previous Thread | CtrlShift[ |
Command | Shortcut |
---|---|
New Thread | CtrlAltJ |
Focus/Hide Amp Sidebar | CtrlAltU |
Switch to Thread | CtrlK |
Go to Next Thread | CtrlShift] |
Go to Previous Thread | CtrlShift[ |
Threads are conversations with the agent, containing all your messages, context, and tool calls. Your threads are synced to ampcode.com. If you’re on a team, your threads are also shared with your team by default, just like Git branches on a shared remote repository.
Including links to Amp threads with your changes when submitting for code review helps provide context. Reading and searching your team’s threads can help you see what’s going on and how other people are using Amp.
Threads can be public (visible to anyone on the internet with the link), team-shared (visible to your team members), or private (visible only to you).
If you’re on a team, your threads are shared by default with your team members.
If you are not on a team, your threads are only visible to you by default.
You can change a thread’s visibility at any time through the sharing menu at the top of the thread.
As you work with Amp, your thread accumulates context within the model’s context window. Amp shows your context window usage and warns when approaching limits.
When approaching the thread context limit, you can hover over the context window indicator and use the following:
Amp tracks changes that the agent makes to files during your conversation, which you can track and revert:
Editing a message in a thread automatically reverts any changes the agent made after that message
Amp Tab is our in-editor completion engine, designed to anticipate your next actions and reduce the time spent manually writing code.
It uses a custom model that was trained to understand what you are trying to do next, based on your recent changes, your language server’s diagnostics, and what we call semantic context.
Amp Tab can suggest regular single or multi-line edits to change entire code blocks, next to your cursor or farther away, somewhere else in your current document.
Enable Amp Tab by setting "amp.tab.enabled": true
in your editor settings.
If you’re using Vim extensions in VS Code and need to press Esc twice to dismiss suggestions and enter normal mode, configure amp.tab.dismissCommandIds
to specify which commands should run on Esc. Defaults cover popular extensions like VSCodeVim and vscode-neovim.
Currently, Amp Tab is free to use as a research preview for all Amp users.
Teams provide collaborative workspaces where knowledge can be shared across your organization. Create a team from the settings page. To join a team, you need an invitation from an existing team member.
Team threads are visible to all team members by default, making it easy to learn from others and build on their work.
Teams provide pooled billing of usage, making it easier to manage costs across your organization. If a member of your team joins with free personal usage available, their free usage will be used before the paid team usage.
Each team includes a leaderboard that tracks thread activity and contributions from team members, encouraging engagement and highlighting active participants.
Tools are what the underlying model uses to assist with tasks. For the highest quality results we recommend you use a curated set of tools, with prompts adjusted to fit the underlying model.
Amp comes with a curated set of built-in tools specifically designed for coding. You can find the list of built-in tools inside Amp’s extension settings.
You can add additional tools using MCP (Model Context Protocol) servers, which can be either local or remote. These can be configured in amp.mcpServers
in your configuration file. You can also press + Add MCP Server under Settings.
Configuration options for local (STDIO) MCP servers:
command
- executableargs
- command arguments (optional)env
- environment variables (optional)Configuration options for remote (Streamble/SSE) MCP servers:
url
- server endpointIf the remote MCP server requires authorization with OAuth, you can use mcp-remote
.
Example configuration:
"amp.mcpServers": {
"playwright": {
"command": "npx",
"args": ["-y", "@playwright/mcp@latest", "--headless", "--isolated"]
},
"semgrep": {
"url": "https://mcp.semgrep.ai/mcp"
},
"linear": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.linear.app/sse"
]
}
}
Too many available tools can reduce model performance, so for best results, be selective:
amp.tools.disable
in your configuration file.Amp has a built-in safety system specifically for terminal commands that determines which commands require explicit permission before execution.
By default, Amp automatically allows certain read-only and safe commands like ls
, cat
, and git status
. Common development commands like go test
, cargo build
, and pnpm run build
are also pre-approved. For all other commands, Amp will prompt for permission before execution to protect your system.
You can configure Amp to execute additional commands without prompting for permission each time by adding them to the "amp.commands.allowlist"
array in your extension or CLI settings:
"amp.commands.allowlist": [
"pnpm exec tsc --build",
"pnpm -C web check",
"npm run *",
"pnpm -C server test"
]
Both the editor extension and CLI use this same setting format. You can use simple command patterns like make build
or wildcards like npm run *
to allow multiple similar commands.
To trust the agent fully, disabling all confirmation prompts (including for commands), you can enable the following setting:
"amp.dangerouslyAllowAll": true
In the CLI, you can additionally enable this behavior temporarily for the duration of the current thread, by passing the --dangerously-allow-all
argument.
Amp can spawn subagents (via the Task tool) for complex tasks that benefit from independent execution. Each subagent has its own context window and access to tools like file editing and terminal commands.
Subagents are most useful for multi-step tasks that can be broken into independent parts, operations producing extensive output not needed after completion, parallel work across different code areas, and keeping the main thread’s context clean while coordinating complex work.
However, subagents work in isolation — they can’t communicate with each other, you can’t guide them mid-task, they start fresh without your conversation’s accumulated context, and the main agent only receives their final summary rather than monitoring their step-by-step work.
Amp may use subagents automatically for suitable tasks, or you can encourage their use by mentioning subagents or suggesting parallel work.
Amp has access to a more powerful model that’s better suited for complex reasoning or analysis tasks, at the cost of being slightly slower, slightly more expensive, and less suited to day-to-day code editing tasks than the main agent’s model. Currently that more powerful model is OpenAI’s o3.
This model is available to Amp’s main agent through a tool called oracle
.
The main agent can autonomously decide to ask the oracle for help when debugging or reviewing a complex piece of code. We consciously haven’t pushed the main agent to constantly use the more powerful model yet, due to higher costs and slower inference speed.
We recommend explicitly asking Amp’s main agent to use the oracle when you think it will be helpful. Here are some examples from our own usage of Amp:
foobar
and barfoo
are used. Then I want you to work a lot with the oracle to figure out how we can refactor the duplication between them while keeping changes backwards compatible.”Run amp --jetbrains
to connect Amp to a JetBrains IDE (IntelliJ, WebStorm,
GoLand, etc.). When running inside the integrated JetBrains terminal, the --jetbrains
flag is enabled automatically.
This integration supports:
Limitations:
amp --jetbrains
from the root of your open JetBrains project, or run amp
from the integrated JetBrains terminal.Importantly, you don’t have to configure the JetBrains MCP server via "amp.mcpServers"
when using this integration.
Amp can be configured through settings in your editor extension (e.g. .vscode/settings.json
) and the CLI configuration file.
The CLI configuration file location varies by operating system:
%APPDATA%\amp\settings.json
~/.config/amp/settings.json
~/.config/amp/settings.json
All settings use the amp.
prefix.
amp.anthropic.thinking.enabled
Type: boolean
, Default: true
Enable Claude’s extended thinking capabilities
amp.commands.allowlist
Type: array
, Default: []
Run specific terminal commands without waiting for user confirmation. See Command Allowlisting documentation.
amp.git.commit.ampThread.enabled
Type: boolean
, Default: true
Enable adding Amp-Thread trailer in git commits. When disabled, commits made with the commit tool will not include the Amp-Thread: <thread-url>
trailer.
amp.git.commit.coauthor.enabled
Type: boolean
, Default: true
Enable adding Amp as co-author in git commits. When disabled, commits made with the commit tool will not include the Co-authored-by: Amp <amp@ampcode.com>
trailer.
amp.mcpServers
Type: object
Model Context Protocol servers that expose tools. See Custom Tools (MCP) documentation.
amp.terminal.commands.nodeSpawn.loadProfile
Type: string
, Default: "always"
, Options: "always"
| "never"
| "daily"
Before running commands (including MCP servers), whether to load environment variables from the user’s profile (.bashrc
, .zshrc
, .envrc
) as visible from the workspace root directory
amp.todos.enabled
Type: boolean
, Default: true
Enable TODOs tracking for managing tasks
amp.tools.disable
Type: array
, Default: []
Disable specific tools by name. Use ‘builtin:toolname’ to disable only the builtin tool with that name (allowing an MCP server to provide a tool by that name).
amp.tools.stopTimeout
Type: number
, Default: 300
How many seconds to wait before canceling a running tool
amp.updates.autoUpdate.enabled
Type: boolean
, Default: true
Enable automatic updates of the Amp CLI. When disabled, the CLI will not check for or install updates automatically. This setting only applies to the CLI.
amp.url
Type: string
URL to the Amp server, usually https://ampcode.com/
amp.debugLogs
Type: boolean
, Default: false
Enable debug logging in the Amp output channel
amp.notifications.enabled
Type: boolean
, Default: true
Play notification sound when done or blocked
amp.tab.enabled
Type: boolean
, Default: false
Enable Amp Tab completion engine
amp.terminal.commands.hide
Type: boolean
, Default: true
Whether to hide the integrated VS Code terminal by default when starting commands
amp.ui.zoomLevel
Type: number
, Default: 1
Zoom level for the Amp user interface
When using the Amp CLI in corporate networks with proxy servers or custom certificates, set these standard Node.js environment variables in your shell profile or CI environment as needed:
export HTTP_PROXY=your-proxy-url
export HTTPS_PROXY=your-proxy-url
export NODE_EXTRA_CA_CERTS=/path/to/your/certificates.pem
See the Amp Security Reference document.
If you see a “Signup is restricted” message, this likely means we cannot provide access to your region due to US export restrictions. Amp is available in most countries worldwide, but we cannot provide access to countries under US embargo to comply with applicable laws. If you believe this is a mistake, please contact support@sourcegraph.com.
Join the Amp Discord to connect with the Amp team and other Amp users, share tips and tricks, and get help from the community.
For billing questions, contact amp-billing-help@sourcegraph.com.
Amp uses prepaid credits. You’ll never be charged more than you prepay — unless you turn on auto-reload.
Upon signing up, most users get $10 USD in free usage. You can purchase more as an individual or for your team. Unused credits expire after one year of account inactivity.
Usage is consumed based on LLM usage and usage of certain other tools (like web search) that cost us to serve. We pass these costs through to you directly with no markup, for individuals and non-enterprise teams.
Enterprise usage is 50% more expensive than individual and team usage, and includes SSO (Okta, SAML, etc.) and zero data retention for text inputs in LLM inference. See Amp Security Reference for more information.
To start using Amp Enterprise, go to your team and click “Change Plan” in the top right corner. This requires a special one-time $1,000 USD purchase, which grants your team $1,000 USD of Amp Enterprise usage and upgrades your team to Enterprise.
With Amp Enterprise Premium, invoice payments are offered for purchases of $5,000+ USD, and volume discounts are available for purchases of $25,000+ USD. Contact amp-devs@sourcegraph.com for access to these purchasing options and for general information about Amp Enterprise.