Warp Agent CLI > Context & customization
Customizing the Warp Agent CLI
# Customizing the Warp Agent CLI import { VARS } from '@data/vars'; The {VARS.WARP_CLI} keeps its configuration in a plain TOML settings file on your machine. You can change settings by editing the file directly, by running slash commands like `/theme` and `/statusline`, or by asking the agent to update a setting for you. Beyond the CLI's own settings, this page also covers the agent's context: the project rules, skills, and MCP servers the agent picks up as you work. ## The settings file The CLI reads its settings from a `settings.toml` file: * **macOS** - `~/.warp_cli/settings.toml` * **Linux** - `~/.config/warp-terminal/cli/settings.toml` (respects `$XDG_CONFIG_HOME`) * **Windows** - `%LOCALAPPDATA%\warp\Warp\config\cli\settings.toml` The file is created the first time you change a setting, and you can also create it yourself. Settings use dotted TOML sections. For example: ```toml title="settings.toml" [appearance] theme = "dark" ``` The CLI watches the settings file while it's running, so edits take effect immediately without a restart. If a value is invalid, the CLI logs the problem and uses the default for that setting instead. If the file can't be parsed at all, the CLI starts with default settings. :::note CLI settings are local to your machine and are never synced to the cloud. They are also independent from the Warp app's settings: the app and the CLI keep separate settings files, so changing one never affects the other. ::: ## Edit settings with the agent The fastest way to change a setting is to ask the agent in plain language. The CLI ships with a bundled skill and a schema of every available setting, which the agent uses to find the right key, validate the value, and update the settings file for you. Try prompts like: * "Switch my theme to light." * "Add the time to my statusline." * "What CLI settings can I change?" Because the CLI hot-reloads the settings file, changes the agent makes apply immediately. For the full list of built-in skills, see [Bundled skills](#bundled-skills). ## Themes The {VARS.WARP_CLI} renders with a light or dark color theme. Set it with the `/theme` slash command: * **`/theme auto`** - Matches the host terminal's background. This is the default. * **`/theme light`** - Always uses the light theme. * **`/theme dark`** - Always uses the dark theme. Theme changes apply immediately and persist across sessions as the `theme` key under `[appearance]` in the settings file. In auto mode, the CLI probes the host terminal's default colors when it starts and picks the theme that matches the background: light backgrounds get the light theme, and dark or undetectable backgrounds get the dark theme. Detection runs at startup, so if you switch your terminal's colors while the CLI is running, restart it or set a theme explicitly. ## Statusline The statusline is the row below the CLI's input box that shows session information at a glance. By default it shows the active model, the working directory, and, inside a Git repository, the Git branch and diff status. You can enable any of these items: * **Model** - The active model. Click it to open the model picker. * **Working directory** - The current working directory. * **Git branch** - The current branch, when the directory is a Git repository. * **Git branch status** - How far the branch is ahead of or behind its upstream. * **Git diff status** - Uncommitted line additions and deletions. * **Credit usage** - Credits used by the current conversation. Click it to switch between credits and provider cost. * **Context window usage** - How much of the model's context window the conversation has used. * **Agent to-do list** - The agent's progress through its current task list. * **Auto-approve indicator** - Appears when auto-approve is on. * **Auto-queue next prompt indicator** - Appears when auto-queue is on. * **Date** - The current date. * **Time (12 hour format)** and **Time (24 hour format)** - The current time. * **Voice input** - A control for starting voice input. Items only appear when they have something to show. For example, the Git items appear only inside a repository. In shell mode, the statusline always leads with a shell mode label. ### Customizing the statusline Choose which items appear and in what order: 1. Run `/statusline`. The **Configure statusline** panel opens with every available item. 2. Select an item and press `Enter` to toggle its visibility. 3. Press `←` and `→` to move the highlighted item earlier or later in the row. 4. Press `Esc` to save and close. Press `Ctrl+C` to cancel without saving. Your choices are saved to the settings file, so the layout persists across sessions. ## Project context and rules The {VARS.WARP_CLI} gives its agent the same layered context system as the Warp app: your working directory, project rules, skills, and MCP servers, all scoped to the directory you're working in. Every conversation includes the session's current working directory as context. The {VARS.WARP_CLI} starts in the directory where you ran `warp`, and when you `cd` inside the session, project rules and skills re-scope to the new directory automatically. Within a project, the {VARS.WARP_CLI} picks up the same rule files as the Warp app: * **Project rules** - `AGENTS.md` (or `WARP.md`) files in your repository apply automatically, starting from the repository root and your current directory. See [Rules](/agent-platform/capabilities/rules/) for the file format, nested rules in subdirectories, and precedence. * **Global rules** - A rule file at `~/.agents/AGENTS.md` applies across all projects on your machine. Because rules and skills are discovered from these shared file locations, a repository that's already set up for agents in the Warp app (or other agent tools that read `AGENTS.md`) works in the {VARS.WARP_CLI} with no extra setup. ## Skills [Skills](/agent-platform/capabilities/skills/) are reusable instruction sets the agent can invoke to perform specific tasks. The {VARS.WARP_CLI} discovers the same skills as the Warp app: project skills from your repository's skill directories (such as `.agents/skills/`) and personal skills from your home directory (such as `~/.agents/skills/`), scoped to your current working directory. To browse and invoke skills: 1. Type `/skills` and press `Enter` to open the skills menu. The menu lists every skill in scope with its description; type to filter the list. 2. Use `↑` and `↓` to select a skill, then press `Enter`. The {VARS.WARP_CLI} inserts `/skill-name ` into the input so you can add extra instructions before running it. 3. Press `Enter` to invoke the skill. Any text after the skill name is passed along, either as [skill arguments](/agent-platform/capabilities/skills/#skill-arguments) or as additional context for the agent. You can also invoke a skill directly by typing `/` followed by its name, for example `/deploy push the latest changes to staging`. Matching skills appear in the slash command menu as you type. ## Bundled skills The {VARS.WARP_CLI} ships with built-in skills that appear in the skills menu alongside your own: * **`/modify-settings`** - Updates {VARS.WARP_CLI} settings for you, using the bundled settings schema to find and edit the right key. See [Edit settings with the agent](#edit-settings-with-the-agent). * **`/tui-migrate-setup`** - Sets up the {VARS.WARP_CLI} from an existing Warp app installation. The agent copies compatible settings and global MCP server definitions from the desktop app, and asks for your approval before changing anything. Credentials and OAuth state are never copied, so MCP servers that require authentication prompt you to re-authenticate. Rules and skills don't need migration because both surfaces discover them from the same locations. ## MCP servers [MCP servers](/agent-platform/capabilities/mcp/) extend the agent with external tools and data sources. The {VARS.WARP_CLI} keeps its own MCP server configuration, separate from the Warp app's, so each can run its own set of servers. Servers are defined in a JSON config file using the same `mcpServers` format as [file-based MCP servers](/agent-platform/capabilities/mcp/#file-based-mcp-servers) in the Warp app (on macOS, the file is `~/.warp_cli/.mcp.json`). Edit the file to add or remove servers; the {VARS.WARP_CLI} picks up changes automatically. Configured servers start automatically once you're logged in. :::note The {VARS.WARP_CLI} reads MCP servers from its global config file only. Project-scoped MCP config files in repositories are not detected. To copy global server definitions from the Warp app, use the `/tui-migrate-setup` bundled skill. ::: ### Managing servers with /mcp Type `/mcp` to open the MCP management view. The header shows the path to the config file the {VARS.WARP_CLI} is reading. Each configured server is listed with its transport (`stdio` or `HTTP/SSE`) and current status, including the number of tools a running server exposes. Select a server with `↑` and `↓`, then press `Enter` to act on it: * **Offline servers** - Pressing `Enter` starts the server. * **Running servers** - Pressing `Enter` stops the server. * **Failed servers** - The row shows the failure message. Pressing `Enter` retries the server. * **Servers awaiting authentication** - Pressing `Enter` reopens the OAuth authorization page in your browser. Servers with saved credentials show a **Log out** row that removes the stored OAuth credentials. ## Related pages * [Rules](/agent-platform/capabilities/rules/) - Full guide to project and global rules * [Skills](/agent-platform/capabilities/skills/) - Authoring skills, skill arguments, and skill locations * [MCP servers](/agent-platform/capabilities/mcp/) - Config format, server examples, and authentication * [Codebase Context](/agent-platform/capabilities/codebase-context/) - Codebase indexing in the Warp app * [{VARS.WARP_CLI} reference](/cli/reference/) - Command-line flags, slash commands, and keyboard shortcutsTell me about this feature: https://docs.warp.dev/cli/configuration/Customize the Warp Agent CLI: settings file, themes, statusline, and agent context with project rules, skills, and MCP servers.
The Warp Agent CLI keeps its configuration in a plain TOML settings file on your machine. You can change settings by editing the file directly, by running slash commands like /theme and /statusline, or by asking the agent to update a setting for you. Beyond the CLI’s own settings, this page also covers the agent’s context: the project rules, skills, and MCP servers the agent picks up as you work.
The settings file
Section titled “The settings file”The CLI reads its settings from a settings.toml file:
- macOS -
~/.warp_cli/settings.toml - Linux -
~/.config/warp-terminal/cli/settings.toml(respects$XDG_CONFIG_HOME) - Windows -
%LOCALAPPDATA%\warp\Warp\config\cli\settings.toml
The file is created the first time you change a setting, and you can also create it yourself. Settings use dotted TOML sections. For example:
[appearance]theme = "dark"The CLI watches the settings file while it’s running, so edits take effect immediately without a restart. If a value is invalid, the CLI logs the problem and uses the default for that setting instead. If the file can’t be parsed at all, the CLI starts with default settings.
Edit settings with the agent
Section titled “Edit settings with the agent”The fastest way to change a setting is to ask the agent in plain language. The CLI ships with a bundled skill and a schema of every available setting, which the agent uses to find the right key, validate the value, and update the settings file for you. Try prompts like:
- “Switch my theme to light.”
- “Add the time to my statusline.”
- “What CLI settings can I change?”
Because the CLI hot-reloads the settings file, changes the agent makes apply immediately. For the full list of built-in skills, see Bundled skills.
Themes
Section titled “Themes”The Warp Agent CLI renders with a light or dark color theme. Set it with the /theme slash command:
/theme auto- Matches the host terminal’s background. This is the default./theme light- Always uses the light theme./theme dark- Always uses the dark theme.
Theme changes apply immediately and persist across sessions as the theme key under [appearance] in the settings file.
In auto mode, the CLI probes the host terminal’s default colors when it starts and picks the theme that matches the background: light backgrounds get the light theme, and dark or undetectable backgrounds get the dark theme. Detection runs at startup, so if you switch your terminal’s colors while the CLI is running, restart it or set a theme explicitly.
Statusline
Section titled “Statusline”The statusline is the row below the CLI’s input box that shows session information at a glance. By default it shows the active model, the working directory, and, inside a Git repository, the Git branch and diff status. You can enable any of these items:
- Model - The active model. Click it to open the model picker.
- Working directory - The current working directory.
- Git branch - The current branch, when the directory is a Git repository.
- Git branch status - How far the branch is ahead of or behind its upstream.
- Git diff status - Uncommitted line additions and deletions.
- Credit usage - Credits used by the current conversation. Click it to switch between credits and provider cost.
- Context window usage - How much of the model’s context window the conversation has used.
- Agent to-do list - The agent’s progress through its current task list.
- Auto-approve indicator - Appears when auto-approve is on.
- Auto-queue next prompt indicator - Appears when auto-queue is on.
- Date - The current date.
- Time (12 hour format) and Time (24 hour format) - The current time.
- Voice input - A control for starting voice input.
Items only appear when they have something to show. For example, the Git items appear only inside a repository. In shell mode, the statusline always leads with a shell mode label.
Customizing the statusline
Section titled “Customizing the statusline”Choose which items appear and in what order:
- Run
/statusline. The Configure statusline panel opens with every available item. - Select an item and press
Enterto toggle its visibility. - Press
←and→to move the highlighted item earlier or later in the row. - Press
Escto save and close. PressCtrl+Cto cancel without saving.
Your choices are saved to the settings file, so the layout persists across sessions.
Project context and rules
Section titled “Project context and rules”The Warp Agent CLI gives its agent the same layered context system as the Warp app: your working directory, project rules, skills, and MCP servers, all scoped to the directory you’re working in.
Every conversation includes the session’s current working directory as context. The Warp Agent CLI starts in the directory where you ran warp, and when you cd inside the session, project rules and skills re-scope to the new directory automatically.
Within a project, the Warp Agent CLI picks up the same rule files as the Warp app:
- Project rules -
AGENTS.md(orWARP.md) files in your repository apply automatically, starting from the repository root and your current directory. See Rules for the file format, nested rules in subdirectories, and precedence. - Global rules - A rule file at
~/.agents/AGENTS.mdapplies across all projects on your machine.
Because rules and skills are discovered from these shared file locations, a repository that’s already set up for agents in the Warp app (or other agent tools that read AGENTS.md) works in the Warp Agent CLI with no extra setup.
Skills
Section titled “Skills”Skills are reusable instruction sets the agent can invoke to perform specific tasks. The Warp Agent CLI discovers the same skills as the Warp app: project skills from your repository’s skill directories (such as .agents/skills/) and personal skills from your home directory (such as ~/.agents/skills/), scoped to your current working directory.
To browse and invoke skills:
- Type
/skillsand pressEnterto open the skills menu. The menu lists every skill in scope with its description; type to filter the list. - Use
↑and↓to select a skill, then pressEnter. The Warp Agent CLI inserts/skill-nameinto the input so you can add extra instructions before running it. - Press
Enterto invoke the skill. Any text after the skill name is passed along, either as skill arguments or as additional context for the agent.
You can also invoke a skill directly by typing / followed by its name, for example /deploy push the latest changes to staging. Matching skills appear in the slash command menu as you type.
Bundled skills
Section titled “Bundled skills”The Warp Agent CLI ships with built-in skills that appear in the skills menu alongside your own:
/modify-settings- Updates Warp Agent CLI settings for you, using the bundled settings schema to find and edit the right key. See Edit settings with the agent./tui-migrate-setup- Sets up the Warp Agent CLI from an existing Warp app installation. The agent copies compatible settings and global MCP server definitions from the desktop app, and asks for your approval before changing anything. Credentials and OAuth state are never copied, so MCP servers that require authentication prompt you to re-authenticate. Rules and skills don’t need migration because both surfaces discover them from the same locations.
MCP servers
Section titled “MCP servers”MCP servers extend the agent with external tools and data sources. The Warp Agent CLI keeps its own MCP server configuration, separate from the Warp app’s, so each can run its own set of servers.
Servers are defined in a JSON config file using the same mcpServers format as file-based MCP servers in the Warp app (on macOS, the file is ~/.warp_cli/.mcp.json). Edit the file to add or remove servers; the Warp Agent CLI picks up changes automatically. Configured servers start automatically once you’re logged in.
Managing servers with /mcp
Section titled “Managing servers with /mcp”Type /mcp to open the MCP management view. The header shows the path to the config file the Warp Agent CLI is reading.
Each configured server is listed with its transport (stdio or HTTP/SSE) and current status, including the number of tools a running server exposes. Select a server with ↑ and ↓, then press Enter to act on it:
- Offline servers - Pressing
Enterstarts the server. - Running servers - Pressing
Enterstops the server. - Failed servers - The row shows the failure message. Pressing
Enterretries the server. - Servers awaiting authentication - Pressing
Enterreopens the OAuth authorization page in your browser. Servers with saved credentials show a Log out row that removes the stored OAuth credentials.
Related pages
Section titled “Related pages”- Rules - Full guide to project and global rules
- Skills - Authoring skills, skill arguments, and skill locations
- MCP servers - Config format, server examples, and authentication
- Codebase Context - Codebase indexing in the Warp app
- Warp Agent CLI reference - Command-line flags, slash commands, and keyboard shortcuts