# Warp > If you didn’t already know, you can code directly in Warp. --- # Source: https://docs.warp.dev/university/developer-workflows/beginner/10-coding-features-you-should-know.md # 10 Coding Features You Should Know ## 10 Coding Features You Should Know in Warp If you didn’t already know, you can code directly in Warp. Warp includes a full set of features that make editing, reviewing, and navigating your codebase far easier than in a traditional dev tool. {% embed url="" %} \ Let’s walk through the 10 core features you need to know to get started. *** ### 1. Search for Files Open the **Command Palette**: * **Mac:** `Cmd + P` * **Windows/Linux:** `Ctrl + Shift + P` Then press: * **Mac:** `Cmd + O` * **Windows/Linux:** `Ctrl + O` From here, you can search and open any file in your project — no need to `cd` around or remember long paths. *** ### 2. Tabbed File Viewer When you open files, Warp shows them in **tabs** rather than split panes.\ This keeps your workspace clean while still allowing you to switch quickly between multiple files. *** ### 3. Full Editor Support You can edit code directly inside Warp — just like any modern editor. No need for memorized shortcuts: * Click and type normally * Highlight, copy, paste, or undo using familiar shortcuts *** ### 4. Find and Replace Warp supports full **find and replace** with: * Regular expressions * Multi-cursor editing * Replace-all * Preserve-case rules These features make renaming variables or refactoring code fast and consistent. *** ### 5. Syntax Highlighting Warp supports syntax highlighting for **dozens of languages and frameworks**.\ It appears both in: * Agent-generated diffs * The file editor view This makes it easy to visually scan code at a glance. *** ### 6. Linked File References When Warp’s agent references a file, it automatically **links to the exact line of code**.\ Clicking the link opens that file at that line inside Warp — perfect for tracing logic or verifying changes. > ⚙️ **Tip:** In **Settings → Features**, set Warp as your default editor for these file links so they open directly in Warp. *** ### 7. Code Review Panel Warp provides a **dedicated review panel** summarizing all files and diffs touched by an agent.\ You can: * Review and approve changes * Edit them inline * Reference diffs in your next prompt This reduces hallucinations and keeps agents grounded in your actual code. *** ### 8. Code Snippet References When Warp explains something about your codebase, it surfaces the **exact code snippet**.\ You can attach that snippet as fresh context for your next prompt. > **PROMPT HERE:** (INSERT PROMPT USED TO ATTACH CODE SNIPPET) This keeps token usage lean and the agent’s focus sharp. *** ### 9. Codebase Indexing Warp can automatically **index your repositories** for faster, more context-aware responses.\ This makes it easier for agents to: * Summarize large codebases * Fix bugs * Handle refactors intelligently *** ### 10. File Tree View Click the file-tree icon in Warp to **browse your entire repo** and open any file with a single click. --- # Source: https://docs.warp.dev/terminal/more-features/accessibility.md # Accessibility {% hint style="info" %} Note that currently, these instructions are for macOS only. Warp doesn't support screen readers on Linux or Windows and it's being tracked here: {% endhint %} We recognize the need to improve the experience for those visually impaired, as - to our best knowledge - other terminal emulator apps didn't do a good job in this area. This doc summarizes what we've done so far, how Warp works with VoiceOver, and outlines the main changes from the typical workflow. For the features documentation and its keyboard shortcuts, please go to the feature-specific page in the documentation. **Keep in mind that this is a work-in-progress and the current state is not a final state of accessibility in Warp**. ## How to use Warp with Voice Over? The best way to start working with Warp & VoiceOver is to install it using Homebrew: `brew install warp` This will ensure that you can receive all future updates automatically, without the need to go through a macOS standard drag-and-drop installation process. From there, Warp should seamlessly work with VoiceOver and start announcing what's happening on the screen and what actions you can take. This may be a major difference from other apps - as Warp announces stuff on its own, letting you know what's going on. There's currently no way to navigate between different UI elements using VO key combinations. Once installed, it will ask you to log in. Warp also sends telemetry that we use to improve the overall user experience. You can find out more about that in the [privacy section](https://docs.warp.dev/support-and-community/privacy-and-security/privacy). The login flow will require you to navigate between the app and your browser. The last step before you can start enjoying our new terminal app is filling up the onboarding survey. The main terminal window is not that different from other terminals - there's a place to type commands (Command Input) and a list of the previously executed commands and their outputs. Warp groups those together - each command and output create a Block. You can navigate blocks with your keyboard to easily check what was the command, learn whether it was successful or not, and what was the output, as well as more easily copy the command, output, or both for further processing. A main entry point for discovering new features and actions is our Command Palette, which you can access by executing the cmd-p shortcut. ## Differences from the regular VoiceOver workflow As you may notice, typical Voice Over navigation keys or settings do not currently work in Warp. In short - it's related to how our UI Framework is currently implemented and that as of now we don't yet offer a keyboard-accessible way to navigate the UI elements. Instead, whenever you perform an action and/or something happens in the background, Warp announces it to you, letting you know what's going on and what possible actions you can take. Since it's a terminal, we care about all user actions being keyboard accessible from the start, so pretty much all our features have the assigned keybindings already. You can adjust the default keybindings following the guide from this GitHub repository: . You can also always fall back to using cmd-p to check the keybinding or execute the specific action. ### A11y specific actions Some a11y-specific settings are available through the command palette. For example, you can adjust the verbosity level of messages. Simply enter the [Command Palette](https://docs.warp.dev/terminal/command-palette) and type "a11y" to discover related options and their keybindings. ### Voice Input Warp supports voice input as an alternative way to interact with your terminal. This can be especially helpful for users who prefer or require voice commands over typing. You can use voice input to: * Issue terminal commands * Ask questions about command usage * Perform complex multi-step operations Voice input can be enabled in `Settings > AI > Voice`. For detailed information about voice features and setup, see our [Voice documentation](https://docs.warp.dev/agent-platform/agent/voice). ## Future work While not all Warp features are accessible yet, we've implemented a process around releasing new features and changes to the main app, to ensure that all new code provides proper a11y announcements. This is not the ideal and final implementation. We're happy to hear your thoughts and ideas on how we can improve. The biggest milestone for this work is to add support for navigating the UI elements using the keyboard. Give Warp a try, and please, do not hesitate to [share your feedback](https://docs.warp.dev/support-and-community/troubleshooting-and-support/sending-us-feedback). --- # Source: https://docs.warp.dev/agent-platform/agent/active-ai.md # Active AI ## Active AI {% hint style="info" %} Active AI features can be disabled in `Settings > AI` with the Active AI toggle. {% endhint %} ### Prompt Suggestions Prompt Suggestions are contextual, AI-powered suggestions that activate Agent Mode. These banners will provide suggestions for what to ask Agent Mode in specific scenarios, similar to how Warp already suggests commands to run. To disable, please visit `Settings > AI > Active AI > Prompt Suggestions`

Example of inline banner popping up when relevant contextually.

#### Accepting a Prompt Suggestion If you press `CMD-ENTER` (on Mac), `CTRL-SHIFT-ENTER` (on Linux/Windows), or click on the chip, the suggestion will auto-populate into your input and run against [Agent Mode](https://docs.warp.dev/agent-platform/agent/using-agents) (with the most recent block attached). {% hint style="info" %} Prompt Suggestions use an LLM to generate prompts based on your terminal session, specifically the most recent block. These AI requests do not contribute towards your AI limits, however, any accepted prompts run in Agent Mode contribute as normal. Visit **Settings > AI > Active AI** if you'd like to turn it off. If [Secret Redaction](https://docs.warp.dev/support-and-community/privacy-and-security/secret-redaction) is enabled, any selected regexes are applied to content sent to Active AI features to prevent any sensitive data being leaked. {% endhint %}

Setting for Prompt Suggestions

### Next Command Next Command uses AI to suggest the next command to run based on your active terminal session and command history. It uses your active terminal session contents and an LLM to generate commands. To disable, please visit `Settings > AI > Active AI > Next Command`
{% hint style="info" %} Next Command is an LLM-based feature which utilizes your command history (enriched with git branch, exit code, and directory metadata) as well as recent block input and output to generate the next command suggestions. [Secret Redaction](https://docs.warp.dev/support-and-community/privacy-and-security/secret-redaction) is automatically applied to any content sent to Active AI features to prevent any sensitive data being leaked. {% endhint %} #### Accepting Next Commands Accept a Next Command Suggestion with `TAB` , `→` , or `CTRL-F` to add the suggested next command to your input buffer. `ENTER` executes the accepted command. #### Billing Next Commands are unlimited across all of Warp's plans, including the Free plan. For the latest information on other AI limits and other pricing details, visit [warp.dev/pricing](https://warp.dev/pricing). ### Suggested Code Diffs Suggested Code Diffs automatically surface potential fixes for command-line errors encountered within Warp. These are most often compiler errors, but they may also include other situations where Warp can confidently predict a straightforward resolution, such as simple merge conflicts.
When an error occurs, Warp evaluates whether it is appropriate for an LLM to generate a fix. If so, a “Generating fix” banner will appear while Warp prepares a proposed diff. You can stop this process at any time by pressing `CTRL + C` or the stop button.
#### **Using a Suggested Code Diff** Once the diff is generated, you can either dismiss it or accept it. Acceptance can be done directly via the buttons in the diff view, or with `CMD + ENTER` on macOS and `CTRL + ENTER` on Windows/Linux. You can also view additional details of the diff by pressing `CMD + E` (macOS) or `CTRL + E` (Windows/Linux), which expands the view to allow further inspection (including refining or editing it). You can also use `↓` to view the entire diff. **Billing** Suggested Code Diffs do not count toward your AI request limits. There are maximum limits to the number of code diffs surfaced per month, which scales based on your plan tier. For the latest details on plan limits and pricing, please visit [warp.dev/pricing](https://warp.dev/pricing). ## Active AI Privacy See our [Privacy Page](https://docs.warp.dev/support-and-community/privacy-and-security/privacy) for more information on how we handle data with Active AI. --- # Source: https://docs.warp.dev/support-and-community/plans-and-billing/add-on-credits.md # Add-on Credits Add-on credits replace Warp's old [pay-as-you-go Overages](https://docs.warp.dev/support-and-community/plans-and-billing/overages-legacy). They let you continue using premium AI models even after you've reached your monthly credit limit — at lower rates and with more control over spending. You can manage and purchase Add-on credits directly in `Settings > Billing and usage`.
### How do Add-on credits work? Add-on credits extend your AI usage beyond the included monthly quota in your plan. Once your plan’s AI credits are used up, Warp will automatically begin drawing from your available Add-on credits. If you’ve enabled **Auto reload**, new credits will be added automatically and billed based on your selected configuration of monthly spending limit and selected purchase amount. Add-on credits are available for Build, Business, and Enterprise plans (with custom pricing for Enterprise). These credits **roll over across billing cycles** and remain valid for **12 months from the purchase date**. ### Purchasing Add-on credits You have two options for purchasing more credits: #### 1. Buy On-Demand You can purchase additional Add-on credits at any time directly within the app under `Settings > Billing and usage`. Buying more credits upfront provides a larger discount. The table below shows the available credit denominations, their prices, and corresponding discounts:
CreditsPrice (USD)Price per CreditDiscount
400$10$0.025Base rate
1,000$20$0.02020% off
3,000$50$0.016~35% off
6,500$100$0.0153~40% off
#### 2. Enable Auto reload Auto reload automatically purchases more credits whenever your balance reaches **100 credits**, ensuring uninterrupted access to premium AI features. By default, **Auto reload is disabled for new subscribers**. When you turn it on, it starts with a **$200 monthly spend limit**, which you can adjust anytime in `Settings > Billing and usage`. Auto reload uses the same denominations and discounts as manual purchases. The denomination you select (e.g., 400, 1,000, 3,000, or 6,500 credits) will repeat each time your balance is depleted, up to your monthly spending limit. Larger denominations offer up to \~40% off per credit. {% hint style="info" %} You can opt in and choose your reload amount when subscribing to a paid plan at [app.warp.dev/upgrade](https://app.warp.dev/upgrade), or change your configuration anytime in Settings > Billing and usage. {% endhint %} {% hint style="warning" %} Add-on credit auto reload will be enabled by default for some legacy plan users when they transition to the Build plan. Please see more in our [Pricing FAQs](https://docs.warp.dev/support-and-community/pricing-faqs#what-happens-to-my-current-plan-pro-turbo-lightspeed). {% endhint %} #### **Configuring a Monthly Spend Limit** Your monthly spend limit sets the maximum amount you can spend on Add-on credits in a single calendar month. This ensures you have full control over your AI usage costs while still allowing flexibility for automatic top-ups when needed, keeping your workflow uninterrupted. * The default limit is $200, but you can increase or decrease it anytime in `Settings > Billing and usage`. * **If a credit purchase would exceed your limit, it won’t process** — you’ll need to either raise your limit or choose a smaller Add-on credit amount. * Once your limit is reached, no additional Add-on Credit purchases (manual or automatic) will occur until: * The next calendar month begins, or * You update your limit in settings. {% hint style="warning" %} Your monthly spend limit is separate from your billing cycle (which determines when your subscription renews).\ \ The limit resets automatically at the start of each calendar month, so you can manage recurring AI usage with predictable spending and clear visibility into your costs. {% endhint %} ### Billing and Credit Usage When your monthly credit balance renews: 1. Warp first consumes your included monthly plan credits (e.g., Build plan credits). 2. After those are used, Warp continues to draw from any available Add-on Credits. 3. If your Add-on Credits run out and Auto reload is enabled, Warp will automatically purchase more up to your monthly limit. You can track your remaining credits and spending in the credits transparency footer and in `Settings > Billing and usage`. #### Teams on Add-on Plans For teams on Build or Business plans, **Add-on Credits are shared across all members.** All team credit settings can be managed in `Settings → Billing and usage` by the admin of the team. Team admins can manage: * Enabling or disabling Auto reload * Adjusting monthly spend limits * Choosing Add-on credit increments * Viewing usage and spending breakdowns Each user on the team has their own monthly credit limit, **but any usage beyond that personal quota draws from the shared team credits**. These shared credits are tracked and billed collectively at the team level. For example, if your plan includes 1,500 AI credits per team member: * If **User A** reaches their 1,500 limit, any further usage will draw from shared Add-on Credits. * If **User B** has only used 200 credits, their remaining quota is unaffected, but User A will consume the team's shared credits. ### Plan Changes and Cancellations If you upgrade, downgrade, or switch plans, any purchased Add-on Credits remain in your account and can continue to be used. If you move to the Free plan, you’ll retain access to any previously purchased Add-on Credits but can’t buy additional ones until you upgrade again. {% hint style="info" %} All unused Add-on Credits remain valid for 12 months from purchase. {% endhint %} --- # Source: https://docs.warp.dev/knowledge-and-collaboration/admin-panel.md # Admin Panel ## What is the Admin Panel? The [Admin Panel](https://app.warp.dev/admin/) provides team administrators with centralized control over organization-wide settings in Warp. It allows you to manage workspace settings that are enforced across all members of your team. {% hint style="info" %} Admin Panel access is restricted to team administrators. Right now, only the creator of a team is the designated admin. If your admin has setup styles that override user preferences, you will not be able to control them inside of Warp, and you'll see a note that your admin has configured this setting. {% endhint %} **Key features:** * **AI Settings** - Control agent autonomy, permissions, and allowlists across your team * **Privacy Controls** - Configure data collection and enterprise secret redaction * **Billing Management** - Set spending limits and manage usage-based pricing * **Code Settings** - Control codebase indexing and context features * **Sharing Policies** - Manage link sharing and collaboration permissions ## Accessing the Admin Panel Team administrators can access the Admin Panel directly at

Admin Panel main interface with sections for AI, privacy, billing, code, and sharing settings

## How Settings Enforcement Works The Admin Panel uses a tier-based policy system to determine which settings administrators can control: ### Toggleable vs. Fixed Settings **Toggleable settings** can be modified by team administrators. These appear as dropdown menus with options like: * Enabled/Disabled for boolean settings * Specific autonomy levels for AI settings * Respect User Setting to allow individual control **Fixed settings** are determined by your billing tier and cannot be changed. These appear with a message: "Configuring this setting is not available on your plan." ### Setting Inheritance When administrators configure organization-wide settings: 1. **Organization enforced** - Setting applies to all team members regardless of individual preferences 2. **Respect user setting** - Allows individual team members to control the setting themselves 3. **Tier restricted** - Setting is locked to default values based on billing plan ### User Experience {% hint style="info" %} Any changes made in the Admin Panel can take effect immediately for all team members. Consider testing settings in Warp before applying organization-wide policies. {% endhint %} When organization settings override individual preferences: * Users see their personal settings grayed out * A message indicates "your organization has configured this setting" * Users cannot modify settings that are organizationally enforced ## Plan Limitations The features available in the Admin Panel vary by billing tier: **Free Tier** * Most settings are fixed and non-toggleable * Limited codebase context and sharing features **Business Plans** * Most settings become toggleable by administrators * Enhanced AI autonomy control * Advanced sharing and privacy features **Enterprise Plans** * Full admin control over all settings * Enterprise secret redaction * Custom LLM integration * Advanced compliance features For complete details about what's included in each plan, visit [warp.dev/pricing](https://www.warp.dev/pricing). ## Admin Panel Sections The Admin Panel is organized into five main sections, each focused on a specific area of team management: ### AI Settings Configure how Agents behave across your organization, including autonomy levels and command permissions. #### General AI Settings **AI in Remote Sessions** Controls whether AI features are available during SSH sessions and remote connections. Enterprise plans can toggle this setting, while Free tier teams have it enabled by default. **Prompt Summarization Caching** When conversations become long enough to require summarization, this setting allows the summary to be cached temporarily by the LLM provider to improve performance. #### Autonomy Settings Configure how much independence Agents have when performing different actions: **Apply Code Diffs** * Agent Decides - Agent acts autonomously when confident, asks for approval when uncertain * Always Ask - Require explicit approval before applying any code changes * Always Allow - Apply code diffs without confirmation * Respect User Setting - Allow individual users to control this setting **Create Plans** Controls whether Agents can create structured task plans without user approval. **Execute Commands** Manages Agent's ability to run terminal commands autonomously. **Read Files** Controls Agent access to reading files in the codebase. #### Directory and Command Control **Directory Allowlist** Specify directories where Agents can read files without restriction. Use paths like `~/git/repo1` to grant access to specific project folders. **Command Allowlist** Regular expressions matching commands that Agent Mode can execute without asking permission. Common examples: * `grep .*` - Text search commands * `ls(\\s.*)?` - Directory listing * `which .*` - Finding executable locations **Command Denylist** Regular expressions for commands that always require explicit user approval, even if they would normally be allowed. Examples: * `rm -rf.*` - Recursive file deletion * `sudo.*` - Administrative commands * `curl.*` - Network requests {% hint style="warning" %} Command denylist rules take precedence over allowlist rules and agent autonomy settings. If a command matches the denylist, user permission will always be required. {% endhint %} ### Privacy Settings Manage data collection and security policies for your organization. **UGC Data Collection** Controls how Warp collects and uses user-generated content to improve the service: * Disabled - No UGC data collection * Enabled - Allow data collection for service improvement * Respect User Setting - Let individual users decide **Enterprise Secret Redaction** When enabled, applies regex patterns to prevent secrets from being sent to Warp servers or LLM providers. This feature is available on Enterprise plans and includes: * Automatic detection of common secret patterns * Custom regex patterns for organization-specific secrets * Unconditional application across all team members ### Code Settings Control codebase indexing and AI code features for your team. **Codebase Context** Determines whether Warp indexes your team's Git repositories to provide context for AI features: * Disabled - No codebase indexing * Enabled - Index codebases for improved AI responses * Respect User Setting - Allow individual control Higher tier plans support more indexed repositories and larger file limits per codebase. ### Billing Settings Configure billing preferences and spending controls. **Usage Based Pricing** Enable pay-as-you-go billing for AI credits beyond your plan's included quota. When enabled, you can set: **Monthly Spending Limit** Set a maximum monthly overage spending limit to control costs. The system displays current overage usage including: * Total overage credits used * Current month's overage costs ### Sharing Settings Control how team members can share Warp Drive objects and collaborate. **Direct Link Sharing** Allow team members to share Notebooks, Workflows, and other objects via direct links. **Anyone with Link Sharing** Enable public access to shared objects - anyone with the link can view the content without being a team member. --- # Source: https://docs.warp.dev/platform/agent-api-and-sdk.md # Agent API & SDK ### Agent API Warp’s Public Agent API lets you create and inspect [Ambient Agent](https://docs.warp.dev/ambient-agents) tasks over HTTP from any system (CI, cron, backend services, internal tools), without requiring the Warp desktop app. **With the API you can:** * Run an agent by submitting a prompt plus optional config (model, environment, MCP servers, base prompt, etc.) * Monitor execution by listing tasks and tracking state transitions over time (queued → in progress → succeeded/failed) * Inspect results and provenance by fetching a task’s full details, including the original prompt, source/creator metadata, session link, and resolved agent configuration {% hint style="warning" %} This page is a high-level overview. \ \ For full API endpoint details, please refer to the [**Agents API**](https://docs.warp.dev/platform/agent-api-and-sdk/agent)**.** For schema definitions, see the [**Models reference**](https://docs.warp.dev/platform/agent-api-and-sdk/models). {% endhint %} ### Agent SDK Warp provides official [Python](https://github.com/warpdotdev/warp-sdk-python) and [TypeScript](https://github.com/warpdotdev/warp-sdk-typescript) SDKs that wrap the Public Agent API with: * **Typed requests and responses** (editor autocomplete, fewer schema mistakes) * **Built-in retries and timeouts** (with per-request overrides) * **Consistent error type**s that map to API status codes * **Helpers for raw responses** when you need headers/status or custom parsing If you’re building an integration (CI, Slack bots, internal tooling, orchestrators), the SDKs are typically the quickest and safest starting point. {% embed url="" %} **SDK vs raw REST** * Use the SDK when you want strong typing, standardized error handling, and easy concurrency patterns. * Use raw REST when you want minimal dependencies or full control over your HTTP client (the SDKs also support calling undocumented endpoints when needed). {% hint style="warning" %} For the full SDK surface area and latest usage, refer to the GitHub repos: [**Python SDK**](https://github.com/warpdotdev/warp-sdk-python) and [**TypeScript SDK**](https://github.com/warpdotdev/warp-sdk-typescript). {% endhint %} *** ## Agent API ### REST API Base URL All endpoints are served over HTTPS: ```http https://app.warp.dev/api/v1 ``` ### Core Concepts #### **Agent tasks** An agent task represents a single run of an Ambient Agent, created with a prompt and optional configuration. Each task has: * A unique `task_id` * A human-readable `title` * A `prompt` that the agent executes * A `state` (for example `QUEUED`, `INPROGRESS`, `SUCCEEDED`, `FAILED`) * Timestamps (`created_at`, `updated_at`) * Optional session information (`session_id`, `session_link`) * Optional resolved configuration (`agent_config`) See the [**Agents API**](https://docs.warp.dev/platform/agent-api-and-sdk/agent) for details on how tasks are created and listed. #### **Agent configuration** You can influence how an agent runs using AmbientAgentConfig, including: * `name` for traceability and filtering * `model_id` for LLM selection * `base_prompt` to shape behavior * `environment_id` to choose a `CloudEnvironment` * `mcp_servers` to enable specific tools via MCP See the [**Models reference**](https://docs.warp.dev/platform/agent-api-and-sdk/models) for the full configuration schema. *** ### Key Endpoints **The Agents API exposes three primary endpoints:** * `POST /agent/run` Create a new agent task with a prompt and optional config and title. Returns task\_id and initial state. * `GET /agent/tasks` List tasks with pagination and filters for state, config\_name, model\_id, creator, source, and creation time. * `GET /agent/tasks/{taskId}` Fetch full details for a single task, including session link and resolved configuration. All endpoint semantics, query parameters, and error codes are documented on the [Agents API](https://docs.warp.dev/platform/agent-api-and-sdk/agent). *** #### Models Reference The API shares a set of reusable models across endpoints. Detailed JSON schemas, types, and enums are documented on the [Models reference](https://docs.warp.dev/platform/agent-api-and-sdk/models), including: * `RunAgentRequest` * `RunAgentResponse` * `ListTasksResponse` * `TaskItem` * `PageInfo` * `TaskStatusMessage` * `TaskCreatorInfo` * `TaskState` * `TaskSourceType` * `AmbientAgentConfig` * `MCPServerConfig` * `Error` *** ## Agent SDKs ### Python SDK The Python SDK is the recommended way to call the Agent API from Python services and scripts. It provides: * Sync + async clients * Typed request/response models * Configurable retries/timeouts and structured errors See the [**Python SDK GitHub repo**](https://github.com/warpdotdev/warp-sdk-python) for installation, full API reference (api.md), and up-to-date examples. ### TypeScript SDK The TypeScript SDK is the recommended way to call the Agent API from Node.js services and modern TS/JS runtimes. It provides: * Fully typed params/responses * First-class error handling, retries/timeouts * Support across common runtimes where fetch is available or polyfilled See the [**TypeScript SDK GitHub repo**](https://github.com/warpdotdev/warp-sdk-typescript) for installation, full API reference (api.md), and up-to-date examples. --- # Source: https://docs.warp.dev/agent-platform/agent/using-agents/agent-context.md # Agent Context In Warp, you can pass different types of input directly to the Agent to guide its behavior and improve response quality. These inputs are known as **Agent Context**: ad-hoc pieces of information you manually supply during a session. **You can attach context in several ways:** * [Blocks as Context](https://docs.warp.dev/agent-platform/agent/using-agents/agent-context/blocks-as-context) - share output from your terminal to help the Agent understand errors, logs, or previous commands. * [Images as Context](https://docs.warp.dev/agent-platform/agent/using-agents/agent-context/images-as-context) - include screenshots, diagrams, or other visuals to provide additional clarity. * [URLs as Context](https://docs.warp.dev/agent-platform/agent/using-agents/agent-context/urls-as-context) - attach public webpages so the Agent can extract and reference their content. * [Selection as Context](https://docs.warp.dev/agent-platform/agent/using-agents/agent-context/selection-as-context) - attach code snippets from the editor or review panel to enrich your prompts with precise context. * [Using @ to Add Context](https://docs.warp.dev/agent-platform/agent/using-agents/agent-context/using-to-add-context) - reference files, folders, code symbols, or Warp Drive objects directly in your prompts. *** This is distinct from other persistent or automatic sources of context, such as [Rules](https://docs.warp.dev/knowledge-and-collaboration/rules), [Warp Drive as Agent Mode Context](https://docs.warp.dev/knowledge-and-collaboration/warp-drive/warp-drive-as-agent-mode-context), and [Model Context Protocol (MCP)](https://docs.warp.dev/knowledge-and-collaboration/mcp), which the Agent also uses when available. --- # Source: https://docs.warp.dev/agent-platform/agent/using-agents/agent-conversations.md # Agent Conversations ## Conversations with Warp's Agent Conceptually, a conversation is a sequence of AI queries and blocks. Conversations are tied to sessions and you can run multiple Agent Mode conversations simultaneously in different windows, tabs, or panes. Conversations work best when the queries are related. If your new question builds on the last one, continue in the same conversation. If it is unrelated, it is better to start a new one so that the context remains relevant. {% hint style="info" %} Long conversations can cause slower performance and lower-quality answers. When working on a separate task or question, start fresh rather than relying on context from earlier interactions. {% endhint %} ### Staying in a Conversation (Follow-Ups) By default, if you ask an AI query immediately after interacting in Agent Mode, your query is sent as a **follow-up** to the current conversation. * In **Classic Input**, you’ll see both the pink highlight bar on the left side of the block and a bent follow-up arrow (↳) next to your input. The conversation input chip also shows which conversation you are in. * In **Universal Input,** the pink highlight bar and the conversation input chip serve as the indicators, but the bent arrow is not shown. **To follow-up on a previous conversation:** * Simply continue prompting the agent if you are already in an active conversation. * Open the **Conversations menu** (`CMD + Y` on macOS, `CTRL + SHIFT + Y` on Windows/Linux), select a conversation, and then enter your query. * Alternatively, click the pink conversation chip in the input field to resume.

Continuing an Agent conversation in Classic Input (with indicator)

Continuing an Agent conversation in Universal Input

#### Agent tips in the input While Warp’s agent is thinking and processing your request, Warp may surface short tips with helpful workflows and ways to use Warp. These tips appear under the Warping indicator.
You can enable or disable these tips in two places: * **Settings**: `Settings` > `AI` > `Input` > `Show agent tips` * **Command Palette**: Open the Command Palette (`CMD + P` on macOS, `CTRL + SHIFT + P` on Windows/Linux), then select "**Show Agent Tips**" or "**Hide Agent Tips**" ### **Managing Conversations** You can view previous conversations or start a new conversation via the **Conversations Menu** (`CMD + Y` on macOS, `CTRL + SHIFT + Y` on Windows/Linux). {% embed url="" %} {% hint style="info" %} The "New Conversation" item disappears once you start searching for an actual conversation. {% endhint %} ### **Starting a New Conversation** Warp automatically creates a new conversation in a few situations. For example, if you ask an AI query after running a shell command or if three hours pass without activity, Agent Mode will start a fresh conversation. Visual indicators differ slightly depending on input mode: * In **Classic Input,** a new conversation begins when there is no follow-up arrow (↳) next to your input. * In **Universal Input**, a new conversation begins when there is no pink highlight bar on the left side of the block. The conversation input chip also helps confirm whether you’re in a new or existing thread. {% tabs %} {% tab title="macOS" %} You can also start a new conversation manually at any time: * In **Classic Input**, press `CMD + I` or press `BACKSPACE` while in follow-up mode. * In **Universal Input**, press `CMD + SHIFT + N` or click directly on the conversation input chip. * Open the **Conversations Menu** using `CMD + Y` and selecting "New Conversation". {% endtab %} {% tab title="Windows" %} You can also start a new conversation manually at any time: * In **Classic Input**, press `CTRL + I` or press `BACKSPACE` while in follow-up mode. * In **Universal Input**, press `CTRL + ALT + SHIFT + N` or click directly on the conversation input chip. * Open the **Conversations Menu** using `CMD + SHIFT + Y` and selecting "New Conversation". {% endtab %} {% tab title="Linux" %} You can also start a new conversation manually at any time: * In **Classic Input**, press `CTRL + I` or press `BACKSPACE` while in follow-up mode. * In **Universal Input**, press `CTRL + ALT + SHIFT + N` or click directly on the conversation input chip. * Open the **Conversations Menu** using `CMD + SHIFT + Y` and selecting "New Conversation". {% endtab %} {% endtabs %}

Starting a new Conversation in Classic Input

Starting a new Agent Conversation in Universal Input

## Context Window Management Every conversation with an agent consumes tokens stored in a **context window**. The context window (sometimes called *context length*) is the amount of text (measured in tokens) that a Large Language Model (LLM) can process at one time. **The size of the context window depends on the model you are using.** As tokens accumulate and exceed the context window, performance and response quality may degrade. If the context window is exceeded, the model may lose track of earlier parts of the conversation, and **Warp will automatically summarize the conversation to free up space**. ### Warp provides a **context window usage indicator** to help you track this: When less than 20% of the window is used, no indicator is shown. As more tokens accumulate, the usage bar progresses to reflect how much of the context window has been consumed.
As you approach the limit, the indicator turns red to warn that the context window is nearly full.
Once the limit is exceeded, Warp automatically summarizes the conversation so you can continue without losing important context.
The context window usage indicator is available only in **Universal Input**, which you can enable under `Settings > Appearance > Input`. {% hint style="info" %} If you switch models during a conversation, the context usage indicator updates only after you send your next message. {% endhint %} ## Conversation Segmentation Warp automatically detects when your query has shifted to a new topic. When this happens, it suggests starting a new conversation instead of continuing in the same context. These options appear in the blocklist, where you can decide whether to branch off into a new conversation or keep going with the current one.
You can also create a new conversation manually at any time by using the keyboard shortcut, opening a new tab, or opening a new pane. {% tabs %} {% tab title="macOS" %} * Start a new conversation: `CMD + SHIFT + N` * Open a new tab: `CMD + T` * Open a new pane: `CMD + D` {% endtab %} {% tab title="Windows" %} * Start a new conversation: `CTRL + SHIFT + N` * Open a new tab: `CTRL + SHIFT + T` * Open a new pane: `CTRL + SHIFT + D` {% endtab %} {% tab title="Linux" %} * Start a new conversation: `CTRL + SHIFT + N` * Open a new tab: `CTRL + SHIFT + T` * Open a new pane: `CTRL + SHIFT + D` {% endtab %} {% endtabs %} --- # Source: https://docs.warp.dev/agent-platform/agent/agent-modality-beta.md # Agent Modality (Beta) ### Agent Conversations: the new modality {% hint style="info" %} Agent modality is currently in beta and only available in [**Warp Preview**](https://warp.dev/download-preview)**. If you notice something that is missing, broken, or unclear, please share your feedback in the** [Warp Community Slack](https://join.slack.com/t/warpcommunity/shared_invite/zt-3n000083p-sshYx6qVdDvFq~Ht3QoJXQ). If you can, please include screenshots or a short screen recording with your feedback. {% endhint %} Agent modality, an **experimental** UI under development for [agent conversations](https://docs.warp.dev/agent-platform/agent/using-agents/agent-conversations), gives you two distinct ways to work in Warp: a clean terminal for commands, and a dedicated conversation view for multi-turn agent workflows. {% embed url="" %} *** ### Why we built this The default Warp input combines terminal commands and agent interactions in one place. As usage evolved, this made the input feel busier than necessary and sometimes unclear about which mode you were in. Auto-detection between shell commands and natural language helps, but it has limits. This modality is our way of addressing that. Agent modality separates your terminal and agent workflows into distinct modes: * **Clean terminal by default**: Minimal input when you're running commands. Agent controls appear only when you need them. * **Dedicated conversation view**: Multi-turn agent workflow spaces have full controls like model select, voice input, image attachments, and conversation history. * **Smarter mode switching**: Warp detects whether you're typing a command or a prompt. Use `⌘+I` to override the auto-detection. ### What's changing Experience Warp in **two distinct modes**: #### Terminal mode (default) * Looks and behaves like a traditional terminal input. * Agent controls are not always visible, but clear to send something to an agent. If auto-detection is enabled, Warp may label your input as "agent" or "shell" before you submit. You can always use `⌘I` to override the detected mode. #### Agent mode (expanded UI) * A dedicated conversation view with richer agent controls including model select, voice input, image attachments, and conversation management. * Familiar "charms" (current directory, git branch, diff view entry point, etc.) are still available. * Designed for multi-turn workflows and managing multiple conversations. **Key difference** Agent controls appear only when you're in a conversation, keeping your terminal clean otherwise. In the old UI, agent controls were always present—with the new minimal modality, these controls are not displayed by default but appear **once you enter an agent conversation in the agent mode.** {% hint style="info" %} Distinct agent conversation views are identified with an alternative background and the new input tool belt. {% endhint %} **Auto-detection in a conversation** Auto-detection still applies in agent conversations: * If you type something like `ls`, Warp auto-detects the shell command. * Warp will show that it’s auto-detected a shell command. Use `⌘I` to toggle back to an agent prompt. *** ### Availability + defaults * Preview-only right now. * Auto-detection will be disabled by default for new users (both now and at launch). * For existing users, it may respect your existing settings (depending on how you’re already configured). *** ### Core concept: auto-detection + override Warp interprets each input as either a shell command or an agent request. When auto-detection is enabled, Warp shows an **inline indicator** in the prompt (for example, “auto-detected”). #### Override auto-detection (important) Press `⌘I` to switch between command and agent mode. Common examples: * You typed something that looks like a command, but you intended an agent request. * You typed a sentence, but you intended it to run as a command (rare, but it happens). {% hint style="info" %} **Note:** After you override, the selection is “sticky” for that entry, so you can submit confidently. {% endhint %} ### How to enter an agent conversation There are two main methods for entering an agent conversation: #### A) Type naturally (auto-detection will route you) 1. Type a request. For example, “Summarize the dependencies in this project”. 2. If Warp detects an agent request, submit it. 3. You’ll enter an agent conversation automatically. Use this method for quick, text-only requests. #### B) Enter explicitly (recommended if you need rich controls first) Press `⌘↩` (Command+Enter) to enter the conversation view immediately. **Use this when you want to:** * attach an image * use voice input * access other conversation-only controls before sending your first message ### Starting a new conversation + navigating This modality changes how conversations are organized. The **Conversation Panel** on the left is the new home for browsing and switching between agent conversations. It’s designed to make multi-threaded work obvious: you can see what’s active, what you ran recently, and jump back into any thread without guessing where your context went. ### Panel layout The conversation panel is split into two dropdowns (collapsible sections) that help you navigate between conversations: #### Active The **Active** dropdown lists the conversations that are currently open in this window/workspace. * Select a conversation to switch to it immediately. * The conversation you’re currently viewing is highlighted. #### Past The Past dropdown lists your recent conversation history. Each row typically shows: * Conversation title * When it happened (for example, “8 min ago”, “3 days ago”) * Working directory (when relevant) Use **Past** to jump back into something you were working on earlier, without needing a separate “conversation switcher” in the main view. #### Search Use the search field at the top of the conversation panel to quickly find your conversation. * Type to filter conversations by title (and, in some builds, by directory/context). * Useful when you have many threads and want to jump directly to one. #### New conversation Click the `+` button near the top-right of the panel to start a new conversation. Starting a new conversation creates a fresh thread in the **Active** dropdown, without deleting or overwriting your previous ones. #### No classic conversation switcher In the minimal modality, you’re “in” a conversation and navigation is designed to be more direct. Instead of a traditional conversation switcher, conversations are represented explicitly in the UI (as separate conversation blocks/threads). #### Ways to move around * `esc`: exit the current conversation back to your previous terminal session (“escape hatch”) * `⌘K`: start a new agent conversation (clears the current conversation view and begins a fresh thread) Practical mental model: * You can go “one level deep” into a conversation. * You can pop back out to your terminal context with `esc` at any time. * Starting a new conversation creates a new thread rather than mixing unrelated topics. ### Using slash commands **In an agent conversation** While you’re in an agent conversation, you can access Warp’s [slash commands](https://docs.warp.dev/agent-platform/agent/slash-commands) any time by typing `/` in the input. * Type `/` to open the command menu * Keep typing to filter commands (for example: `/conversations`, `/compact`) * Use `↑` / `↓` to navigate and Enter to run * Press `esc` to dismiss the menu Slash commands are a quick way to take common actions without leaving the keyboard, like opening conversation history, compacting context, or kicking off guided flows. **In terminal mode** Slash commands aren’t just for agent conversations. You can also type `/` in the normal terminal mode to open a limited set of commands. **In general** * Agent conversations expose the full set of slash commands (more agent-specific actions). * Terminal mode exposes a reduced set focused on quick, lightweight actions. *** ### Keyboard shortcuts (quick reference) In conversation view (agent mode), press `?` to show/hide shortcuts. Common ones include: * `!` → shell mode * prepend this to your input to force shell mode. * `/` → agent commands * `@` → file paths / attach context * `esc` → exit conversation * `⌘⇧I` → toggle auto-accept * `^C` → stop * `⌘⇧+` → open code review * `⌘⇧H` → toggle conversation list * `?` → show/hide shortcuts {% hint style="info" %} Availability of keyboard shortcuts may vary while this feature is in Preview. {% endhint %} ### Known gaps / rough edges (Preview) Agent modality is in active development. You might notice: * Not every control from the old UI is present everywhere yet (e.g., some switchers or entry points). * Visual treatments, like conversation background shading, may change before stable release. * Some shortcut hints or in-product help text may be incomplete. **Share feedback** The most helpful details to include are: * what you expected * what happened instead * whether auto-detection got it wrong * your OS + Warp version * screenshots or a short recording --- # Source: https://docs.warp.dev/agent-platform/agent/using-agents/agent-profiles-permissions.md # Agent Profiles & Permissions ## Agent Profiles Agent Profiles let you configure how your Agent behaves in different situations. Each profile defines the Agent's autonomy, base models, and tool access. You can create multiple profiles and edit them directly in `Settings > AI > Agents > Profiles`. * **Default profile**: Every user starts with a default profile, you can edit it at any time, and new profiles will copy its settings as a starting point. * **Other profiles**: Set up different profiles for different workflows (e.g., "Safe & cautious", "YOLO mode", etc.). Manage them in the Profiles settings menu.

Agent Profiles in Settings: define how your Agent operates.

**In each Agent Profile, you can configure:** * The name of the profile * **Base model**: The core engine for your Agent. It handles most interactions and invokes other models when needed (e.g. for code generation). * This model is also used for [Planning](https://docs.warp.dev/agent-platform/agent/using-agents/planning), which is responsible for breaking down complex tasks into actionable steps. It generates structured execution plans and decides how to route work between models. * Agent autonomy and permissions

Agent Profiles in Settings: editing a Profile.

## Agent Permissions Agent Permissions let you define how your Agent in a specific Profile operates — control its autonomy, choose what tools or MCP servers it can access, and set when it should act independently or ask for approval. You can control how much autonomy the Agent has when performing different types of actions under `Settings > AI > Agents > Profiles > Permissions` . Agent permission types: * Apply code diffs * Read files * Create plans * Execute commands * Interact with running commands (via [Full Terminal Use](https://docs.warp.dev/agent-platform/agent/full-terminal-use))

Fine-tuning agent control: This permissions panel lets users customize how much autonomy the Agent has when applying code diffs, reading files, creating plans, and executing commands.

**Each permission has different levels of autonomy:**
Autonomy levelDescription
Agent DecidesAgent will act autonomously when it's confident, but prompt for approval when uncertain. This option balances speed with control, allowing the Agent to go ahead with common workflows while keeping you in the loop for more complex or risky steps.
Always askAgent will request explicit user approval before taking any action. Choose this for sensitive actions.
Always allowAgent will perform the action without ever requesting explicit conformation. Use this for tasks you fully trust the Agent to handle on its own.
NeverAgent will not ever take the action (i.e. Create plans).
{% hint style="info" %} When all Agent permissions are set to **Always allow**, the Agent gains full autonomy (“YOLO mode”); however, any denylist rules will still override these settings. {% endhint %} ### Command allowlist The Warp Agent lets you define an allowlist of commands that run automatically without confirmation. It’s empty by default, but users often add read-only commands such as: * `which .*` - Find executable locations * `ls(\s.*)?` - List directory contents * `grep(\s.*)?` - Search file contents * `find .*` - Search for files * `echo(\s.*)?` - Print text output You can add your own regular expressions to this list in `Settings > AI > Agents > Command allowlist`. Commands in the allowlist will always auto-execute, even if they are not read-only operations.

Command allowlist and denylists as part of an Agent Profile.

### Command denylist For safety, the Agent always prompts for confirmation before executing potentially risky commands. The default denylist includes several examples, such as: * `wget(\s.*)?` - Network downloads * `curl(\s.*)?` - Network requests * `rm(\s.*)?` - File deletion * `eval(\s.*)?` - Shell code execution The denylist takes precedence over both the allowlist and `Agent decides`. If a command matches the denylist, user permission will always be required, regardless of other settings. You can add your own regular expressions to this list in `Settings > AI > Agents > Command denylist`. ### MCP permissions MCP servers let you extend the Agent with custom tools and data sources using standardized, plugin-like modules. In this settings menu, you can configure which MCP servers the Agent is allowed to call: * Use the MCP allowlist to give the Agent permission to call specific servers without asking. * Use the MCP denylist to require approval before calling certain servers, even if they’re also in the allowlist. * Or set the Agent to “decide” — it will act autonomously when confident, and ask for confirmation when uncertain.

Customize how the Agent interacts with MCP servers by choosing between “Agent decides,” allowlist, or denylist settings.

{% hint style="info" %} To learn how to build and configure your own MCP server, check out the [MCP feature docs](https://docs.warp.dev/knowledge-and-collaboration/mcp). {% endhint %} ## Run until completion During an Agent interaction, you can give the Agent full autonomy for the current task. When auto-approve is on, every suggested command runs immediately until the task finishes, or you stop it with `Ctrl + C`. {% tabs %} {% tab title="macOS" %} Auto-approve all Agent actions with: `CMD + SHIFT + I` {% endtab %} {% tab title="Windows" %} Auto-approve all Agent actions with: `CTRL + SHIFT + I` {% endtab %} {% tab title="Linux" %} Auto-approve all Agent actions with: `CTRL + SHIFT + I` {% endtab %} {% endtabs %}

A button overlay in the lower-right corner lets you enable auto-approve or end the Agent interaction.

{% hint style="info" %} *Run until completion* ignores the denylist entirely. It’s the purest form of “YOLO” mode and essentially a fully “autonomous mode” where the Agent proceeds without asking for confirmation. {% endhint %} --- # Source: https://docs.warp.dev/agent-platform/ambient-agents/agent-secrets.md # Agent Secrets Ambient agents often need to interact with external systems such as APIs, databases, cloud providers, or internal tooling. To do this safely, Warp provides Warp-managed **agent secrets**, a secure way to store, scope, and inject credentials into ambient agent runs without exposing secret values to users or logs. Warp-managed secrets are designed to work across [ambient agent](https://docs.warp.dev/agent-platform/ambient-agents/ambient-agents-overview) and [integration](https://docs.warp.dev/agent-platform/integrations/integrations-overview) triggers (CLI, Slack, Linear, and schedules), support both team-wide and personal credentials, and give engineering and security teams visibility into what agents can access. **Warp-managed secrets are useful when:** * An ambient agent needs to call an API or CLI that does not support OAuth * You are using [MCP servers](https://docs.warp.dev/agent-platform/ambient-agents/mcp-servers-for-agents) that expect static tokens or keys * An agent needs credentials for tools like cloud CLIs, databases, monitoring systems, or internal services * You want centralized auditing and control over what credentials agents can access ### Common use cases * Run SQL queries against BigQuery or Metabase to answer questions like “what changed in last night’s pipeline run” or “how many users hit this error today,” using a read-only service account or API token. * Call cloud or infrastructure CLIs to take small, predefined remediation steps when an alert fires, such as restarting a service, scaling a deployment, or clearing a stuck job, using tightly scoped credentials. * List and review all API keys, service accounts, and tokens that ambient agents can access to verify scopes, rotation policies, and ownership match internal security requirements. *** ### How Warp-managed secrets work Warp provides a set of CLI commands for creating, updating, and listing secrets. Secret values are stored securely and cannot be retrieved once created. At runtime, **Warp sets the relevant secrets as environment variables** for each ambient agent run, based on who triggered the agent and how it was triggered. {% hint style="info" %} Secret values are available only to the agent process (and any subprocesses it spawns) during execution, and **can’t be viewed or retrieved afterward.** {% endhint %} Key properties of secrets: * **Scoped** to either a team or an individual user * Secret values are **never readable after creation** (only metadata is visible) * **Automatically set** for ambient agent runs when in scope ### Secret scopes Each secret has a scope that determines who can use it. #### Team secrets Team secrets are shared across the entire team and are available to all ambient agents running on behalf of the team. **Key characteristics:** * Always injected into ambient agent runs, regardless of how the agent is triggered (CLI, Slack, Linear, or scheduled runs) * Available to agents running with or without a specific user context * Ideal for shared infrastructure credentials, service accounts, and read-only API keys {% hint style="info" %} Because team secrets are broadly available and may be used by fully automated or scheduled agents, they should generally be created **using bot or service accounts**, rather than credentials tied to an individual person. {% endhint %} **For example:** * Use a Metabase service account or read-only API token, not a personal Metabase API key * Use cloud provider service accounts with minimal required permissions * Use integration-specific tokens created for automation This ensures credentials remain valid as team membership changes, permissions are tightly scoped, and ownership and rotation align with internal security policies. #### Personal secrets Personal secrets belong to an **individual user**. * Only available to ambient agents triggered by that user * Not accessible to teammates or user-less triggers * Useful for personal API keys or credentials tied to an individual account *** ## Managing agent secrets with the Warp CLI Secrets are managed using the warp secret command family. You can create secrets interactively or from a file. **Create a team secret interactively** ```bash warp secret create --team --name "METABASE_API_KEY" ``` You will be prompted to enter the value securely in the terminal. **Create a personal secret from a file** ```bash warp secret create --personal --name "METABASE_API_KEY" --value-file api_key.txt ``` This is useful for long values such as JSON blobs or private keys. #### Adding descriptions Descriptions help with auditing and rotation tracking. ```bash warp secret create --team \ --name "MY_SECRET" \ --description "Rotate every 2 weeks; owned by platform team" ``` Descriptions are visible in listings but never expose the secret value. #### Updating a secret Updating a secret replaces its value while keeping the same name and scope. ```bash warp secret update --team \ --name "METABASE_API_KEY" \ --value-file new_api_key.txt ``` This is the recommended way to rotate credentials. #### Listing secrets You can list all secrets you have access to. ```bash warp secret list ``` Example output: ```bash NAME SCOPE LAST UPDATED METABASE_API_KEY team 1 week ago GCP_SERVICE_ACCOUNT_JSON team yesterday MY_MCP_SERVER_TOKEN personal 10:00am ``` **Secret values are never displayed.** ### How secrets are made available to ambient agents When an ambient agent starts, Warp determines which secrets are in scope and sets them as environment variables in the agent’s execution environment. Today, secrets are provided as environment variables using the secret name as the variable name. For example: ```bash METABASE_API_KEY=******** ``` *** ### Secret availability by trigger type Which secrets an agent receives depends on how the agent was triggered. #### User-initiated triggers When an agent is triggered by a specific user, such as: * Warp CLI * Slack mentions * Linear updates **The agent receives:** * All team-level secrets * The triggering user’s personal secrets It **does not receive personal secrets** belonging to other team members. When an agent is triggered without a user context, such as: * [Scheduled (cron) agents](https://docs.warp.dev/agent-platform/ambient-agents/managing-ambient-agents/scheduled-agents) * Fully automated [integrations](https://docs.warp.dev/agent-platform/integrations/integrations-overview) The agent receives: * Team-level secrets only {% hint style="warning" %} Personal secrets are never injected in these cases. {% endhint %} *** ### Auditing and security considerations Warp is designed to make secret usage auditable and predictable: * Secret values cannot be read or exported after creation * All secrets are explicitly scoped to a team or user * Engineering and security leads can list all secrets available to them * Rotation is handled by updating secrets in place * Ambient agents only receive secrets that are in scope for the trigger **Teams remain responsible for:** * Choosing appropriate scopes for each secret * Limiting permissions on external systems (for example, read-only API keys) * Rotating credentials according to internal policies * Managing which agents and triggers exist within their environment --- # Source: https://docs.warp.dev/knowledge-and-collaboration/session-sharing/agent-session-sharing.md # Agent Session Sharing **Agent Session Sharing** extends Warp's regular [Session Sharing](https://docs.warp.dev/knowledge-and-collaboration/session-sharing) to include full visibility and control over Agent activity. Anyone viewing a shared session can now see Agent messages, thinking indicators, credit usage, and, if granted permission, send their own Agent queries from the shared environment. {% embed url="" %} This makes it simple to demo AI workflows, pair on debugging, or walk someone through an Agent-powered task remotely. ### Built on top of Session Sharing Agent Session Sharing adds the following capabilities to standard Session Sharing: * View Agent prompts, responses, and conversation threads * See live “thinking” states and credit consumption * Start new Agent conversations from a shared session * Switch between conversations * Let collaborators send their own Agent queries when granted edit access ### How it works #### 1. Start sharing as usual Open a session and share it through: * Command Palette * Pane header overflow menu * Right-click context menu Choose your starting point (full scrollback, no scrollback, or a specific block), just like standard Session Sharing.

Start a shared session via the right click menu.

Start a shared session via the Command Palette.

#### 2. Open the shared session on another device Viewers can join from: * The Warp desktop app * The Web viewer (no installation required) The web experience mirrors the desktop view and shows complete Agent activity in real time. #### 3. Watch Agent actions unfold Viewers see: * Agent thinking animations * Tool use * Planning steps * [AI Credits](https://docs.warp.dev/support-and-community/plans-and-billing/ai-credits) usage * Final responses This happens live as the sharer interacts with the Agent. #### 4. Grant edit access for collaborative Agent use If a viewer requests edit access, the sharer can approve it. Once approved, collaborators can: * Send new Agent queries * Type directly into the prompt * Execute commands * Start and switch Agent conversations * Run terminal commands alongside Agent queries Multiple collaborators can participate at the same time. Each viewer’s cursor, avatar, and actions appear in the shared session. *** ### Multi-viewer collaboration Agent Session Sharing works seamlessly with multiple participants. Viewers may join from different machines, browsers, or environments, and all will: * See each other’s avatars * Watch Agent activity in sync * Edit together if granted access * Run terminal or Agent commands concurrently The experience is consistent for every participant — desktop or web. --- # Source: https://docs.warp.dev/agent-platform/agent/using-agents/agent-tasklists.md # Agent Task Lists The Agent can automatically break down complex requests into clear, trackable steps in the form of a task list with to-do items.\ \ When you make a sufficiently complex request that requires multiple actions, the Agent will automatically create a list of steps, execute them in order, and track progress from start to finish. There’s no need to adjust settings or enable a special mode—the Agent detects and creates task lists automatically.

An example of a Task List in progress.

### **How Task Lists work** 1. **Automatic task creation** — For complex requests, the Agent generates a structured list of tasks to complete. 2. **Step-by-step execution** — The Agent works through each task in sequence, updating statuses in real time. 3. **Summary** — Once all tasks are complete, the Agent provides a concise summary of what was done, including outputs, results, and relevant context. If any tasks were skipped or couldn’t be completed, it explains why. After each step is completed, there is also a completion marker in the Agent conversation.

Completion markers inside the Agent conversation after each task is completed.

### Task statuses Each task in the list has a visual indicator so you can quickly see its progress.
StatusIconMeaning
Current task● (filled circle)The Agent is actively working on this task.
Completed✔︎The Agent has finished this task successfully.
Not started○ (empty circle)The task is in the queue but work hasn’t begun.
Cancelled■ (filled square)The task was stopped before completion.
### Task List access During any Agent conversation, a task list chip appears at the bottom-right of the screen (when input is pinned to the bottom; otherwise, it may appear along the right side). * Click the chip to open the current task list. * You can collapse or expand the view at any time without interrupting the Agent.

Access the Task List during an Agent conversation in the Task List chip in the conversation.

--- # Source: https://docs.warp.dev/reference/api-and-sdk/api-and-sdk/agent.md # Agent ## Run an agent task > Spawn an ambient agent with a prompt and optional configuration.\ > The agent will be queued for execution and assigned a unique run ID.
```json {"openapi":"3.0.0","info":{"title":"Warp Public Agent API","version":"1.0.0"},"servers":[{"url":"https://app.warp.dev/api/v1","description":"Production server"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Authentication via personal API key or service account credentials.\n"}},"schemas":{"RunAgentRequest":{"type":"object","required":["prompt"],"properties":{"prompt":{"type":"string","description":"The prompt/instruction for the agent to execute"},"config":{"$ref":"#/components/schemas/AmbientAgentConfig"},"title":{"type":"string","description":"Custom title for the run (auto-generated if not provided)"},"team":{"type":"boolean","description":"Make the run visible to all team members, not only the calling user","default":false}}},"AmbientAgentConfig":{"type":"object","description":"Configuration for an ambient agent run","properties":{"name":{"type":"string","description":"Config name for searchability and traceability"},"model_id":{"type":"string","description":"LLM model to use (uses team default if not specified)"},"base_prompt":{"type":"string","description":"Custom base prompt for the agent"},"environment_id":{"type":"string","description":"UID of the environment to run the agent in"},"mcp_servers":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/MCPServerConfig"},"description":"Map of MCP server configurations by name"}}},"MCPServerConfig":{"type":"object","description":"Configuration for an MCP server. Must have exactly one of: warp_id, command, or url.\n","properties":{"warp_id":{"type":"string","description":"Reference to a Warp shared MCP server by UUID"},"command":{"type":"string","description":"Stdio transport - command to run"},"args":{"type":"array","items":{"type":"string"},"description":"Stdio transport - command arguments"},"url":{"type":"string","format":"uri","description":"SSE/HTTP transport - server URL"},"env":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variables for the server"},"headers":{"type":"object","additionalProperties":{"type":"string"},"description":"HTTP headers for SSE/HTTP transport"}}},"RunAgentResponse":{"type":"object","required":["run_id","state"],"properties":{"run_id":{"type":"string","description":"Unique identifier for the created run"},"state":{"$ref":"#/components/schemas/RunState"}}},"RunState":{"type":"string","enum":["QUEUED","PENDING","CLAIMED","INPROGRESS","SUCCEEDED","FAILED"],"description":"Current state of the run:\n- QUEUED: Run is waiting to be picked up\n- PENDING: Run is being prepared\n- CLAIMED: Run has been claimed by a worker\n- INPROGRESS: Run is actively being executed\n- SUCCEEDED: Run completed successfully\n- FAILED: Run failed\n"},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Human-readable error message"}}}}},"paths":{"/agent/run":{"post":{"summary":"Run an agent task","description":"Spawn an ambient agent with a prompt and optional configuration.\nThe agent will be queued for execution and assigned a unique run ID.\n","operationId":"runAgent","tags":["agent"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunAgentRequest"}}}},"responses":{"200":{"description":"Run created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunAgentResponse"}}}},"400":{"description":"Invalid request (missing prompt, invalid config)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"No permission to access referenced resources (environment, MCP servers)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}} ``` ## List agent runs > Retrieve a paginated list of agent runs with optional filtering.\ > Results are ordered by creation time (newest first).
```json {"openapi":"3.0.0","info":{"title":"Warp Public Agent API","version":"1.0.0"},"servers":[{"url":"https://app.warp.dev/api/v1","description":"Production server"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Authentication via personal API key or service account credentials.\n"}},"schemas":{"RunState":{"type":"string","enum":["QUEUED","PENDING","CLAIMED","INPROGRESS","SUCCEEDED","FAILED"],"description":"Current state of the run:\n- QUEUED: Run is waiting to be picked up\n- PENDING: Run is being prepared\n- CLAIMED: Run has been claimed by a worker\n- INPROGRESS: Run is actively being executed\n- SUCCEEDED: Run completed successfully\n- FAILED: Run failed\n"},"RunSourceType":{"type":"string","enum":["LINEAR","API","SLACK","LOCAL","SCHEDULED_AGENT"],"description":"Source that created the run:\n- LINEAR: Created from Linear integration\n- API: Created via the Warp API\n- SLACK: Created from Slack integration\n- LOCAL: Created from local CLI/app\n- SCHEDULED_AGENT: Created by a scheduled agent\n"},"ListRunsResponse":{"type":"object","required":["runs","page_info"],"properties":{"runs":{"type":"array","items":{"$ref":"#/components/schemas/RunItem"}},"page_info":{"$ref":"#/components/schemas/PageInfo"}}},"RunItem":{"type":"object","required":["run_id","title","state","prompt","created_at","updated_at"],"properties":{"run_id":{"type":"string","description":"Unique identifier for the run"},"title":{"type":"string","description":"Human-readable title for the run"},"state":{"$ref":"#/components/schemas/RunState"},"prompt":{"type":"string","description":"The prompt/instruction for the agent"},"created_at":{"type":"string","format":"date-time","description":"Timestamp when the run was created (RFC3339)"},"updated_at":{"type":"string","format":"date-time","description":"Timestamp when the run was last updated (RFC3339)"},"started_at":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp when the agent started working on the run (RFC3339)"},"status_message":{"$ref":"#/components/schemas/RunStatusMessage"},"source":{"$ref":"#/components/schemas/RunSourceType"},"session_id":{"type":"string","description":"UUID of the shared session (if available)"},"session_link":{"type":"string","format":"uri","description":"URL to view the agent session"},"creator":{"$ref":"#/components/schemas/RunCreatorInfo"},"agent_config":{"$ref":"#/components/schemas/AmbientAgentConfig"}}},"RunStatusMessage":{"type":"object","properties":{"message":{"type":"string","description":"Human-readable status message"}}},"RunCreatorInfo":{"type":"object","properties":{"type":{"type":"string","enum":["user","service_account"],"description":"Type of the creator principal"},"uid":{"type":"string","description":"Unique identifier of the creator"}}},"AmbientAgentConfig":{"type":"object","description":"Configuration for an ambient agent run","properties":{"name":{"type":"string","description":"Config name for searchability and traceability"},"model_id":{"type":"string","description":"LLM model to use (uses team default if not specified)"},"base_prompt":{"type":"string","description":"Custom base prompt for the agent"},"environment_id":{"type":"string","description":"UID of the environment to run the agent in"},"mcp_servers":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/MCPServerConfig"},"description":"Map of MCP server configurations by name"}}},"MCPServerConfig":{"type":"object","description":"Configuration for an MCP server. Must have exactly one of: warp_id, command, or url.\n","properties":{"warp_id":{"type":"string","description":"Reference to a Warp shared MCP server by UUID"},"command":{"type":"string","description":"Stdio transport - command to run"},"args":{"type":"array","items":{"type":"string"},"description":"Stdio transport - command arguments"},"url":{"type":"string","format":"uri","description":"SSE/HTTP transport - server URL"},"env":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variables for the server"},"headers":{"type":"object","additionalProperties":{"type":"string"},"description":"HTTP headers for SSE/HTTP transport"}}},"PageInfo":{"type":"object","required":["has_next_page"],"properties":{"has_next_page":{"type":"boolean","description":"Whether there are more results available"},"next_cursor":{"type":"string","description":"Opaque cursor for fetching the next page"}}},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Human-readable error message"}}}}},"paths":{"/agent/runs":{"get":{"summary":"List agent runs","description":"Retrieve a paginated list of agent runs with optional filtering.\nResults are ordered by creation time (newest first).\n","operationId":"listRuns","tags":["agent"],"parameters":[{"name":"limit","in":"query","description":"Maximum number of runs to return","required":false,"schema":{"type":"integer","minimum":1,"maximum":500,"default":20}},{"name":"cursor","in":"query","description":"Pagination cursor from previous response","required":false,"schema":{"type":"string"}},{"name":"state","in":"query","description":"Filter by run state. Can be specified multiple times to match any of the given states.\n","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/RunState"}},"style":"form","explode":true},{"name":"config_name","in":"query","description":"Filter by agent config name","required":false,"schema":{"type":"string"}},{"name":"model_id","in":"query","description":"Filter by model ID","required":false,"schema":{"type":"string"}},{"name":"creator","in":"query","description":"Filter by creator UID (user or service account)","required":false,"schema":{"type":"string"}},{"name":"source","in":"query","description":"Filter by run source type","required":false,"schema":{"$ref":"#/components/schemas/RunSourceType"}},{"name":"created_after","in":"query","description":"Filter runs created after this timestamp (RFC3339 format)","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"created_before","in":"query","description":"Filter runs created before this timestamp (RFC3339 format)","required":false,"schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"List of runs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListRunsResponse"}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}} ``` ## Get run details > Retrieve detailed information about a specific agent run, \ > including the full prompt, session link, and resolved configuration.
```json {"openapi":"3.0.0","info":{"title":"Warp Public Agent API","version":"1.0.0"},"servers":[{"url":"https://app.warp.dev/api/v1","description":"Production server"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Authentication via personal API key or service account credentials.\n"}},"schemas":{"RunItem":{"type":"object","required":["run_id","title","state","prompt","created_at","updated_at"],"properties":{"run_id":{"type":"string","description":"Unique identifier for the run"},"title":{"type":"string","description":"Human-readable title for the run"},"state":{"$ref":"#/components/schemas/RunState"},"prompt":{"type":"string","description":"The prompt/instruction for the agent"},"created_at":{"type":"string","format":"date-time","description":"Timestamp when the run was created (RFC3339)"},"updated_at":{"type":"string","format":"date-time","description":"Timestamp when the run was last updated (RFC3339)"},"started_at":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp when the agent started working on the run (RFC3339)"},"status_message":{"$ref":"#/components/schemas/RunStatusMessage"},"source":{"$ref":"#/components/schemas/RunSourceType"},"session_id":{"type":"string","description":"UUID of the shared session (if available)"},"session_link":{"type":"string","format":"uri","description":"URL to view the agent session"},"creator":{"$ref":"#/components/schemas/RunCreatorInfo"},"agent_config":{"$ref":"#/components/schemas/AmbientAgentConfig"}}},"RunState":{"type":"string","enum":["QUEUED","PENDING","CLAIMED","INPROGRESS","SUCCEEDED","FAILED"],"description":"Current state of the run:\n- QUEUED: Run is waiting to be picked up\n- PENDING: Run is being prepared\n- CLAIMED: Run has been claimed by a worker\n- INPROGRESS: Run is actively being executed\n- SUCCEEDED: Run completed successfully\n- FAILED: Run failed\n"},"RunStatusMessage":{"type":"object","properties":{"message":{"type":"string","description":"Human-readable status message"}}},"RunSourceType":{"type":"string","enum":["LINEAR","API","SLACK","LOCAL","SCHEDULED_AGENT"],"description":"Source that created the run:\n- LINEAR: Created from Linear integration\n- API: Created via the Warp API\n- SLACK: Created from Slack integration\n- LOCAL: Created from local CLI/app\n- SCHEDULED_AGENT: Created by a scheduled agent\n"},"RunCreatorInfo":{"type":"object","properties":{"type":{"type":"string","enum":["user","service_account"],"description":"Type of the creator principal"},"uid":{"type":"string","description":"Unique identifier of the creator"}}},"AmbientAgentConfig":{"type":"object","description":"Configuration for an ambient agent run","properties":{"name":{"type":"string","description":"Config name for searchability and traceability"},"model_id":{"type":"string","description":"LLM model to use (uses team default if not specified)"},"base_prompt":{"type":"string","description":"Custom base prompt for the agent"},"environment_id":{"type":"string","description":"UID of the environment to run the agent in"},"mcp_servers":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/MCPServerConfig"},"description":"Map of MCP server configurations by name"}}},"MCPServerConfig":{"type":"object","description":"Configuration for an MCP server. Must have exactly one of: warp_id, command, or url.\n","properties":{"warp_id":{"type":"string","description":"Reference to a Warp shared MCP server by UUID"},"command":{"type":"string","description":"Stdio transport - command to run"},"args":{"type":"array","items":{"type":"string"},"description":"Stdio transport - command arguments"},"url":{"type":"string","format":"uri","description":"SSE/HTTP transport - server URL"},"env":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variables for the server"},"headers":{"type":"object","additionalProperties":{"type":"string"},"description":"HTTP headers for SSE/HTTP transport"}}},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Human-readable error message"}}}}},"paths":{"/agent/runs/{runId}":{"get":{"summary":"Get run details","description":"Retrieve detailed information about a specific agent run, \nincluding the full prompt, session link, and resolved configuration.\n","operationId":"getRun","tags":["agent"],"parameters":[{"name":"runId","in":"path","description":"The unique identifier of the run","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Run details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunItem"}}}},"400":{"description":"Missing run ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"No permission to access run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Run not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}} ``` --- # Source: https://docs.warp.dev/getting-started/readme/agents-in-warp.md # Agents in Warp Describe what you want to do (*you can even use your voice*), and Warp’s agents will intelligently take action using your environment, codebase, and saved context to tailor their responses. **Agents can:** 1. Write and edit code across single or multiple files. 2. Fix errors based on output or stack traces. 3. Execute shell commands and use the output to guide next steps 4. Automatically recover from common errors and retry with adjustments. 5. Learn and integrate with any tool that offers public docs or `--help`. 6. Leverage your saved [Warp Drive](https://docs.warp.dev/knowledge-and-collaboration/warp-drive) contents, [MCP servers](https://docs.warp.dev/knowledge-and-collaboration/mcp), and [Rules](https://docs.warp.dev/knowledge-and-collaboration/rules) to provide tailored responses. **Give this prompt a try —** [*open the below Prompt in Warp*](https://app.warp.dev/drive/prompt/Clone-and-install-Warps-themes-repository-PkK9Zw16SCD3JKzOUoGuj4) {% code overflow="wrap" %} ```markup Detect my current operating system. Based on that, navigate to the appropriate Warp themes directory (e.g. ~/.warp/ on macOS). Then, clone the official Warp themes repository using SSH (git@github.com:warpdotdev/themes.git) into that directory, following the structure and instructions provided in the repo’s README. If SSH does not work, try HTTPS (https://github.com/warpdotdev/themes.git) or via the GitHub CLI (gh repo clone warpdotdev/themes). ``` {% endcode %} ### Agent Autonomy Under `Settings > AI > Agents > Permissions`, you can control how much autonomy the agent has when performing different types of actions, such as: * Reading files * Creating plans * Executing commands * Calling MCP servers, and more For each action, you can set the autonomy level to one of the following: * Let the agent decide * Always prompt for confirmation * Always allow * Never You can also configure an **allowlist** and **denylist** for specific commands you always want to run—either with or without confirmation. ### Agent Profiles Define profiles in `Settings > AI` with unique permissions and model choices. You can switch profiles at any time by clicking the "profile" icon in Warp's input area. In addition to your default permissions, you may create: * YOLO mode: Loose permissions for using in personal projects * Prod mode: Limit AI permissions to "Always Ask" when in high-risk environments like your production server ### Managing multiple agents You can run multiple agents in Warp simultaneously, monitor their status, and step in when needed—without losing track of what’s happening across your sessions. Each tab includes a [status icon](https://docs.warp.dev/agent-platform/agent/using-agents/managing-agents#agent-status-indicators) that shows the agent’s current state. All of your active agents are tracked in the [Agent Management Panel](https://docs.warp.dev/agent-platform/agent/using-agents/managing-agents#agent-management-panel), located in the top-right corner next to your avatar. Agents will also [notify](https://docs.warp.dev/agent-platform/agent/using-agents/managing-agents#agent-status-indicators) you when they need input, such as permission to run a command or approval to apply a code diff. This lets you focus on other work, knowing you’ll be alerted when your attention is required. --- # Source: https://docs.warp.dev/agent-platform/agent/agents-overview.md # Agents Overview ## AI in Warp Warp includes intelligent agents designed to help you build, test, deploy, and debug while keeping you in control. Agents can look up commands, execute tasks, fix bugs, and adapt to your workflows. You can manage agent behavior directly, with full context from your Warp Drive and your team. {% hint style="info" %} Warp's AI features can be globally disabled in `Settings > AI` with the AI toggle.\ \ These features send input data to various LLM providers through their API. Warp is **SOC 2 compliant** and has **Zero Data Retention** policies with all contracted LLM providers -- no customer AI data is retained, store, or used for training. Read more about data privacy for Warp features [on our privacy page](https://www.warp.dev/privacy). {% endhint %} ## Included Agent features: * [Agents](https://docs.warp.dev/agent-platform/agent/using-agents) - Run and manage multiple agents natively in Warp using natural language. * [Agent Conversations](https://docs.warp.dev/agent-platform/agent/using-agents/agent-conversations) - Warp organizes your AI interactions into conversations tied to sessions, allowing you to attach context blocks, continue previous conversations, or start new threads for distinct tasks. * [Agent Context](https://docs.warp.dev/agent-platform/agent/using-agents/agent-context) - Attach multimodal context directly to Warp’s Agent within the prompt. * [Full Terminal Use](https://docs.warp.dev/agent-platform/agent/full-terminal-use) - Lets Warp’s agent drive interactive terminal apps—seeing live output, running commands and keystrokes, and handing control back to you whenever you want. * [Managing Agents](https://docs.warp.dev/agent-platform/agent/using-agents/managing-agents) - Track, control, and configure all active agents in Warp using visual status indicators, in-app notifications, and the Agent Management Panel. * [Agent Profiles and Permissions](https://docs.warp.dev/agent-platform/agent/using-agents/agent-profiles-permissions) - Set up Profiles to control what permissions and autonomy Agents have to run commands, apply code changes, and more. * [Planning](https://docs.warp.dev/agent-platform/agent/using-agents/planning) - turn any Agent request into an organized, editable, and executable plan that the agent can run step-by-step with full visibility and version control. * [Agent Task Lists](https://docs.warp.dev/agent-platform/agent/using-agents/agent-tasklists) - Track and manage complex workflows with automatic task lists that break requests into clear, actionable steps and update progress in real time. * [Model Choice](https://docs.warp.dev/agent-platform/agent/using-agents/model-choice) - Pick your preferred LLM for Warp’s Agent from a curated set of the top models, or rely on Warp to choose the optimal model. * [Active AI](https://docs.warp.dev/agent-platform/agent/active-ai) - Proactively recommends fixes and next actions based on errors, inputs, and outputs. * [Model Context Protocol](https://docs.warp.dev/knowledge-and-collaboration/mcp) - Expose data sources or tools to Warp’s Agents via MCP Servers. * [Rules](https://docs.warp.dev/knowledge-and-collaboration/rules) - Create and store Global and Project Rules to set guidelines and constraints for Agents. * [Voice](https://docs.warp.dev/agent-platform/agent/voice) - Talk to Warp AI using voice commands to accomplish tasks. * [AI Autofill in Warp Drive](https://docs.warp.dev/knowledge-and-collaboration/warp-drive/workflows#ai-autofill) - let Warp's Agent name and describe the workflows you create. --- # Source: https://docs.warp.dev/support-and-community/plans-and-billing/ai-credits.md # AI Credits ### What are Warp AI credits? Each time you submit a prompt in Warp, whether to generate code, suggest a command, or accomplish a task, you initiate an interaction with the Agent. This interaction consumes **at least one AI credit**, though more complex interactions may use **multiple credits**. The number of credits consumed can vary based on factors such as your codebase and environment, the model used, number of tool calls the agent makes, amount of context gathered, steps required to accomplish the given task, and other factors. Because of these factors and the nature of LLMs, AI credit usage is **non-deterministic** -- two similar prompts can still use a different number of credits. {% hint style="info" %} For a general breakdown of what factors contribute to how many AI credits are consumed, please refer to: [How are Warp AI credits calculated?](#how-are-warp-ai-credits-calculated) {% endhint %} Since there's no exact formula for predicting usage, we recommend building an intuitive understanding by experimenting with different prompts, models, and tracking how many credits they consume. **Tracking your AI credit usage** In an Agent conversation, a **turn** represents a single exchange (a response from the LLM). To see how many credits a turn consumed, hover over the **credit count chip** at the bottom of the Agent's response:

The conversation AI usage footer shows how many credits a conversation has consumed, and breaks down the usage by credits, tool calls, context window, files changed, diffs applied, and more.

{% hint style="info" %} You can view your total AI credit usage, along with other billing details, in `Settings > Billing and usage`. {% endhint %} #### Credit **limits and billing** * **Seat-level allocation**: on team plans, credit limits apply per seat — each team member has their own allowance. * **Hitting the credit limits**: Once you hit your monthly credit limit, your access will depend on your plan. On the Free plan, AI access stops until your next billing cycle. On paid plans with Add-on credits, you can continue using AI with [**usage-based billing**](https://docs.warp.dev/support-and-community/plans-and-billing/add-on-credits), charged per extra credit. #### **Other features that use AI** credit**s** In addition to direct Agent conversations, the following features also consume AI credits: * [Generate](https://docs.warp.dev/agent-platform/agent/generate) helps you look up commands and suggestions as you type. As you refine your input, multiple credits may be used before you select a final suggestion. * [AI Autofill in Workflows](https://docs.warp.dev/warp/knowledge-and-collaboration/warp-drive/workflows#ai-autofill) count as a credit each time it is run. {% hint style="success" %} Regular shell commands in Warp do not consume or count towards AI credits. {% endhint %} ### How are Warp AI credits calculated? An **AI credit** in Warp is a unit of work representing the total processing required to complete an interaction with an AI Agent. It is **not** the same as “one user message” — instead, it scales with the number of tokens processed during the interaction. In short: **the more tokens used, the more AI** credit**s consumed**. Several factors influence how many credits are counted for a single interaction: #### **1. The LLM model used** Generally, smaller, faster models typically consume fewer credits than larger, reasoning-based models. For example, **Claude Opus 4.1** tends to consume the most tokens and credits in Warp, followed by **Claude Sonnet 4.5, GPT-5, Gemini 2.5 Pro**, and others in roughly that order. This generally correlates with model pricing as well. {% hint style="info" %} **Tip**: If your task doesn't require deep reasoning, planning, or multi-step problem solving, choose a more lightweight model to reduce credit usage. {% endhint %} #### 2. Tool calls triggered by the Agent Warp's Agents make a variety of tool calls, including: * Searching for files (grep) * Retrieving and reading files * Making and applying code diffs * Gathering web or documentation context * Running other utilities Some prompts require only a couple of tool calls, while others may trigger many — especially if the Agent needs to explore your development environment, navigate a large codebase, or apply complex changes. **More tool calls = more credits**. #### 3. Task complexity and number of steps Some tasks are straightforward and may require only a single quick response, without much thinking or reasoning. Others can involve multiple stages—such as planning, generating intermediate outputs, verifying results, applying changes, and self-correcting—each of which can add to the credits count. {% hint style="info" %} **Tip**: Keep tasks that you give to the Agent well-scoped, work incrementally, and break large changes into smaller, contained steps. {% endhint %} #### 4. Amount of context passed to the model Prompts that include large amounts of context (such as [attached blocks](https://docs.warp.dev/agent-platform/agent/using-agents/agent-context/#attaching-blocks-as-context), long user query messages, etc.) or file attachments like [images](https://docs.warp.dev/agent-platform/agent/using-agents/agent-context/#attaching-images-as-context) may also increase the number of credits used due to increased token consumption. {% hint style="info" %} **Tip**: When sharing logs, code, or other large pieces of content, attach only the most relevant portions instead of full outputs. {% endhint %} #### 5. Prompt caching (hits and misses) Many model prompts include repeated content, like system instructions: * **Cache hits**: if the model provider can match a prefix or a part of the prompt from a past request, it can reuse results from the cache, reducing both tokens consumed and latency. * **Cache misses**: if no match is found, the full prompt may be processed again, which can increase credit consumption. Because cache results depend on model provider behavior and timing, two similar prompts may still have different credit counts, depending on when you run the commands. {% hint style="info" %} **Tip**: Work in a continuous session when possible to improve cache hit rates. {% endhint %} These are the most common factors affecting credit usage, though there are others. Understanding them can help you manage your credits more efficiently and get the most from your plan. --- # Source: https://docs.warp.dev/agent-platform/agent/ai-faqs.md # AI FAQs ## General ### What data is sent and/or stored when using Agents in Warp? See our [Privacy Page](https://docs.warp.dev/support-and-community/privacy-and-security/privacy) for more information on how we handle data used by Agents in Warp. ### What happened to the old Warp AI chat panel? Agent Mode has replaced the Warp AI chat panel. Agent Mode is more powerful in all of the chat panel's use cases. Not only can Agent Mode run commands for you, it can also gather context without you needing to copy and paste. To start a similar chat panel, click the AI button in the menu bar to start on a new AI pane. ### Is my data used for model training? Warp reserves the right to use data collected to train models and improve Warp. Warp has Zero Data Retention with all its model providers (e.g. Anthropic, OpenAI, etc.). Please learn more about telemetry in our [Privacy Page](https://docs.warp.dev/support-and-community/privacy-and-security/privacy). ### What model are you using for Agent Mode? Warp supports a curated list of LLMs from providers like OpenAI, Anthropic, and Gemini. To view the full list of supported models and learn how to switch between them, visit the [Model Choice](https://docs.warp.dev/agent-platform/agent/using-agents/model-choice) page. ### Can I use my own LLM API key? Organizations on the Enterprise plan can enable a “Bring Your Own LLM” option to meet strict security or compliance requirements. Our team will work closely with you to support your preferred LLM provider. This feature is not currently available on other plans. ## Billing Every Warp plan includes a set number of AI credits per user per month. Please refer to [pricing](https://www.warp.dev/pricing) to compare plans. AI credit limits apply to Agent Mode, [Generate](https://docs.warp.dev/agent-platform/agent/generate), and [AI autofill in Workflows](https://docs.warp.dev/knowledge-and-collaboration/warp-drive/workflows#ai-autofill). When you have used up your allotted credits for the cycle, you will not be able to issue any more AI credits until the cycle renews. For questions around what counts as a AI credit, what counts as a token, and how often credits refresh, please refer to [AI Credits](https://docs.warp.dev/support-and-community/plans-and-billing/ai-credits) and more on the [Plans & Pricing](https://docs.warp.dev/support-and-community/plans-and-billing/plans-and-pricing) page. ## Common AI error messages #### **"Message token limit exceeded" error** This error means your input (plus attached context) exceeds the maximum context window of the model you're using. For example, GPT-4o has a context window limit of 123,904 tokens. If you exceed that, you may receive no output. To fix this, try: * Starting a new conversation * Reducing the number of blocks or lines attached to your query #### "Monthly request limit exceeded" or "Monthly credit limit exceeded" errors Once you exceed your AI credits on the Turbo plan (see [pricing](https://www.warp.dev/pricing) for current limits), premium models will be disabled until your quota resets at the start of your next billing cycle. **Request failed with error: QuotaLimit** Once you exceed your AI token limits, all models will be disabled. Note that credits and tokens are calculated separately, and even though the plans may have a set number of credits, they also have a limited number of tokens. **Request failed with error: ErrorStatus (403, "Your account has been blocked from using AI features")** This message means your account has been blocked from using AI features, typically due to a violation of our [Terms of Service](https://www.warp.dev/terms-of-service) or suspected abuse (e.g. attempting to bypass credit or token limits). To resolve or clarify this, please contact our team at if you believe this was an error. We'll review your case and respond as soon as possible. {% hint style="warning" %} Note that any error that does not mention isn't related to being blocked and should be reported as feedback or a bug. See [Sending Us Feedback](https://docs.warp.dev/support-and-community/troubleshooting-and-support/sending-us-feedback) for more. {% endhint %} ## Gathering AI debugging ID In cases where you have issues with the Agent, we may ask for the AI debugging ID to troubleshoot the specific conversation. To gather the debugging ID, see [Gathering AI Debugging ID](https://docs.warp.dev/support-and-community/troubleshooting-and-support/sending-us-feedback#gathering-ai-debugging-id) for detailed steps. --- # Source: https://docs.warp.dev/terminal/editor/alias-expansion.md # Alias Expansion ## How to use it {% tabs %} {% tab title="macOS" %} When Alias Expansion is enabled, type an alias and then hit `SPACE` will expand the alias. To insert a space without expanding an alias, the default keybinding is `OPT-SPACE`. {% endtab %} {% tab title="Windows" %} When Alias Expansion is enabled, type an alias and then hit `SPACE` will expand the alias. To insert a space without expanding an alias, the default keybinding is `ALT-SPACE`. {% endtab %} {% tab title="Linux" %} When Alias Expansion is enabled, type an alias and then hit `SPACE` will expand the alias. To insert a space without expanding an alias, the default keybinding is `ALT-SPACE`. {% endtab %} {% endtabs %} {% hint style="info" %} Aliases will not be expanded when the command in the expanded form is the same as the alias itself. e.g. if you have an alias `ls='ls -G'`, `ls` will not be expanded in the input editor. {% endhint %} ## How to access it Alias expansion is disabled by default. There are two ways to toggle this on and off: * From Settings: Navigate to `Settings > Features > Editor` and toggle “Expand aliases as you type”. * From the [Command Palette](https://docs.warp.dev/command-palette#windows): Search for the “Enable/disable alias expansion” option and hit `ENTER`. ## How it works {% embed url="" %} Alias Expansion Demo {% endembed %} --- # Source: https://docs.warp.dev/agent-platform/ambient-agents/ambient-agents-overview.md # Ambient Agents Overview {% hint style="info" %} **Beta**: Ambient Agents are currently in beta. APIs, CLI commands, and product behavior may change. If you have feedback, reach out in the [Warp Community Slack](https://go.warp.dev/join-preview). {% endhint %} Warp's Ambient Agents are **cloud connected**, **background agents** built on the [Warp Platform](https://docs.warp.dev/agent-platform/platform/warp-platform). They run automatically in response to system events, schedules, or integrations. {% embed url="" %} ### What Ambient Agents are designed for Ambient Agents are designed for situations where: * **You need agents to react to system events.** * Examples include crashes, bug reports, Slack interactions, cron timers, or CI steps. * **You want observability into agent activity across a team or system.** * This includes being able to see what ran, when it ran, and what it did. * **You need more parallelism than local execution typically allows.** * For example, running many agent tasks concurrently in the cloud, sharding a repo-wide task into multiple runs, or fanning out the same task across multiple targets. * **You want agents to operate continuously as part of engineering infrastructure.** * This includes scheduled maintenance tasks and integration-driven automation. *** ### What is an Ambient Agent run? An Ambient Agent run is represented as an agent task. A task is created when a trigger fires (for example a webhook event or schedule) or when a user starts a run explicitly. Each task includes: * **Inputs**: a prompt, and often additional context from the triggering system (for example a Slack message, PR metadata, or CI logs). * **Execution context (optional)**: an [Environment](https://docs.warp.dev/reference/cli/integrations-and-environments#what-is-an-environment) that defines the repo, image, and startup commands the agent should run with. * **Lifecycle state**: created → running → completed / failed. * **Persistent record**: status, metadata, and a session transcript that can be reviewed after the task completes. {% hint style="info" %} If you are evaluating whether something should be an Ambient Agent, a good test is whether you can define:\ (1) what triggers it, (2) what context it needs, and (3) how the team will inspect or validate the output. {% endhint %} ### How Ambient Agents work Ambient Agents run on the [Warp Platform](https://docs.warp.dev/agent-platform/platform/warp-platform), which provides the primitives for triggering work, orchestrating tasks, executing agents (optionally in Environments), injecting secrets, and inspecting results. * Something **triggers** an agent task. * The **orchestrator creates** and tracks the task. * The agent **executes** on a host, optionally inside an [environment](https://docs.warp.dev/reference/cli/integrations-and-environments#what-is-an-environment), with whatever [secrets](https://docs.warp.dev/agent-platform/ambient-agents/agent-secrets) and credentials it needs. The exact way tasks are triggered and executed depends on your deployment model (for example CLI-only, Warp-hosted orchestration, or self-hosted execution). Those options are covered in the [Deployment Patterns](https://docs.warp.dev/agent-platform/platform/deployment-patterns) pages. ### What you get by default Because Ambient Agents run on the [Warp Platform](https://docs.warp.dev/agent-platform/platform/warp-platform), each run is tracked and produces a persistent record that can be observed, shared, and audited (even if execution happens outside the Warp app). #### Observability and steerability Ambient Agent tasks are designed to be inspectable by the team: * [Agent Session Sharing](https://docs.warp.dev/knowledge-and-collaboration/session-sharing/ambient-agents-session-sharing) lets authorized teammates attach to a running task to monitor progress and, where supported, steer the agent while it runs. * Each run produces a session transcript and task metadata, which provides a record of what the agent did. * A [management experience](https://docs.warp.dev/agent-platform/ambient-agents/managing-ambient-agents) surfaces task status and history. #### Centralized configuration Ambient Agent workflows often rely on shared configuration such as [MCP servers](https://docs.warp.dev/agent-platform/ambient-agents/mcp-servers-for-agents), rules, saved prompts, environment variables, and [secrets](https://docs.warp.dev/agent-platform/ambient-agents/agent-secrets). Warp supports centralized configuration so the same workflow behaves consistently across triggers (for example Slack + CI + schedules), without duplicating setup in every system. #### API access to tasks The Warp Platform exposes task visibility via the [**Agent API and SDKs**](https://docs.warp.dev/reference/api-and-sdk/README), so teams can… * Query which tasks are running or have run. * Fetch task metadata and outcomes. * Build internal dashboards or monitoring (for example success rates, runtime, failure reasons). ### Using Ambient Agents with or without Warp’s app Ambient Agents do not require the Warp desktop app. Teams can deploy and operate them through the [Warp Platform](https://docs.warp.dev/agent-platform/platform/warp-platform) using: * [Warp CLI](https://docs.warp.dev/reference/cli/README) * Web surfaces (where available) * [Agent Session Sharing](https://docs.warp.dev/knowledge-and-collaboration/session-sharing/agent-session-sharing) * \[Agent Management UX]\(../agent/using-agents/managing-agents.md * Admin settings and [APIs](https://docs.warp.dev/reference/api-and-sdk/README) If your team also uses Warp’s terminal, you get an additional workflow: tasks launched via the CLI can be handed off into an interactive session for review, edits, or continuation. *** ### Team and billing requirements Ambient Agents and [integrations](https://docs.warp.dev/agent-platform/integrations/integrations-overview) run on the [Warp Platform](https://docs.warp.dev/agent-platform/platform/warp-platform) control plane, and usage is billed using AI credits. To run **integrations (and most Ambient Agent automation)**, your team must meet the following requirements: * **Plan requirements** * **Supported plans**: Build, Business * Not supported: Pro, Turbo, Lightspeed, legacy Business * Your plan must support add-on credits. * **Credit requirements** * Your team must have at least 20 [add-on credits](https://docs.warp.dev/support-and-community/plans-and-billing/add-on-credits) available to run an integration. * Integration usage is billed to the team’s add-on credit balance. * Ambient Agents and integrations do not draw from personal monthly base credits. For more details, please refer to: [Team Access Billing And Identity Permissions](https://docs.warp.dev/agent-platform/platform/team-access-billing-and-identity-permissions) {% hint style="warning" %} If the team’s add-on credit balance reaches zero, integrations and Ambient Agent runs that require add-on credits will not be able to execute until credits are replenished. {% endhint %} *** ### Learn more * [Warp Platform](https://docs.warp.dev/agent-platform/platform/warp-platform) — CLI, Agent API/SDK, orchestration, tasks, environments, hosts, integrations, and more. * [Warp CLI](https://docs.warp.dev/reference/cli/README) — shows how to run Warp's agent in non-interactive mode from CI, scripts, or remote machines, including auth and common commands. * [Integrations and Environments](https://docs.warp.dev/reference/cli/integrations-and-environments) — explains how triggers (Slack/Linear/webhooks/schedules) create agent tasks and how environments provide the runtime context (repo, image, startup commands). * [Agent API and SDK](https://docs.warp.dev/reference/api-and-sdk/README) — documents the REST API for creating, querying, and monitoring agent tasks programmatically. * [Agent Secrets](https://docs.warp.dev/agent-platform/ambient-agents/agent-secrets) — covers how to store, scope, and inject credentials into agent runs safely. * [MCP Servers for Agents](https://docs.warp.dev/agent-platform/ambient-agents/mcp-servers-for-agents) — describes how to configure MCP servers for agent tool access and how MCP configuration is applied across runs. * [Deployment Patterns](https://docs.warp.dev/agent-platform/platform/deployment-patterns) (beta) — compares common ways to deploy Ambient Agents and when to use each. * [Team Access Billing And Identity Permissions](https://docs.warp.dev/agent-platform/platform/team-access-billing-and-identity-permissions) — explains team-level requirements, credit billing behavior, and the permission model for who can run, view, and steer Ambient Agent tasks. --- # Source: https://docs.warp.dev/knowledge-and-collaboration/session-sharing/ambient-agents-session-sharing.md # Ambient Agents Session Sharing Ambient Agent Session Sharing lets you open, inspect, and continue interacting with agent tasks that are running on remote virtual machines. Whether an Ambient Agent was triggered from [integrations](https://docs.warp.dev/agent-platform/integrations/integrations-overview) like Slack, Linear, GitHub Actions, or the [Warp CLI](https://docs.warp.dev/reference/cli), you can view its full session, follow along in real time, ask follow-up questions, and even "fork" the work into your local Warp environment. {% embed url="" %} This makes Ambient Agent runs observable, steerable, and collaborative — even if they weren’t initiated from your machine. *** ### What it enables With Ambient Agent Session Sharing, you can view the full remote session for an Ambient Agent run and: * See every command the agent executed in the virtual environment * Inspect context, logs, and outputs directly in Warp or the web viewer * Ask follow-up questions or give additional instructions after the task completes * Bring the conversation into your local Warp session with Fork to local * Continue working on remote-generated code locally * Share links so teammates can view or collaborate on the session Everything is accessible whether or not Warp is installed on the viewer’s machine. ## How it works #### 1. Open a remote Ambient Agent run When an Ambient Agent starts working — for example, from a Slack mention, a Linear issue, or a [CLI](https://docs.warp.dev/reference/cli) trigger — Warp attaches a shareable link to the run. * From [Slack](https://docs.warp.dev/agent-platform/integrations/slack), click **View Agent** in the agent response to open the session. * From [Linear](https://docs.warp.dev/agent-platform/integrations/linear), click the ↗ **Warp** button ("Open in Warp") on the ticket to open the session. You can also open the session directly in your browser without installing Warp. Here, you’ll see the complete agent session running on a cloud VM, including all steps, logs, and context. #### 2. Inspect the session like it’s your own Once the session loads, you can: * Scroll through the Ambient Agent’s actions * See the prompt, plan, and decisions it made * Review the code or config changes it produced * Understand what environment it executed in You’re viewing a remote VM, but the UI behaves like a local Warp session. #### 3. Keep chatting with the remote agent Even if the Ambient Agent has completed its task, you can still ask follow-up questions or request more work. Warp sends your message back to the remote VM and continues the conversation. Examples: * “Can you explain which flag you changed?” * “Give me a summary of what you modified.” * “Show me the reasoning behind your last step.” This works as long as the remote environment is still active. #### 4. Handle inactive or shut-down sessions Ambient Agent environments automatically shut down after a period of inactivity. When that happens, you’ll see a notice that the virtual machine has been stopped. If you still want to continue the conversation or work on the code, you can click **Fork to local**. #### 5. Fork the session to your local Warp Forking brings the Ambient Agent conversation into your local machine, so you can pick up where the agent left off. Once forked: * The session appears as a normal conversation in your local Warp * You can keep prompting the agent using all your local tools * You can continue inspecting or modifying the generated code * The agent responds using your local environment instead of the remote VM **Note:** If the Ambient Agent created a new git branch or repository in the remote VM, you’ll need to clone that branch locally first so the agent can keep working on the same code. Warp will streamline this workflow in a future release. ### Viewing sessions across devices Ambient Agent sessions can be viewed from: * The Warp desktop app * A browser via the web viewer * Remote teammates using the shared link * Local Warp sessions after forking You get consistent visibility into the work regardless of where you open it. --- # Source: https://docs.warp.dev/reference/api-and-sdk/api-and-sdk.md # Agent API & SDK ### Agent API Warp's Public Agent API lets you create and inspect [Ambient Agent](https://docs.warp.dev/agent-platform/ambient-agents/ambient-agents-overview) runs over HTTP from any system (CI, cron, backend services, internal tools), without requiring the Warp desktop app. **With the API you can:** * Run an agent by submitting a prompt plus optional config (model, environment, MCP servers, base prompt, etc.) * Monitor execution by listing runs and tracking state transitions over time (queued → in progress → succeeded/failed) * Inspect results and provenance by fetching a run's full details, including the original prompt, source/creator metadata, session link, and resolved agent configuration {% hint style="warning" %} This page is a high-level overview.\ \ For full API endpoint details, please refer to the [**Agents API**](https://docs.warp.dev/reference/api-and-sdk/agent)**.** For schema definitions, see the [**Models reference**](https://docs.warp.dev/reference/api-and-sdk/models). {% endhint %} ### Agent SDK Warp provides official [Python](https://github.com/warpdotdev/warp-sdk-python) and [TypeScript](https://github.com/warpdotdev/warp-sdk-typescript) SDKs that wrap the Public Agent API with: * **Typed requests and responses** (editor autocomplete, fewer schema mistakes) * **Built-in retries and timeouts** (with per-request overrides) * **Consistent error type**s that map to API status codes * **Helpers for raw responses** when you need headers/status or custom parsing If you’re building an integration (CI, Slack bots, internal tooling, orchestrators), the SDKs are typically the quickest and safest starting point. {% embed url="" %} **SDK vs raw REST** * Use the SDK when you want strong typing, standardized error handling, and easy concurrency patterns. * Use raw REST when you want minimal dependencies or full control over your HTTP client (the SDKs also support calling undocumented endpoints when needed). {% hint style="warning" %} For the full SDK surface area and latest usage, refer to the GitHub repos: [**Python SDK**](https://github.com/warpdotdev/warp-sdk-python) and [**TypeScript SDK**](https://github.com/warpdotdev/warp-sdk-typescript). {% endhint %} *** ## Agent API ### REST API Base URL All endpoints are served over HTTPS: ```http https://app.warp.dev/api/v1 ``` ### Core Concepts #### **Agent runs** An agent run represents a single execution of an Ambient Agent, created with a prompt and optional configuration. Each run has: * A unique `run_id` * A human-readable `title` * A `prompt` that the agent executes * A `state` (for example `QUEUED`, `INPROGRESS`, `SUCCEEDED`, `FAILED`) * Timestamps (`created_at`, `updated_at`) * Optional session information (`session_id`, `session_link`) * Optional resolved configuration (`agent_config`) See the [**Agents API**](https://docs.warp.dev/reference/api-and-sdk/broken-reference) for details on how runs are created and listed. #### **Agent configuration** You can influence how an agent runs using AmbientAgentConfig, including: * `name` for traceability and filtering * `model_id` for LLM selection * `base_prompt` to shape behavior * `environment_id` to choose a `CloudEnvironment` * `mcp_servers` to enable specific tools via MCP See the [**Models reference**](https://docs.warp.dev/reference/api-and-sdk/broken-reference) for the full configuration schema. *** ### Key Endpoints **The Agents API exposes three primary endpoints:** * `POST /agent/run` Create a new agent run with a prompt and optional config and title. Returns run\_id and initial state. * `GET /agent/runs` List runs with pagination and filters for state, config\_name, model\_id, creator, source, and creation time. * `GET /agent/runs/{runId}` Fetch full details for a single run, including session link and resolved configuration. All endpoint semantics, query parameters, and error codes are documented on the [Agents API](https://docs.warp.dev/reference/api-and-sdk/agent). *** #### Models Reference The API shares a set of reusable models across endpoints. Detailed JSON schemas, types, and enums are documented on the [Models reference](https://docs.warp.dev/reference/api-and-sdk/models), including: * `RunAgentRequest` * `RunAgentResponse` * `ListRunsResponse` * `RunItem` * `PageInfo` * `RunStatusMessage` * `RunCreatorInfo` * `RunState` * `RunSourceType` * `AmbientAgentConfig` * `MCPServerConfig` * `Error` *** ## Agent SDKs ### Python SDK The Python SDK is the recommended way to call the Agent API from Python services and scripts. It provides: * Sync + async clients * Typed request/response models * Configurable retries/timeouts and structured errors See the [**Python SDK GitHub repo**](https://github.com/warpdotdev/warp-sdk-python) for installation, full API reference (api.md), and up-to-date examples. ### TypeScript SDK The TypeScript SDK is the recommended way to call the Agent API from Node.js services and modern TS/JS runtimes. It provides: * Fully typed params/responses * First-class error handling, retries/timeouts * Support across common runtimes where fetch is available or polyfilled See the [**TypeScript SDK GitHub repo**](https://github.com/warpdotdev/warp-sdk-typescript) for installation, full API reference (api.md), and up-to-date examples. --- # Source: https://docs.warp.dev/terminal/appearance/app-icons.md # App Icons {% hint style="info" %} App icons are only available for Warp on macOS. The feature doesn't support custom dock icons. {% endhint %} ## How to change the app icon * Navigate to `Settings > Appearance > Icon > Customize your app icon` * Select the desired dock icon from the drop down menu

Icon customization drop-down menu

## Dock icons By default, Warp ships with these dock icons:
Default
Warp 1.0
Aurora
Classic 1
Classic 2
Classic 3
Comets
Glass Sky
Glitch
Glow
Holographic
Mono
Neon
Original
Starburst
Sticker
--- # Source: https://docs.warp.dev/terminal/appearance.md # Appearance - [Themes](/terminal/appearance/themes.md): Warp includes several themes (out-of-box) and also supports setting custom themes. - [Custom Themes](/terminal/appearance/custom-themes.md): Warp supports Custom Themes which can be created manually or downloaded from our repo. - [Prompt](/terminal/appearance/prompt.md): Warp allows you to configure its Warp prompt or a Shell prompt. A terminal prompt is a text that appears in the command line interface, indicating that the terminal is ready to accept commands. - [Input Position](/terminal/appearance/input-position.md): Warp gives you the ability to configure the position of your input, which includes both the prompt and the command line. - [Text, Fonts, & Cursor](/terminal/appearance/text-fonts-cursor.md): Warp supports customizing the font and how text is displayed. This can help improve readability and usability. Warp also supports disabling the blinking cursor. - [Size, Opacity, & Blurring](/terminal/appearance/size-opacity-blurring.md): Warp supports settings for Window size, opacity(transparency), and blurring effects. This can help with setting up specific terminal layouts and visual preferences. - [Pane Dimming & Focus](/terminal/appearance/pane-dimming.md): Warp supports dimming inactive Panes as well as allowing the focus to follow the mouse. This helps you easily see which pane is active and maintain focus. - [Blocks Behavior](/terminal/appearance/blocks-behavior.md): Warp lets you customize your Blocks in a variety of ways such as enabling Compact mode, or disabling the Block Dividers for a more custom block experience, and more. - [Tabs Behavior](/terminal/appearance/tabs-behavior.md): Warp lets you customize the Tabs behavior in a variety of ways such as setting the Tab indicators, or hiding the Tab bar for a more personalized navigation experience, and more. - [App Icons](/terminal/appearance/app-icons.md): Warp supports a palette of built-in app icons. --- # Source: https://docs.warp.dev/terminal/more-features/audible-bell.md # Audible Bell Warp allows you to enable an audible terminal bell (disabled by default) that can be triggered by a variety of CLI tools (for example, `ping -a`). * In Settings, enable an Audible terminal bell in `Settings > Features > Terminal`. * In [Command Palette](https://docs.warp.dev/terminal/command-palette), “Enable/Disable Audible Terminal Bell”. --- # Source: https://docs.warp.dev/terminal/command-completions/autosuggestions.md # Autosuggestions ## How to access it * From the [Command Palette](https://docs.warp.dev/terminal/command-palette), type in "Autosuggestions" to toggle. {% hint style="info" %} **Terminal Tip** You can change the keybinding for accepting autosuggestions to `Tab`. Configure this in the "Tab key behavior" setting under Features > Editor. *Note: This will update the keybinding for opening the completions menu to `CTRL-SPACE`. You can also enable the "Open completions menu as you type" in Settings > Features so that the completions menu opens automatically.* {% endhint %} ## How to use it {% tabs %} {% tab title="macOS" %} There are several ways to accept autosuggestions, either completely or partially: * Complete an autosuggestion using the `RIGHT` arrow or `CTRL-F`. * `CTRL-E` also, completes the autosuggestion when your cursor is at the end of the buffer. * `CTRL-RIGHT` can be used to partially complete the autosuggestion one component at a time. {% endtab %} {% tab title="Windows" %} There are several ways to accept autosuggestions, either completely or partially: * Complete an autosuggestion using the `RIGHT` arrow or `CTRL-F`. * `END` jumps to the last character in the Input Editor, then `RIGHT` completes the autosuggestion. * `CTRL-SHIFT-RIGHT` can be used to partially complete the autosuggestion one component at a time. {% endtab %} {% tab title="Linux" %} There are several ways to accept autosuggestions, either completely or partially: * Complete an autosuggestion using the `RIGHT` arrow or `CTRL-F`. * `CTRL-E` jumps to the last character in the Input Editor, then `RIGHT` completes the autosuggestion. * `CTRL-SHIFT-RIGHT` can be used to partially complete the autosuggestion one component at a time. {% endtab %} {% endtabs %} ## How it works {% embed url="" %} Autosuggestion Demo {% endembed %} --- # Source: https://docs.warp.dev/university/developer-workflows/backend.md # Backend Discover how Warp can accelerate backend development — from generating APIs to debugging services and optimizing databases. You’ll find examples that show how to scaffold Node, Python, or Go projects, connect to databases, and use MCP servers for backend automation. ### Jump right in
how-to-write-sql-commands-inside-a-postgres-replWarp Drive Workflows Postgres.jpg
how-to-create-priority-matrix-for-database-optimizationWarp Edu Prompts Matrix.png
--- # Source: https://docs.warp.dev/terminal/blocks/background-blocks.md # Background Blocks ## What is it Commands can start background processes that continue even after they exit. You can also start a background process directly from the shell, such as by running it with `&`. If Warp receives output that is likely from a background process, the output goes into a *background block*. Background blocks act like regular blocks, except that they don't have an associated command. This lets you use all of Warp's block features with background output, such as sharing and bookmarking. ## How to use it Background blocks are automatically created as needed, in between regular blocks running. If you run commands while a background process is still producing output, that output gets split into multiple blocks interleaved with your commands. ## How it works {% embed url="" %} Create Background Blocks {% endembed %} ## Troubleshooting Background Blocks There are some limitations, because Warp doesn't know *which* process any given output came from: * If a background process writes output while a foreground command is running in a regular block, the output goes into that block. * If there are multiple background processes running at the same time, their output may be mixed together. In addition, if you start entering a command while another one is running (typeahead), in some cases Warp will mistake the partial command for background output. The most common cause is editing typeahead when using bash versions older than 4.0 (for example, deleting and re-typing part of it). --- # Source: https://docs.warp.dev/university/developer-workflows/beginner.md # Beginner A collection of simple, high-impact workflows to help you see the power of Warp’s agentic platform. These guides walk through everyday developer tasks — running commands in plain English, editing files, and automating small tasks — all using natural language and built-in agents. ### Jump right in
how-to-explain-your-codebase-using-warp-rust-codebaseWarp Drive Workflows Codebase.jpg
how-to-create-project-rules-for-an-existing-project-astro-+-typescript-+-tailwindWarp Drive Project Rules.jpg
--- # Source: https://docs.warp.dev/terminal/blocks/block-actions.md # Block Actions ## Accessing Block Actions There are 2 ways you can access Block actions. 1. Hover over a Block and click the kebab (three dots) button on the right-hand side. 2. Right-click a Block. {% embed url="" %} Accessing Block Actions {% endembed %} ## Copy Input / Output of Block For command blocks, you can `RIGHT-CLICK` on a Block or click the context menu and copy the Block command, output, or both. For AI blocks, you can `RIGHT-CLICK` to copy the prompt, output, both or the entire conversation. {% embed url="" %} Copy Block Actions {% endembed %} ## Sharing a Block Share a block easily with coworkers or teammates by creating a web permalink. This preserves formatting and makes debugging and sharing output easy. [See Block Sharing Page.](https://docs.warp.dev/terminal/blocks/block-sharing) ## Bookmarking a Block Quickly navigate to important Blocks despite where they are in the terminal history. {% tabs %} {% tab title="macOS" %} Ways to bookmark a Block: 1. Select `Toggle bookmark` in the block context menu 2. Use `CMD-B` keybinding to bookmark a selected block Navigate to a bookmarked Block, by: * Clicking on the indicator.\ The indicator position reflects the approximate position of the Block in the Block history. Hovering over the indicator will give a snapshot of the Block including its prompt, command, and the last two lines of output. * Pressing `OPTION-UP` and `OPTION-DOWN` {% endtab %} {% tab title="Windows" %} There are Ways to bookmark a Block: 1. Select `Toggle bookmark` in the block context menu 2. Use `CTRL-SHIFT-B` keybinding to bookmark a selected block Navigate to a bookmarked Block, by: * Clicking on the indicator.\ The indicator position reflects the approximate position of the Block in the Block history. Hovering over the indicator will give a snapshot of the Block including its prompt, command, and the last two lines of output. * Pressing `ALT-UP` and `ALT-DOWN` {% endtab %} {% tab title="Linux" %} Ways to bookmark a Block: 1. Click on the bookmark icon in the top right corner of a Block 2. Select `Toggle bookmark` in the block context menu 3. Use `CTRL-SHIFT-B` keybinding to bookmark a selected block Navigate to a bookmarked Block, by: * Clicking on the indicator.\ The indicator position reflects the approximate position of the Block in the Block history. Hovering over the indicator will give a snapshot of the Block including its prompt, command, and the last two lines of output. * Pressing `ALT-UP` and `ALT-DOWN` {% endtab %} {% endtabs %} {% hint style="info" %} Bookmarks only persist while the session is open, once you close the session they are lost. If you want to save the command and output for later use, [Share the Block](https://docs.warp.dev/terminal/blocks/block-sharing). {% endhint %}

Bookmarking a Block

## Search Within A Block Quickly find important information within a Block. [See Find page](https://docs.warp.dev/terminal/blocks/find) {% tabs %} {% tab title="macOS" %} With a Block selected, press "Find Within Block" or use `CMD-F` to search within a Block. {% endtab %} {% tab title="Windows" %} With a Block selected, Press "Find Within Block" or use `CTRL-SHIFT-F` to search within a Block. {% endtab %} {% tab title="Linux" %} With a Block selected, Press "Find Within Block" or use `CTRL-SHIFT-F` to search within a Block. {% endtab %} {% endtabs %} {% embed url="" %} Search within a Block {% endembed %} ## Filtering a Block Filter the output lines of a block natively in Warp to quickly focus on a subset of the block. [See Block Filtering Page](https://docs.warp.dev/terminal/blocks/block-filtering). {% tabs %} {% tab title="macOS" %} * Using the keybinding `OPT-SHIFT-F` by default to toggle filtering on the selected or latest block * Selecting `Toggle Block Filter` in the block context menu {% endtab %} {% tab title="Windows" %} * Using the keybinding `ALT-SHIFT-F` to toggle filtering on the selected or latest block * Selecting `Toggle Block Filter` in the block context menu {% endtab %} {% tab title="Linux" %} * Using the keybinding `ALT-SHIFT-F` to toggle filtering on the selected or latest block * Selecting `Toggle Block Filter` in the block context menu {% endtab %} {% endtabs %} --- # Source: https://docs.warp.dev/terminal/blocks/block-basics.md # Block Basics ## The Basics * Blocks group your command and command output * The Input Editor can pin to the bottom, pin to the top, or start at the top. * Blocks grow from the bottom to the top. * Blocks are color-coded. Blocks that quit with a non-zero exit code have a red background and red sidebar. {% hint style="info" %} Try it yourself!\ Type `xyz` (or some other command that doesn’t exist) and hit `ENTER` {% endhint %} ## Create A Block 1. Execute a command (type `ls` and hit `ENTER`) in the Input Editor at the bottom of the screen. 2. Your command and output are grouped into a Block. 3. Try executing a different command (type `echo hello` and hit `ENTER`). 4. Warp adds your newly created Block to the bottom (directly above the input editor). {% embed url="" %} Create a Block {% endembed %} ## Select a Single Block {% tabs %} {% tab title="macOS" %} * Using your mouse: click on a Block. * Or using your keyboard: hit `CMD-UP` (or `CMD-DOWN` if input as pinned up top) to select the most recently executed Block and use the `UP ↑` and `DOWN ↓` arrow keys to navigate to the desired Block. * For long Blocks: * You can click "Jump to the bottom of this block". * You can press `SHIFT-CMD-UP`/`SHIFT-CMD-DOWN` to Scroll to the top/bottom of the selected block. * From the [Command Palette](https://docs.warp.dev/terminal/command-palette), you can also "Scroll to the top/bottom of selected block". {% endtab %} {% tab title="Windows" %} * Using your mouse: Click on a Block. * Or using your keyboard: hit `CTRL-UP` (or `CTRL-DOWN` if input as pinned up top) to select the most recently executed Block and use the `UP ↑` and `DOWN ↓` arrow keys to navigate to the desired Block. * For long Blocks: * You can click "Jump to the bottom of this block". * You can press `CTRL-SHIFT-UP`/`CTRL-SHIFT-DOWN` to Scroll to the top/bottom of the selected block. * From the [Command Palette](https://docs.warp.dev/terminal/command-palette), you can also "Scroll to the top/bottom of selected block". {% endtab %} {% tab title="Linux" %} * Using your mouse: Click on a Block. * Or using your keyboard: hit `CTRL-UP` (or `CTRL-DOWN` if input as pinned up top) to select the most recently executed Block and use the `UP ↑` and `DOWN ↓` arrow keys to navigate to the desired Block. * For long Blocks: * You can click "Jump to the bottom of this block". * You can press `CTRL-SHIFT-UP`/`CTRL-SHIFT-DOWN` to Scroll to the top/bottom of the selected block. * From the [Command Palette](https://docs.warp.dev/terminal/command-palette), you can also "Scroll to the top/bottom of selected block". {% endtab %} {% endtabs %} {% embed url="" %} Select a Single Block {% endembed %} ## Select Multiple Blocks {% tabs %} {% tab title="macOS" %} * Click another Block while holding `CMD` to toggle the selection of that Block, or * Click another Block while holding `SHIFT` to select a range of Block, or * Use `SHIFT-UP ↑` or `SHIFT-DOWN ↓` to expand the active selection (the Block with the thicker border) up or down, respectively. {% endtab %} {% tab title="Windows" %} * Click another Block while holding `CTRL-SHIFT` to toggle the selection of that Block, or * Click another Block while holding `SHIFT` to select a range of Block, or * Use `SHIFT-UP ↑` or `SHIFT-DOWN ↓` to expand the active selection (the Block with the thicker border) up or down, respectively. {% endtab %} {% tab title="Linux" %} * Click another Block while holding `CTRL-SHIFT` to toggle the selection of that Block, or * Click another Block while holding `SHIFT` to select a range of Block, or * Use `SHIFT-UP ↑` or `SHIFT-DOWN ↓` to expand the active selection (the Block with the thicker border) up or down, respectively. {% endtab %} {% endtabs %} {% embed url="" %} Select Multiple Blocks {% endembed %} ## Navigate Blocks * Either scroll using your mouse or the scrollbar or select a Block and use the `UP ↑` and `DOWN ↓` arrow keys. * "Scroll Terminal output up/down one line" is also a way to navigate block output, and can be configured with a keyboard shortcut or accessed from the [Command Palette](https://docs.warp.dev/terminal/command-palette). * When the output of a command is cut off, Warp keeps the [Sticky Command Header](https://docs.warp.dev/terminal/blocks/sticky-command-header) pinned at the top that displays the command the Block corresponds to. Clicking the header will scroll the screen to the start of the Block. {% embed url="" %} Navigate between Blocks {% endembed %} --- # Source: https://docs.warp.dev/terminal/blocks/block-filtering.md # Block Filtering Filter the output lines of a block in Warp to quickly focus on a subset of the block. You can filter by plaintext, regex, invert, or make your filter case-sensitive. You can also add context lines to view output around matches. Filtering does not delete any output lines, so you can clear the filter to go back to the original output. ## How to filter a block To apply a filter to a block: 1. Click on the filter icon in the top right corner of a block. A filter editor will appear with a large input field with two buttons on the left and a smaller input field on the right. 2. Type in the input to filter the block in the left input field. Only lines containing text that matches the filter query will be shown. 3. (Optional) Click on the regex, case sensitive search, or invert filter buttons to enable. 4. (Optional) Type a number in the right input field to add context lines around matched lines.

Filter a block's output, with the ability to add context lines.

{% tabs %} {% tab title="macOS" %} You can also toggle a filter by: * Using the keybinding `OPT-SHIFT-F` by default to toggle filtering on the selected or latest block * Selecting `Toggle Block Filter` in the block context menu {% endtab %} {% tab title="Windows" %} You can also toggle a filter on/off by: * Using the keybinding `ALT-SHIFT-F` to toggle filtering on the selected or latest block * Selecting `Toggle Block Filter` in the block context menu {% endtab %} {% tab title="Linux" %} You can also toggle a filter on/off by: * Using the keybinding `ALT-SHIFT-F` to toggle filtering on the selected or latest block * Selecting `Toggle Block Filter` in the block context menu {% endtab %} {% endtabs %} {% hint style="info" %} Toggling a filter on a block without a filter applied will open the filter editor. If you toggle a filter off, the same filter will be applied if you toggle filtering on again. {% endhint %}

Toggle a block filter on/off.

--- # Source: https://docs.warp.dev/terminal/blocks/block-sharing.md # Block Sharing {% hint style="info" %} This action sends command information to our server and is explicitly opt-in. Read more about privacy at Warp on [our privacy page](https://www.warp.dev/privacy). {% endhint %} Share your blocks with a permalink or HTML embed. You can get started with shared blocks by opening the context menu and copying the command, output, or prompt. ## How to Share Blocks {% tabs %} {% tab title="macOS" %} To share your blocks, follow these steps: 1. On a finished block, click the context menu and select `Share...` or select the block and hit `CMD-SHIFT-S`. 2. A modal will pop up that lets you title your block and customize it by selecting which parts of the block you want to share (e.g. command, output, prompt, etc.). 3. Click either "Create link" or "Get embed" depending on how you want to share your block. 4. The link or embed snippet will be copied to your clipboard. {% endtab %} {% tab title="Windows" %} To share your blocks, follow these steps: 1. On a finished block, click the context menu and select `Share...` or by setting up a key bind for Share Block in `Settings > Keyboard Shortcuts`. 2. A modal will pop up that lets you title your block and customize it by selecting which parts of the block you want to share (e.g. command, output, prompt, etc.). 3. Click either "Create link" or "Get embed" depending on how you want to share your block. 4. The link or embed snippet will be copied to your clipboard. {% endtab %} {% tab title="Linux" %} To share your blocks, follow these steps: 1. On a finished block, click the context menu and select `Share...` or by setting up a key bind for Share Block in `Settings > Keyboard Shortcuts`. 2. A modal will pop up that lets you title your block and customize it by selecting which parts of the block you want to share (e.g. command, output, prompt, etc.). 3. Click either "Create link" or "Get embed" depending on how you want to share your block. 4. The link or embed snippet will be copied to your clipboard. {% endtab %} {% endtabs %} {% hint style="info" %} If you experience any issues with block sharing, please see our known issues for [troubleshooting steps](https://docs.warp.dev/support-and-community/troubleshooting-and-support/known-issues#online-features-dont-work). {% endhint %}

Block Sharing & Embed Demo

## Permalink Create and share a permalink to your blocks to collaborate with teammates. Here is the [web permalink](https://app.warp.dev/block/vzFATak939iqGWfNh7wsAP) of the block depicted below. ![Shared Block](https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-221d43e8629ad806343376b4647d9d7188c8ca86%2Fshared_block.png?alt=media) ## Embedded Blocks Create and embed your blocks on web pages to help your readers follow along with technical writing. Readers can interact with an embedded block as they would with a block in Warp, with a context menu and styling. When you click "Get embed", Warp will copy an `iframe` to your clipboard. Here's an example `iframe`: ```html ``` #### Embedded Block Example on Web Page ![Embedded Block Example](https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-d9229fcb56841824629e982884ea5bb8aee0781f%2Fembed.png?alt=media) ## Managing Shared Blocks You can unshare a block by navigating to `Settings > Shared blocks`. Currently, shared blocks are accessible to anyone with the link. ## Link Previews Shared permalinks will also display a preview of your code for quick context on each link. {% hint style="info" %} Compatible with any platform that supports Open Graph or Twitter meta tags. For example Slack, Twitter, Facebook, Telegram, Notion, and more ... {% endhint %} {% embed url="" %} Share and Unfurl a Block Preview {% endembed %} --- # Source: https://docs.warp.dev/agent-platform/agent/using-agents/agent-context/blocks-as-context.md # Blocks as Context ## Attaching blocks as context Warp’s Agent can use blocks from your Agent conversations as context to better understand your queries and generate more relevant responses. You can attach a block directly from the terminal blocklist by clicking the AI sparkles icon on it and selecting “Attach as context.”

From a block of output, attach the block and ask Agent Mode to remove all untracked files.

The most common use case is to ask the AI to fix an error. You can attach the error in a query to Agent Mode and type "fix it." **If you're already in Agent Mode, use the following ways to attach or clear context from your query:** {% tabs %} {% tab title="macOS" %} **Attach a previous block** * To attach blocks to a query, you can use `CMD-UP` to attach the previous block as context to the query. While holding `CMD`, you can then use your `UP/DOWN` keys to pick another block to attach. * You may also use your mouse to attach blocks in your session. Hold `CMD` as you click on other blocks to extend your block selection. **Clear a previous block** * To clear blocks from a query, you can use `CMD-DOWN` until the blocks are removed from context. * You may also use your mouse to clear blocks in your session. Hold `CMD` as you click on an attached block to clear it. {% hint style="info" %} When using "Pin to the top" [Input Position](https://docs.warp.dev/terminal/appearance/input-position), the direction for attaching or detaching is reversed (i.e. `CMD-DOWN` attaches blocks to context, while `CMD-UP` clears blocks from context). {% endhint %} {% endtab %} {% tab title="Windows" %} **Attach a previous block** * To attach blocks to a query, you can use `CTRL-UP` to attach the previous block as context to the query. While holding `CTRL`, you can then use your `UP/DOWN` keys to pick another block to attach. * You may also use your mouse to select blocks in your session. Hold `CTRL` as you click on other blocks to extend your block selection. **Clear a previous block** * To clear blocks from a query, you can use `CTRL-DOWN` until the blocks are removed from context. * You may also use your mouse to clear blocks in your session. Hold `CTRL` as you click on an attached block to clear it. {% hint style="info" %} When using "Pin to the top" [Input Position](https://docs.warp.dev/terminal/appearance/input-position), the direction for attaching or detaching is reversed (i.e. `CTRL-DOWN` attaches blocks to context, while `CTRL-UP` clears blocks from context). {% endhint %} {% endtab %} {% tab title="Linux" %} **Attach a previous block** * To attach blocks to a query, you can use `CTRL-UP` to attach the previous block as context to the query. While holding `CTRL`, you can then use your `UP/DOWN` keys to pick another block to attach. * You may also use your mouse to select blocks in your session. Hold `CTRL` as you click on other blocks to extend your block selection. **Clear a previous block** * To clear blocks from a query, you can use `CTRL-DOWN` until the blocks are removed from context. * You may also use your mouse to clear blocks in your session. Hold `CTRL` as you click on an attached block to clear it. {% hint style="info" %} When using "Pin to the top" [Input Position](https://docs.warp.dev/terminal/appearance/input-position), the direction for attaching or detaching is reversed (i.e. `CTRL-DOWN` attaches blocks to context, while `CTRL-UP` clears blocks from context). {% endhint %} {% endtab %} {% endtabs %} --- # Source: https://docs.warp.dev/terminal/appearance/blocks-behavior.md # Blocks Behavior ## Compact Mode Warp offers the option to enable Compact mode, which condenses the spacing between [Blocks](https://docs.warp.dev/terminal/blocks), enabling more content to be in view. ### How to enable Compact Mode Compact mode is disabled by default, but can be toggled in the following ways: * Navigate to `Settings > Appearance > Blocks > Compact Mode`. * Utilize the [Command Palette](https://docs.warp.dev/terminal/command-palette), then search for "Compact mode" to toggle. {% hint style="info" %} Warp will open with the same compact settings in future sessions. {% endhint %}

Compact Mode Demo

## Block Dividers Warp [Blocks](https://docs.warp.dev/terminal/blocks) are divided by horizontal lines that separate individual command input and output, they create a visual break between different commands that you run in a session. ### How to toggle Block Dividers Block dividers are enabled by default, but can be toggled in the following ways: * Navigate to `Settings > Appearance > Blocks > Show block dividers`. * Utilize the [Command Palette](https://docs.warp.dev/terminal/command-palette), then search for "Block Dividers".

Block Divider Demo

--- # Source: https://docs.warp.dev/terminal/blocks.md # Blocks ## What are Blocks? Blocks enable us to easily: * Copy a command * Copy a command’s output * Scroll directly to the start of a command’s output * Re-input commands * Share both a command and its output (with formatting!) * Bookmark commands {% hint style="info" %} Interested in how we differentiate input and output, or how we implement blocks? Check out our blog post: [How Warp Works.](https://blog.warp.dev/how-warp-works/#implementing-blocks) {% endhint %}
Blocks

Blocks

--- # Source: https://docs.warp.dev/support-and-community/plans-and-billing/bring-your-own-api-key.md # Bring Your Own API Key Warp supports **Bring Your Own Key (BYOK)** for users who want to connect Warp’s agent to their own Anthropic, OpenAI, or Google API accounts. This lets you use your own API keys to access models directly, giving you full control over model selection, billing, and data routing. See [Model Choice](https://docs.warp.dev/agent-platform/agent/using-agents/model-choice) for a list of supported models. BYOK provides greater flexibility in model access and ensures Warp **never consumes your** [AI Credits](https://docs.warp.dev/support-and-community/plans-and-billing/ai-credits) for requests routed through your own keys. {% hint style="info" %} BYOK is currently only available on Warp's paid plans, starting with Build. Learn more about plans and pricing [warp.dev/pricing](https://www.warp.dev/pricing). {% endhint %} ## How does BYOK work? When you add your own model API keys in Warp, those keys are stored **locally on your device** and are **never synced to the cloud**. Warp uses these API keys to directly route your agent requests to the model provider you've configured. When a model is selected using your own key: * Warp **does not consume** any of your [AI Credits](https://docs.warp.dev/support-and-community/plans-and-billing/ai-credits). * Costs are billed directly through your model provider account. * Warp does not retain or store your API key on any of its servers.
## Enabling BYOK To enable and configure your API keys: 1. Open `Settings > AI > Model API keys` 2. Add your API key(s) for Anthropic, OpenAI, or Google. 3. Once added, you'll see a **key icon** next to supported models in the model picker in the [Universal Input](https://docs.warp.dev/terminal/universal-input/).
When you explicitly select a model with a key icon, Warp routes requests through your own API key instead of consuming Warp's credits. ## BYOK usage and billing behavior ### Auto Model Warp's **Auto** models dynamically routes requests across different models based on context and performance. Because this routing logic depends on Warp’s infrastructure, **Auto always consumes Warp's AI credits**, even if you’ve configured your own API keys. To use your own key, select a specific provider model (for example, Claude Sonnet 4.5, GPT-5, or Gemini 2.5 Pro) directly from the model picker with a key icon. ### Credit Usage When you select a model with the key icon in your model picker, Warp routes the request through your API key. In this case: * No **Warp Credits** are consumed. * The cost of the request is billed directly through your provider account. * Core agent mode always **prioritizes BYOK usage** over any available Warp Credits. The credit transparency footer will show “0 credits used”, and the `Billing & Usage` page will reflect no deductions from your monthly credit total. **Other AI features in Warp** Some AI-powered features are not affected by BYOK and are included as part of Warp’s paid plans. | Feature | Uses Warp's AI Credits | Description | | ----------------------------------------------------------------- | ---------------------- | --------------------------------------------------- | | [Active AI](https://docs.warp.dev/agent-platform/agent/active-ai) | No | Always included with Build and higher plans. | | [Codebase Context](https://docs.warp.dev/code/codebase-context) | Yes | Uses Warp's AI infrastructure and consumes credits. | These features will continue to function normally regardless of whether you’ve configured BYOK. ### Failover and fallback behavior If Warp detects an issue with your API key, you’ll see a clear error message corresponding with the AI request. If your key: * Is invalid: Warp notifies you and halts the request. * Hits usage or rate limits: Warp will not retry using Warp Credits. * You can update or replace your keys anytime in `Settings > AI > Model API Keys`. **Failover and fallback:** By default, Warp does not fall back to your Warp Credits when a BYOK (Bring Your Own Key) request fails. You can choose to enable **Warp credit fallback**. When enabled, if an agent request fails with your BYOK model (for example, due to an API error or quota limit), Warp will automatically route the request to one of Warp’s provided models. Warp always prioritizes your API keys first and only uses Warp credits when necessary.
### Zero Data Retention (ZDR) and BYOK Warp is **SOC 2 compliant** and has **Zero Data Retention (ZDR)** policies with all of its contracted LLM providers. No customer AI data is retained, stored, or used for training by the model providers. However, when you use your own API key: * Data retention policies depend on your provider’s account settings. * Warp cannot enforce ZDR for requests sent through your API keys. * If your Anthropic, OpenAI, or Google account does not have ZDR enabled, your requests may be retained by the provider according to their terms. Warp itself never stores your LLM API keys. ### BYOK on Enterprise and Business plans Currently, BYOK is configured at the **user level**, not the team or admin level: * Each team member can add and manage their own API keys locally. * Team admins cannot yet enforce or share API keys across members. * There currently is no organization-level admin panel for BYOK management. If your organization has specific needs for managed keys or enterprise-level control, please contact us at [warp.dev/contact-sales](https://warp.dev/contact-sales) or reach out to your Warp representative. --- # Source: https://docs.warp.dev/university/end-to-end-builds/building-a-chrome-extension-d3.js-+-javascript-+-html-+-css.md # Building a Chrome Extension (D3.js + Javascript + HTML + CSS) {% hint style="success" %} This educational module teaches you step-by-step how to replicate the process shown in the video — building a **Sankey diagram Chrome extension** using **D3.js**, debugging, coordinating **multiple AI agents**, and deploying to the **Chrome Web Store**. {% endhint %} {% embed url="" %} {% stepper %} {% step %} **Set up your environment and create a new Chrome Extension project** Our goal: build a Chrome extension called **“Sankey Stone”** that visualizes flows using **D3.js**. Files created during setup * `manifest.json` * `popup.html` * `popup.css` * `popup.js` * Icon images (`icon16.png`, `icon32.png`, `icon48.png`, etc.) Enable Developer Mode in Chrome and load the project: chrome://extensions → Developer Mode → Load unpacked → Select your project folder {% hint style="warning" %} If you see errors like “Failed to load extension” or “Could not load icon 16.png,” double‑check your manifest paths and icon filenames. The transcript explicitly shows these initial debugging steps. {% endhint %} {% endstep %} {% step %} **Test the initial D3.js rendering** After fixing missing icons, the extension loads but initially shows only “Loading diagram.”\ \ Debug this by taking a screenshot and feeding it to an AI agent for context by asking: ``` It says loading diagram — why isn’t the chart appearing? ``` An agent reviews the error and regenerates the `popup.js` so the Sankey chart appears using **D3.js**. Result: a working, interactive diagram rendered inside the extension popup. {% endstep %} {% step %} **Version control and GitHub setup** Initialize a Git repository and commit: ```bash git init git add . git commit -m "Initial Sankey Stone extension" ``` The developer asks the agent to create a GitHub repo and push the code.\ \ The agent handles authentication, creates the remote repo, and pushes all files automatically. {% endstep %} {% step %} **Add a local test page and dynamic data** Launch a simple local web server with a test page that outputs traffic flow data. The extension reads this data and updates the Sankey diagram dynamically. Transcript example prompt: ``` Update the test data page so that it generates random labels and different contexts when I hit the regenerate button. ``` The agent edits the test page so that clicking the **Regenerate Test Page** button updates the diagram in real time. {% endstep %} {% step %} **Coordinate multiple agents in parallel** The video demonstrates running **multiple agents** in parallel. Each agent receives a different task: | Agent | Task | | ----- | ----------------------------------------------------------------------------- | | #1 | `Update the test data page to randomize labels and values` | | #2 | `Change the refresh page button to regenerate the chart in a different style` | | #3 | `Generate a useful README file for the project` | You can approve actions automatically by enabling **Auto‑approve all agent actions** so background updates run without manual confirmation. {% hint style="info" %} Running multiple agents in parallel mirrors having a small team: one agent focuses on data generation, another on UI changes, and a third on documentation. {% endhint %} {% endstep %} {% step %} **Refine styles and interactions** After the data layer works, now you can iterate on appearance: ``` Apply new color themes and improve the layout. ``` Changes applied: * Support for multiple color themes and improved node layout. * Hovering over links highlights connected nodes. * Users can drag nodes to rearrange the layout. * Added a “Switch Style” button to cycle between themes. To support exporting diagrams, you can ask: ``` Add a button to download this image as a PNG. ``` The Warp agent writes the JS logic for PNG export and verifies that clicking the button saves a screenshot of the diagram. {% endstep %} {% step %} **Add an API key setup screen** Create a settings page where users can store API keys: ``` Add a settings page to enter the Anthropic API key and test it. ``` * The page allows testing the key to ensure it works. * API keys are stored locally in the browser, not sent to a server. {% endstep %} {% step %} **Publish to the Chrome Web Store** Package and submit the extension: ```bash zip -r sankey_stone.zip * ``` Upload the ZIP file to and follow the prompts. {% hint style="info" %} The review may take a few weeks. {% endhint %} {% endstep %} {% endstepper %} *** ### Summary By following these transcript‑based steps, you can recreate the same workflow: * Scaffold a Chrome extension with D3.js. * Debug manifest and icon issues. * Use agents to generate and refine code. * Introduce multi‑agent parallel tasks for UI, data, and docs. * Add interactivity, themes, and export options. * Create an API key setup screen. * Package and publish to the Chrome Web Store. {% hint style="success" %} You can follow this same pattern with your own idea: start small, scaffold with AI prompts, iterate using parallel agents, and deploy to production all from within Warp. {% endhint %} --- # Source: https://docs.warp.dev/university/end-to-end-builds/building-a-real-time-chat-app-github-mcp-+-railway.md # Building a Real-time Chat App (Github MCP + Railway ) {% hint style="info" %} In this tutorial, we’ll follow along with Tech With Tim’s *Advanced Vibe Coding Tutorial w/ Warp* video.\ \ You’ll learn how to use **Warp**, the *agentic development environment*, to build and deploy a fullstack AI-driven app from scratch — including setup, debugging, and deployment using **GitHub MCP servers**. {% endhint %} {% embed url="" %} Advanced Vibe Coding Tutorial w/ Warp (Build & Deploy Apps) {% endembed %} ### Overview This video shows how to go from **idea → working web app → production deployment**, all inside Warp.\ The project: a **real-time chat application** built with **Python (FastAPI)** and a **JavaScript frontend**, deployed through **Railway**, and integrated with **GitHub** via **MCP (Model Context Protocol)**. {% stepper %} {% step %} **Setup & Installation** {% hint style="info" %} Warp is free for Mac, Linux, and Windows. Download it from [https://warp.dev](https://warp.dev/) and sign in with an account. {% endhint %} Once you open Warp, you’ll see three core modes: * **Auto Mode** – Detects whether you’re typing a command or an AI prompt * **Terminal Mode** – For standard shell commands only (`ls`, `pwd`, etc.) * **Agent Mode** – For conversational AI prompts (`build me an app`, `add feature X`, etc.) You can switch modes using the top-bar buttons. Pro tip: Enable voice input for natural prompting or attach screenshots when debugging UI issues. {% endstep %} {% step %} **Generate an App Idea** Warp supports *planning models*, where the AI generates a detailed roadmap before coding. ``` I would like to make something of simple to medium complexity that I could finish in about 30 minutes. I want this to be web based. I want to have some kind of interface and some kind of backend. Can you give me a fun idea that's not going to be too complicated to build out and to eventually deploy? ``` The AI suggested several projects, like a personal mood tracker, quick poll creator, recipe randomizer, and more.\ \ Chosen idea we went with: **a real-time chat application**. {% endstep %} {% step %} **Create a Development Plan** Prompt: ```bash I like idea one. Can you come up with a detailed plan on how to build this? ``` Warp’s agent generated a plan for: * A **frontend** (UI for chat rooms and messages) * A **backend** (FastAPI server for real-time communication) * Database integration and planned deployment steps You can refine or expand the plan interactively by prompting: ``` Make this more detailed. ``` And get back something like this: ``` Here's your development roadmap: 🏗️ Architecture Decisions Frontend Options: • React + Socket.IO Client (recommended for rich UI) • Vue.js + Socket.IO Client • Vanilla JS + WebSockets (simpler but limited) Backend Options: • Node.js + Socket.IO + Express (most popular for real-time) • Python + Flask-SocketIO • Go + Gorilla WebSocket Database: • MongoDB (flexible for chat messages) • PostgreSQL (structured data with JSON fields) • Redis (for session management and caching) 🚀 Recommended Tech Stack 📋 Core Features to Implement 1. Real-time messaging (Socket.IO) 2. User authentication (JWT) 3. Multiple chat rooms 4. Online user presence 5. Message history 6. Typing indicators 7. File/image sharing (optional) 🛠️ Development Steps 1. Create project in ~/Documents/Coding_Projects/realtime-chat 2. Set up Node.js backend with Socket.IO 3. Create React frontend with real-time connection 4. Implement user auth and room management 5. Add message persistence and history 6. Style UI and add advanced features ``` At any point, you can go into the plan and start directly modifying it. And when you're ready, you can tell Warp to: ```bash Please execute this plan. ``` {% endstep %} {% step %} **Allow Autonomous Execution** Once Warp starts executing, you can let Warp run commands automatically: 1. Go to **Settings → AI → Agents** 2. Change **“Always Ask”** → **“Always Allow”** 3. Ensure restricted commands (e.g., `rm -rf`) remain blocked This enables autonomous execution for safe, fast iteration. Warp will run shell commands, create directories, initialize files, and write code. {% endstep %} {% step %} **Running the App** First, you can click into any file, like `main.py` to edit it directly in Warp. Warp displays your file directly in the app for easy editing, similar to any regular IDE experience.
You can also ask Warp to run the app and test locally:
Can you run this app for me so I can test it? Tell me how to view it.
It's possible (like in the video) for an error to occur (e.g., Internal Server Error). If that happens, y you can simply debug conversationally: ```bash I’m getting an internal server error. Can you fix this? ``` And Warp can fix the issue and rerun the app automatically. {% endstep %} {% step %} **Adding New Features** To enhance the app, request features conversationally: ``` Can you add emoji reactions to the messages? ``` Warp will modify frontend and backend code, updating WebSocket logic for real-time reactions. After testing, multiple users can now react to messages in the chat interface. {% endstep %} {% step %} **Preparing for Deployment** Warp integrates directly with version control and cloud deployers via **MCP servers**. Connect GitHub MCP: 1. Go to **Settings → AI → MCP Servers → Add** 2. Add a JSON block for GitHub MCP: ```json { "github": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN", "ghcr.io/github/github-mcp-server" ], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "${}" } } } ``` 3. Generate a GitHub personal access token (Settings → Developer Settings → Tokens) * Enable scopes for: `repo`, `workflow`, `secrets`, `pull_request`, and `environments`. Save and restart Warp. Then tell the agent: ``` Can you make a new remote repo for me and upload my code? ``` Warp uses Git commands automatically: ```bash git init git add . git commit -m "Initial commit" git remote add origin ... git push ``` {% endstep %} {% step %} **Deploying via Railway** Prompt: ``` I have a FastAPI application built with Python. I want to deploy this. It just has an integrated frontend with JavaScript, HTML, and CSS. What’s the easiest way to do that? Can you assist me? ``` Warp recommends **Railway** and walks through: * Creating a Railway account * Connecting your GitHub repo * Deploying directly from GitHub * Generating a public domain Once deployed, test it in your browser — you’ll see your live chat app with emoji reactions working in real time. {% endstep %} {% endstepper %} ### Appendix * [Github MCP Server](https://github.com/github/github-mcp-server) * [Docker Desktop download](https://www.docker.com/products/docker-desktop/) * [Railway](https://railway.com/) --- # Source: https://docs.warp.dev/university/how-warp-uses-warp/building-warps-input-with-warp.md # Building Warp's Input - With Warp *Speaker: Dave, Product Design Lead at Warp* {% embed url="" %} ### The Challenge Redesigning the input was tricky because it’s the primary interface developers use all day, every day.\ Everyone had opinions — and expectations — about how it should look and behave. So, Peter (a product designer on my team) and I iterated on multiple designs using Figma. Once we landed on a version we liked, we shared it internally.\ Most people were excited, but engineering resources were stretched thin — focused on improving agent-mode quality and prepping the Agentic Development Environment. So I thought: *“What if I just Warp it?”* #### Step 1. Locating the Git Diff Chip Code Inside the universal input, there’s a small Git Diff chip — it shows your current branch and open changes. It was one pixel too tall. That tiny visual bug drove me nuts, so I used Warp to find where it lived. Warp searched across the entire codebase and found references inside: * `displaychip.rs` * Related render and configuration files It used a combination of semantic search, code indexing, and traditional grep to pinpoint the exact implementation. *** #### Step 2. Modifying the Font Size Once Warp located the implementation, I asked it to reduce the font size by 1 pixel. Warp automatically edited the relevant lines: * Found the current setting (`system_font_size - 1`) * Adjusted it to (`system_font_size - 2`) I reviewed the diffs to confirm everything looked good. *** #### Step 3. Building and Testing the Change Next, I rebuilt the app using: ```bash cargo run ``` --- # Source: https://docs.warp.dev/getting-started/changelog.md # Changelog Submit bugs and feature requests on our [GitHub board!](https://github.com/warpdotdev/Warp/issues/new/choose) ## 2025.12.17 (v0.2025.12.17.17.17) **Improvements** * Warp now specifies what different models were used for in the credit transparency footer. * You can choose whether forked conversations open in a split pane or new tab. * `warp mcp list`, `warp environment list`, and `warp agent profile list` now support plain-text and JSON output. * MCP server configurations are now displayed in integration details (i.e. `warp integration list`). * Added support for configuring MCP servers in integrations. **Bug fixes** * Fixed a bug where Warp CLI runs could get stuck trying to run a denylisted command. ## 2025.12.10 (v0.2025.12.10.08.12) **Improvements** * Added 'Initialize codebase' button to Code Review, which appears when you're in an uninitialized repo, making it easier to set up codebase indexing and LSP. * Added a new sub-menu to the model picker for selecting the reasoning level of reasoning models. * Added syntax highlighting for Vue template files. * Added support for specifying custom models for agents, integrations, and scheduled agents using the `--model` flag. * Added support for custom HTTP headers in MCP Streamable HTTP or SSE server connections. * Added `/conversations` slash command with a clock-rewind icon to open the conversation history palette. * Warp integrations will more proactively signal if the agent is blocked. **Bug fixes** * Fixed a bug where, in `Settings > Billing and usage`, the credit denomination wasn't set to the proper value for teams with auto-reload on. * The code editor now opens to the right of the active tab when "Choose a layout to open files in Warp" is set to "New tab". * Fixed mouse reporting for apps that don't use the alternate screen buffer, e.g. Radare2. ## 2025.12.03 (v0.2025.12.03.08.12) **Improvements** * The Warp CLI now displays more detailed information when the agent tries to take a prohibited action. * Allow dragging file paths from the Project Explorer into active terminal commands like claude code and gemini for referencing files and folders. **Bug fixes** * Fixed a bug that could cause unbounded memory growth when using Warpified subshells or the legacy (non-tmux) SSH Warpify implementation. * Fixed a bug that could cause `comm` errors to appear in Warpified subshells. * \[Windows] Fixed keybinding for "find in code editor." This is now `CTRL-SHIFT-F` and configurable from Settings > Keyboard shortcuts. * Ensured that the Warp CLI is available automatically on macOS. * Fixed toast messages showing "Notebook" instead of "Plan" when taking actions on Plans in Warp Drive. ## 2025.11.19 (v0.2025.11.19.08.12) **New features** * MCP server configurations can now be shared with others on your team. You can install a server shared by your team with minimal configuration. * Warp now provides out-of-box MCP servers for common services like Github and Linear that can be installed and run with a single click. * Find now works in the code review pane. ## 2025.11.18 (v0.2025.11.18.12.24) **New features** * [Full Terminal Use](https://docs.warp.dev/agents/full-terminal-use): Let the agent use the terminal as you would: interact with REPLs, debuggers, and full-screen apps like `top`. Warp is the only product on the market with Full Terminal Use capabilities. * [`/plan`](https://docs.warp.dev/agents/using-agents/planning): do spec-driven development in Warp. Work with an agent to align on an implementation plan that can be saved, versioned, and even attached to a PR for teammates. * [Interactive Code Review](https://docs.warp.dev/code/code-review/interactive-code-review): Review an agent's code like you would a teammate's, directly in Warp, and ask the agent to address the comments. * [Slack and Linear integrations](https://docs.warp.dev/platform/cli/integrations-and-environments):\*\* Ask the agent to get to work from the tools you already use, track their progress, and take the wheel via live session sharing. * Warp's Agents can now [search the web](https://docs.warp.dev/agents/using-agents/web-search) to retrieve information, when relevant. This capability is configurable via Agent Profiles. ## 2025.11.12 (v0.2025.11.12.08.12) **Improvements** * \[Vim mode] Paragraph text objects are now supported, e.g. `dip` to delete a paragraph. * \[Vim mode] In terminal mode, press `K` over part of a command to inspect it. * Agent notifications now reference conversations' titles instead of their queries. **Bug Fixes** * The copy link button now works as expected after shared sessions have been closed. ## 2025.11.05 (v0.2025.11.05.08.12) **New Features** * From the code review panel, add file diffs or the entire diff set as context to an agent conversation. **Improvements** * Warp now defaults to requiring approval before the agent will execute a command. * Shared session links will open in a new tab by default, rather than a new window. * Display summarization tokens when conversation summarization is triggered. ### 2025.10.29 (v0.2025.10.29.08.12) **Improvements** * Display conversation summaries when summarization is triggered. * Added completions for the Warp CLI. * Updated community links from Discord to Slack throughout the app. **Bug Fixes** * Reduce padding on restored Agent Mode blocks and expanded shell commands. * Add support for delete key in vim mode in code editors. * Fix rendering for multi-line Agent Mode shell commands. ### 2025.10.22 (v0.2025.10.22.08.13) **New Features** * Warp will suggest new unit tests in addition to code fixes via Suggested Code Banners **Improvements** * Fixed an issue where the model specs menu would get cut off. **Bug Fixes** * Fixed the close icon from becoming too small on the Warp Drive notebook viewer. * Fixed an issue where the CLI would report invalid debug IDs in its troubleshooting output. ### 2025.10.15 (v0.2025.10.15.08.12) **New Features** * Warp now supports scaling the entire application. Change the zoom level in `Settings > Appearance > Window` or by pressing `CMD-+` on Mac or `CTRL-+` on Windows / Linux. **Improvements** * The code review pane can now show diffs against other base branches. * Added confirmation dialog when cancelling AI summarization requests. * You can now expand Suggested Code Diffs further on down arrow. * Restore closed panes using `CMD-SHIFT-T` or `CTRL-ALT-T` on Windows / Linux within 60 seconds of them being closed. * Added shell completions for the Warp CLI. * Warp Drive Environment Variables are now supported for Warp for Windows (PowerShell, Git Bash, and WSL). * Enriched the model picker to include detailed specs of each model's intelligence, speed and cost. **Bug Fixes** * Fixed the custom window size setting not reliably applying on startup. ### 2025.10.08 (v0.2025.10.08.08.12) **Improvements** * Added the ability to sort team members by usage in `Settings > Billing and usage`. * Added UI indication of when agent mode conversation summarization is in progress, with a cancellation confirmation dialog. * Made the sizing for headings consistent across all collapsible blocks. * `@` menu no longer appears when running JS package manager subcommands, like `yarn workspace @org/package add`. * \[macOS] Resolved an issue re-mapping keybindings that conflict with MacOS keybindings. **Bug Fixes** * Agent mode requested command previews now only show the first line of multi-line commands. * Removed misleading "auto-approve" button while Warp is generating a fix for failed terminal commands. ### 2025.10.01 (v0.2025.10.01.08.12) **Improvements** * Editing suggested file changes now takes place in the same pane, instead of a new tab. * When using the `@` context menu outside of a repo, current folder's contents are now listed. * The code mode file picker will now display gitignored files. * \[macOS] Warp now stores session restoration data in a more-secure application container. ### 2025.09.24 (v0.2025.09.24.08.11) **New features** * You can now create new files directly in Warp. Search "New File" in the command palette. MacOS users can find it in the app menu under "File". **Improvements** * Change the "Reject" label to "Refine" for code diffs and plans. They're functionally the same, though we think this will clear up some confusion over what hitting "Reject" will do. * Added realtime form validation to Environment Variables when secret redaction is enabled. * Avoid showing the `@` context completions menu when typing a package name. This covers common installers for JS, Python, Ruby, Go, PHP, and more. * Add an "auto-approve" option with a keyboard shortcut for requested commands and MCP tool calls. This makes it easier to accept a command and auto-approve future commands in a single button. **Bug fixes** * Fixed error with fish shell v4. * Avoid showing multiple "stopped task" banners when toggling a resumed conversation back to stopped before the agent begins responding. * Fix input problems with Russian on PowerShell. ### 2025.09.17 (v0.2025.09.17.08.11) **New Features** * Warp agents are now available via the command line! [Learn more](https://docs.warp.dev/developers/cli) * Added support for custom Regex names in Enterprise Secret Redaction. **Improvements** * The @ context menu can now be activated outside of Git repositories (for actions such as attaching blocks/workflows), when in autodetection or AI input mode. * move the auto-approve button alongside the agent "stop" button for easier access. * Move the "stop" button alongside the "Warping..." indicator. This restores the "stop" button to classic input users, and offers a more intuitive experience for universal input users. * Added right-click context menu to code review pane with split pane controls. * Files selected in the file tree now open in a preview mode until interacted with. * Warp's agent now shows reasoning traces from reasoning models. * Ctrl-c during a long running command run by the agent will also stop the agent, not just the command. **Bug Fixes** * Fixed nested lists in agent markdown output sometimes not rendering properly. * Fix slow scrolling on macOS Tahoe. * Fix todo lists overflowing off of the screen for 10 or more items. * Fix code review maximize button appearing outside of split pane mode. * Fix the stop button unexpectedly disappearing when accepting the "start a new conversation" suggestion. ### 2025.09.10 (v0.2025.09.10.08.11) **Improvements** * Added support for ignoring input suggestions. Click the X next to an item in your up-arrow history menu to hide that from showing up again. You can also enable the `Show autosuggestion ignore button` setting to add an X to autosuggestions directly in your input. * Git UI detects more changes in git worktrees. * You can now rename/delete items in the file picker and open them with the system file explorer. * Combine "refine" and "cancel" buttons into a single "reject" button. This lets you give feedback on code diffs, commands, and plans with a single button. * You can now switch node versions by clicking on the node version chip. * Added a "New Agent" button to the agent management panel to start a new agent conversation more easily." **Bug fixes** * Fixed an issue where agent output in a code block could be inserted at the wrong place. * Fixed code review diff buttons incorrectly receiving mouse events. * Avoid auto-expanding an agent's requested commands while you are using voice dictation. * Add back the auto-approve button for classic input mode. * Fixed keyboard navigation of chip menus in the input while an agent is running. * Properly reset context when user sends query to agent. ### 2025.09.03 (v0.2025.09.03.08.11) **Improvements** * Added support for rendering H4-H6 in markdown. ### 2025.09.01 (v0.2025.09.01.20.54) **New features** * Revert diff hunks directly from the Code Review Pane. * Add lines of a file to the context of a conversation from the Warp code editor. * You can now search and restore Agent conversations in your history using the `conversations:` prefix. * You can now search and navigate to indexed code bases using the `repos:` prefix. **Improvements** * Voice transcriptions are no longer cut off when unfocusing an input editor. * You can now select the $EDITOR environment variable as the default application for opening file links. * Added new header treatment for unfocused Warp windows. * \[Mac] A new dock icon option to celebrate Code Country - the Cow icon! (`Appearance > Icon` to change) * Pasting images in the terminal input switches to Agent mode and attaches the image as context. * Added support for the Streamable HTTP transport for MCP servers. **Bug fixes** * \[Windows/Linux] Fixed keybinding conflict for split pane down action for the Input, when a code diff is not active. * Fixed tab tooltips displaying unwanted leading and trailing whitespace. * Pressing the up key while the model picker is open no longer opens the command history. Opening the model picker while the command history is open now closes the command history. ### 2025.08.27 (v0.2025.08.27.08.11) **New Features** * [Agent Profiles](https://docs.warp.dev/agents/using-agents/agent-profiles-permissions#agent-profiles): define how your agent operates. * New pane to view changes to a git repository. * Files now open in a tabbed viewer. * Syntax highlighting for Scala files in Warp. **Bug Fixes** * Fix paths not inserted when pasted images are not attached. ### 2025.08.20 (v0.2025.08.20.08.11) **New features** * [Suggested Code Diffs](https://docs.warp.dev/agents/active-ai#suggested-code-diffs) - Warp now intelligently suggests the appropriate fixes for any simple errors encountered in the command line e.g. compiler errors. Head to `Settings > Active AI` to toggle this feature. **Improvements** * Added setting to hide fixed prompt suggestions. * Updated default input type from 'Classic' to 'Universal'. * Improve the styling and usability of tabs for narrow windows. **Bug fixes** * Fix failures to start zsh sessions when using prezto. * The agent status indicator no longer disappears while a command is running. * Selecting a workflow will correctly close the workflows menu. * Don't auto-attach image if file pasted as plaintext. * Fixed issue with drag-drop images. * Fixed display of completions that may have included special characters. ### 2025.08.13 (v0.2025.08.13.08.12) **New Features** * Agent Mode now displays interactive code blocks when referencing snippets from your codebase. You can easily copy the snippet, add the snippet as Agent Mode context, or open the file in Warp's built-in editor. * Agent Mode now creates and tracks task lists for more complex workflows. See [Agent Task Lists](https://docs.warp.dev/agents/using-agents/agent-tasklists). * Added support for defining project-scoped rules with a WARP.md file. See [Rules](https://docs.warp.dev/knowledge-and-collaboration/rules#project-scoped-rules). * Added Slash Commands (/) in Agent Mode or Auto-Detection Mode to quickly run built-in actions or saved prompts without leaving the input field. See [Slash Commands](https://docs.warp.dev/agents/slash-commands). **Improvements** * Added syntax highlighting for SQL in Warp's code editor. * Added button to dismiss suggestions footer. * \[Linux and Windows] Added support for drag-dropping multiple images. * New files in Warp open in a pane by default. You can customize this behavior via `Settings > Features > General > Choose a layout to open files in Warp`, where you can switch between opening files in a pane or a new tab. * Input stays in Agent Mode after an image is attached, instead of switching to shell mode. **Bug Fixes** * Fixed behavior when clicking Agents chip in Classic input mode. * Repository-scoped Warp features are now available in git worktrees. * Fixed drag-drop of images for long-running commands (eg Claude Code, vim). * \[Linux and Windows] Fixed attaching images from pasted files. * Fixed "Find in selected block" feature after clicking on an active running block. * Fixed text overlap on narrow panes with Classic Warp Prompt with Same Line Prompt. * \[macOS] Fixed a bug that would cause text to disappear for very long Agent Mode prompts. ### 2025.08.06 (v0.2025.08.06.08.12) **New Features** * GPT-5 is now available to all users. Use the model selector in the input bar to try it yourself. * \[MacOS] Added the ability to attach images as context by drag-and-dropping them or pasting from your clipboard. **Improvements** * You can now open any files within Warp's editor (including txt/csv files)! * Warp can now edit Bazel files. * Warp can now edit `.bashrc` and `.zshrc` files. * Added `Always show secrets` to Secret Redaction for a less obtrusive secret redaction mode. * Added reset time to the Billing and usage menu. **Bug Fixes** * Fix fish version <= 3.7 when vi keybindings were activated. * Fixed bug affecting the "Open in Markdown Viewer by default" setting, you can use this setting to determine whether you'd like to view/edit MD files in Warp by default. * Fixed an issue where typeahead for the next command could be lost if you typed really quickly after hitting enter on the previous command. * Resolved an issue where stopping voice recording via the button would interrupt transcription. ### 2025.07.30 (v0.2025.07.30.08.12) **New Features** * You can now set a configurable block size limit for higher scrollback limits! Head to `Settings > Features > Session > Maximum rows in a block` to configure. * \[Linux] Added support for pasting images as context. **Improvements** * The "Open in Warp" banner now supports code files. * When using Agent Mode, user-configured redaction rules are now applied to the contents of diffs and files, in addition to terminal blocks. * Add SHIFT-ENTER keybinding. Claude Code users can use this to add linefeeds to their prompt. * Added an overflow menu button in the top right of AI blocks for copying contents. **Bug Fixes** * Deleted files no longer appear in the @-context selection box. * Users with Turkish locale will no longer see an extra letter "i" between commands. * \[Windows] Restored windows will no longer be positioned with the title bar above the top of the display. ### 2025.07.23 (v0.2025.07.23.08.12) **New Features** * \[Windows] Added support for pasting images from Clipboard into Agent Mode context. **Improvements** * Added image filename when pasting images into Agent Mode context. * Added support for restarting MCP servers when Warp restarts. * Added support for copying AI block and conversation contents via the context menu. * Added Node.js prompt chip. **Bug Fixes** * Fixed a bug where attaching a block as AI context would reset the input state. * Fixed a spacing issue with horizontal scrollbars in agent planning view. * Added support for auto-expanding manually executed Agent Mode suggested commands. * Fixed a bug where Warp would hang while updating code symbols in the @-context menu. * Modified secret redaction regexes to be case sensitive. Use a `(?i)` prefix to make your regex case insensitive. * Modified the Universal Input to no longer exit a conversation via "backspace". ### 2025.07.16 (v0.2025.07.16.08.12) **New Features** * \[macOS] Support pasting images from clipboard into Agent Mode context. * Migrated Warp's built-in set of Secret Redaction regexes into user's regexes, giving users more fine-grained control over their secret redaction. * Added support for Find and Replace using `CMD-F` when viewing diffs or editing files in the built-in code editor. **Improvements** * Removed lock icon from Secret Redaction in favor of asterisks when ligatures are enabled. * Added individual keybinding shortcuts to change input modes. **Bug Fixes** * Fixed an issue where the hover tooltip for disabled prompt suggestions either didn't render at all or was incredibly hard to read. * Fixed the background color of inline code in restored AI blocks. ### 2025.07.09 (v0.2025.07.09.08.11) **New Features** * New secret redaction strikethrough UI. Comes with new `Settings > Privacy > Hide secrets in block list` setting that defaults to off. **Improvements** * You can now resume stopped AI conversations: `CTRL-C` to stop and `CMD-SHIFT-R` to resume on macOS or `CTRL-SHIFT-R` on Windows and Linux. * Code Diff view's default Edit and Revise keybindings changed and made configurable. * Added syntax highlighting for PowerShell, Kotlin and Swift. **Bug Fixes** * Fixed an issue with `.inc` file chunking. * Clicking on an active, long running block will no longer select the block, but focus the input. ### 2025.07.02 (v0.2025.07.02.08.36) **New features** * Tab close button can now be set to the left. **Improvements** * Added syntax highlighting for TOML, PHP, Lua, Ruby, and Groovy (with Java syntax). * Added conda chip support to new Universal Input prompt. * Increased color contrast on tabs. * Added "Upgrade" menu item for free users and "Billing and Usage" menu item for paid users in the user menu for easier access to subscription management. **Bug fixes** * When AI is disabled, ESC should no longer enter Agent Mode. * Fixed an issue on WSL where files created by Agent Mode would have CRLF line endings. * \[Mac] Tweaked autoupdate logic to more reliably remove old applications off disk. * Fixed "Manage plan suggestion setting" link. ### 2025.06.25 (v0.2025.06.25.08.12) **New Features** * Git branch and directory chip now are searchable. **Improvements** * Added support for HCL syntax highlighting in Terraform files. **Bug Fixes** * Fixed potential crash when displaying context chips with Unicode characters in file paths. * Fixed a rendering issue with line numbers in suggested diffs. * Attach context chip no longer appears if there is no context you can attach. ### 2025.06.20 (v0.2025.06.20.22.47) **New Features**\ \ **Warp 2.0 is here - The Agentic Development Environment** Built from the ground up for agentic workflows, Warp is the most powerful tool for prompting, coding, and collaborating with multiple agents. **Multithread yourself with agents** * Launch intelligent tasks (agents) with a prompt. Agents gather context using CLI commands, MCP, Warp Drive, and Codebase Context. * New Agent Management Panel to monitor, multitask, and intervene across multiple agents. * Set autonomy controls and get notified when agents need your help. **A state-of-the-art coding platform** * 70% on SWE-bench, #1 on Terminal-Bench — the highest quality coding agent available. * Codebase Context: Warp indexes and understands your codebase, allowing you to debug and write code faster without storing any code on Warp's servers. * Review and edit diffs directly in Warp's native code editor. **Still a great command-line**\n- * A new Universal Input: run commands or prompt agents from a single interface. Lock into command- or agent-mode, or let Warp detect automatically. * Choose your model, continue a conversation, attach images, link URLs, or reference files using `@`. * Modern, IDE-like terminal experience with completions, predictions, and mouse support, all built natively in Rust for performance. **Context for your teammates and agents** * A knowledge store where you can configure MCP, define Rules, and store shared commands, notebooks, env vars, and prompts as context. All of this comes with higher AI usage limits on our Pro and Turbo plans, plus new pay-as-you-go overages for continued access to premium models.\ \ **Watch the full Warp 2.0 launch event →** [**warp.dev/future**](https://warp.dev/future) ### 2025.06.11 (v0.2025.06.11.08.11) **New Features** * You can now attach images as context for Agent Mode! Simply use the image icon and select the files you wish to attach. **Improvements** * \[Linux] Added support for standard installed Zed and Zed Preview as default code editors. * \[macOS] Added support for Zed Preview as a default code editor. * Added syntax highlighting support for TSX and JSX. * Increased visibility of non-focused diff hunks when navigating diffs. * New Agent Mode output will no longer force-scroll. **Bug Fixes** * Fixed keybinding being missing for editing requested commands. * Removed keybindings for zero-state prompt suggestions, to avoid conflicting with tab switching keybindings. ### 2025.06.04 (v0.2025.06.04.08.11) **New Features** * Sonnet 4 is now an available model (enabled by default in the "auto" model). **Improvements** * Press the hovering fast-forward button to auto-execute all Agent actions until the task completes. * Added ability to share session via `RIGHT-CLICK` on tab. * You can now give the Agent permission to auto-execute MCP tool calls. **Bug Fixes** * Fixed an issue where Agent Mode would sometimes not find untracked files in git repos. * Fixed Agent Mode file editor randomly scrolling to the first line of a file. ### 2025.05.28 (v0.2025.05.28.08.11) **New Features** * Added MCP server support. It's now possible to extend Agent Mode's capabilities using programs that support the [Model Context Protocol](https://docs.warp.dev/knowledge-and-collaboration/mcp). ### 2025.05.21 (v0.2025.05.21.08.11) **New Features** * Set new Agent Mode permissions around executing commands, reading files, coding, and planning in AI settings. **Improvements** * You can now choose the coding model behind Agent Mode. * Agent Mode conversations can now be paused via a hovering control panel in the right corner. * Improved maximum block output capacity to 50k lines. **Bug Fixes** * Fix edit icon positioning for shared sessions. ### 2025.05.14 (v0.2025.05.14.08.11) **Improvements** * Introduced refining functionality for requested commands. * Added ability to continue previous Agent Mode conversations directly from response blocks. * Overhauled the editing experience for suggested plans. * Renamed input auto-detection setting to natural language detection in Command Palette for better clarity. * Zero-state prompt suggestion chips are now horizontally clipped instead of being individually shrunk. **Bug Fixes** * Fixed incorrect ordering in history of executed commands and agent mode queries. * Copying text from Agent Mode plans and suggested code changes now works more reliable. * \[Windows] Made some changes to reduce false-positives from virus scanners. ### 2025.05.07 (v0.2025.05.07.08.12) **Improvements** * Redesigned env var collection block UX. * Added ability to embed Warp Drive Prompts inside Notebooks. * Added AI block loading animation. * Added ability to select and continue previous Agent Mode conversations. * \[MacOS] Improved time to update and relaunch Warp. **Bug Fixes** * Fixed a bug where escape was clearing autosuggestions in Vim's insert mode. * Stopped showing an unexpected block in the planning output for o3. * \[Windows] Fixed a bug when hovering symlinks in WSL sessions. * Fixed terminal input remaining hidden after cancelling an env var block. * Prevented unexpected empty code fences in agent mode when using Gemini 2.5 Pro or o3. ### 2025.04.30 (v0.2025.04.30.08.11) **New Features** * Added desktop notifications for Agent Mode. Now, you can be notified when an agent completes a task, or when an agent needs your attention to continue (i.e. to review a command, to run an unsafe command, etc). You can configure these settings from `Features > Notifications`. **Improvements** * Agent Mode is now more robust at applying code diffs. * Redesigned requested commands UX. * Improved readability for "needs password prompt" desktop notifications. ### 2025.04.23 (v0.2025.04.23.08.11) **Improvements** * Restored Agent Mode conversations can now be continued. * Agent Mode now has access to a filepath search tool for coding tasks. * Improved the reliability and positioning of suggestion dialogs for rules and Agent Mode workflows. * We reworked the command palette search to make it more useful. **Bug Fixes** * Fix XML parse errors complaining that a "thought" cannot be empty. * \[Windows] Fixed an issue where Agent Mode would fail to search when in WSL or Git Bash. * Show "copy" button and other text selection tools when right clicking selected environment variable text. * Fixed old shortcuts icon appearing in new tab page, if recommended AI prompts are disabled. * Fish commands containing syntax errors now correctly "finish" the block. ### 2025.04.16 (v0.2025.04.16.08.11) **New features** * After editing a code diff, you will now be returned to your original Agent Mode conversation. * Commands with certain invalid arguments will no longer be suggested, such as file paths, git branches, and docker images. * \[Windows/Linux] You can now open launch configurations in the current window with `SHIFT-ENTER` or `CTRL-ENTER` on the Command Palette. * Added more default regexes for Secret Redaction, pertaining to AI API keys. * Typing `ESC` in the terminal input editor now clears any Autosuggestions. **Bug Fixes** * Fixed issue with rendering performance for file links in AI output. * Fixed an issue that causes Warp to crash when Agent Mode outputs broken links. * New tab page no longer falls back to email if display name is not set. * Fixed prompt chips not being clickable in new session with prompt pinned to top. * Agent Mode now properly greps for queries containing double quotes. ### 2025.04.09 (v0.2025.04.09.08.11) **New features** * Recommended AI prompts are shown in new tabs, go to Settings > Features to disable. **Improvements** * Agent Mode is now better at searching for exact function / symbol / etc. names in your code. * Fix text selection for environment variable blocks. * You can now attach select text in a code block as the Agent Mode context. * Warp now supports marked text in the IME (non-English keyboards). * Make text selectable for non-expandable command outputs (ex. failed agent tasks). * Zero-state chips are no longer shown when entering AI input with a non-empty input buffer. **Bug fixes** * Fixed a bug that prevented copying of selected text of a code block when Agent Mode is enabled. * Fixed a bug that allows a selection in the code block and a selection on the text simultaneously. * \[Mac] Fixed shells installed via Homebrew not appearing in the list of available shells. ### 2025.04.02 (v0.2025.04.02.08.11) **New features** * Get early access to unreleased and experimental features with [Warp Preview](https://docs.warp.dev/community/warp-preview-and-alpha-program). **Improvements** * Improved login item management to respect when users manually remove Warp from login items in System Preferences. * The input editor now supports `CMD-SHIFT-UP/DOWN` on macOS or `CTRL-SHIFT-HOME/END` on Windows/ to move and select to the top/bottom of the text buffer. * Removed 3-hour conversation timeout, allowing AI conversations to remain active indefinitely. * Show a small popup when users who are at AI limits have their quota reset. * Display a notification when AI request quota resets after hitting the limit in the previous billing cycle. * \[Windows] Added “Open Warp in new tab / window” item for folders in the File Explorer context menu under “Show more options”. **Bug fixes** * Minor fixes for iTerm and Kitty images. * Fixed regression related to using keyboard shortcuts to navigate a command an empty split pane. * Fixed some issues with Agent Mode failing to read files. * Click targets in scroll views should more reliably click while moving the mouse. * \[Linux] Window corners are correctly rounded with themes having background images. * Fix a few common failure modes for Agent Mode response deserialization errors. ### 2025.03.26 (v0.2025.03.26.08.10) **New features** * Kitty Image Protocol is now supported on macOS and Linux! **Improvements** * Agents may suggest using Dispatch to create a plan for complex tasks. You can disable suggestions to create plans under `Settings > AI > Dispatch`. * You can now resume auto-execution of a previously dispatched plan if your follow-up query is set to "Dispatch", instead of creating a new plan. * Added a keyboard shortcut to accept the most recent command correction. * Zero-state suggestions are no longer shown when using a saved Prompt or past AI query. * Tabs will not resize while hovered, making closing multiple tabs easier. * The warning dialog for closing sessions now responds to the `ENTER` and `ESC` keys. * Selected text within Agent responses can now be copied via the `RIGHT-CLICK` menu. * \[Windows/Linux] You can now toggle whether a block is selected using `CTRL+CLICK`. **Bug fixes** * Fixed an issue that caused Agent mode blocks to be incorrectly highlighted when performing rectangular selection. * Fixed an issue where duplicate cloud preferences could be created during sync operations. * Fixed keyboard shortcut padding for prompt suggestions. * Fixed color contrast issues with light themes for the Pair & Dispatch chip in Prompt Editor. * Agent Mode will no longer default to Windows-style line endings when creating a new file on macOS or Linux. * PowerShell sessions will start even if the profile has a terminating error. * The numpad `ENTER` key now behaves like the `ENTER` key in Agent Mode. * \[Mac] Fixed a scenario where Warp would beachball while updating. * \[Windows] In WSL, show completions for symlinked files. * \[Windows] Fixed completions with `.exe` suffixes. * \[Windows] Fixed setting Git Bash custom shell paths. ### 2025.03.12 (v0.2025.03.12.08.02) **New features** * Agent Mode output is now rendered with Markdown formatting. * You can now change the font used for Agent Mode output (Settings > Appearance). **Improvements** * \[Windows] Significantly improved pseudoconsole throughput (\~3x improvement). * The Agent Mode model will now automatically select the best model based on your specific task. * Ordered lists in Markdown now uses alphabetical or Roman numeral labels when nested. * \[Windows] We now search more locations for a PowerShell executable. * Reduced the size of Markdown headings. **Bug fixes** * Control whether Warp starts at login via a setting under Settings > Features > Start Warp at login (MacOS only). * \[Windows] Fixed an issue where dynamic enums commands weren't being executed. * Fixed a bug with the mouse cursor when hovering over buttons. * Fixed a bug that causes high CPU load with codebase context. ### 2025.03.05 (v0.2025.03.05.08.02) **New features** * iTerm Image Protocol is now supported on Mac and Linux! * \[macOS] Warp now starts at login (can be disabled in System Settings > Login Items & Extensions). **Improvements** * Input mode automatically returns to command mode when a command is detected in an AI follow-up request. (Only applies if natural language detection is turned on.) * Text selections can now be attached to Agent Mode queries as context. * \[Windows] Window transparency now works when using DirectX 12. * \[Windows] Added “Open Warp Here” item for folders in the File Explorer context menu under “Show more options”. **Bug fixes** * Fixed an issue where `bazel` completions could use up a lot of CPU. * \[macOS] Fixed a regression where the title bar would be transparent in fullscreen windows. * \[Windows] Fixed children of shell processes not always exiting properly at shell termination. * \[Windows] Fixed Warpification for custom-built WSL distributions. * \[Windows] Fixed Ctrl-Up and Ctrl-Down shortcuts not working in alt screen programs (e.g. vim and emacs). * \[Windows] Fixed last line of output getting truncated with some prompt configs in WSL. * \[Windows] Fixed some hangs when using Agent Mode. * \[Windows] Fixed issues starting PowerShell in strict mode. * \[Windows] Fixed an issue where `.` would turn into n in ZSH when using ohmyzsh in WSL with an Italian keyboard layout. ### 2025.02.26 (v0.2025.02.26.08.02) **New features** * Warp is now available for Windows! See our [#windows](https://docs.warp.dev/readme#windows "mention") Quickstart Guide * Prompt, plan, and execute fully autonomous tasks from [Agent Mode with Dispatch](https://docs.warp.dev/agents/using-agents#dispatch) (Beta) * Add codebase context support to Agent Mode. Currently enabled for git repositories only. * \[macOS] You can now customize your [App Icon](https://docs.warp.dev/terminal/appearance/app-icons) in `Settings > Appearance > Icon`. * Create and store [Rules](https://docs.warp.dev/knowledge-and-collaboration/rules) to use as Agent Mode context. * Show default suggestions in Agent Mode input. **Bug fixes** * Multicursor input is now `ALT` on Linux and Windows. * Fix prompt chip misalignment for certain fonts. * Autosuggestions remain visible when the input is not focused, to prevent height flickering when the autosuggestion soft wraps. ### 2025.02.19 (v0.2025.02.19.08.02) **New features** * Create and store AI memories to use as Agent Mode context. **Improvements** * Expanded Prompt Suggestions to cover more use cases. **Bug fixes** * Fixed Warp Prompt clipping issues encountered with certain fonts. * Fixed inverse and double-underline cell styling not persisting through session restoration. ### 2025.02.12 (v0.2025.02.12.16.51) **New features** * `CTRL-TAB` is now configurable under `Settings > Features` to cycle between the most recently used sessions rather than just activating the next tab. **Improvements** * The LLM menu is now keyboard-navigable. **Bug fixes** * Clearing Blocks now also clears any active Prompt Suggestions. * Fix Kali Linux `.bashrc` breaking Warp. * Fix bug with Agent Mode in PowerShell sessions with multi-line commands. * Fixed a bug that prevented Autosuggestions from being accepted and Agent Mode model from being selected while up arrow history was open. * Fixed cases where dragged Warp tabs would get stuck. * Restores subshell Warpification script. * \[macOS] Fix hotkey keybinding not triggering on non-US keyboard input source. ### 2025.02.05 (v0.2025.02.05.08.02) **New features** * You can now talk to Warp to transcribe Agent Mode prompts or any other text! Set up the hotkey in `Settings > AI > Voice` or use the microphone button in AI input mode to trigger this. **Improvements** * Autosuggestions in the input now soft-wrap. * You can now attach default environment variables to a workflow. ### 2025.01.29 (v0.2025.01.29.08.02) **New features** * Added support for DeepSeek R1 and V3 in Agent Mode! Try them out by switching to Agent Mode and clicking on the model name in the prompt. * Agent Mode can now auto-execute readonly requested commands. Commands can also be explicitly allowlisted or denylisted. See `Settings` -> `AI` -> `Autonomy` to configure. **Improvements** * You can now use `j`/`k` keys to navigate up and down Warp Drive. * Agent Mode chip added to Warp prompt. * Next Command is preferred over Command Corrections in cases where Corrections has less confidence. * Moved the Settings modal to its own tab. **Bug fixes** * Fixed a bug that caused double-clicking to select the incorrect range of text when non-ASCII characters are present. * Saving workflow aliases no longer deletes aliases from other workflows. * Fixed cases where a small part of the bottom of the editor would be cut off at certain appearance settings. ### 2025.01.22 (v0.2025.01.22.08.02) **New features** * Generate input for any interactive CLI using ⌘I on macOS and Ctrl-Shift I on Linux. * You can now dynamically populate arguments in Workflows with shell commands. * Added support for rectangular selection when holding ⌘⌥ on Mac and Ctrl-Alt on Linux. **Improvements** * Settings are now searchable and rendered in a separate tab * Terminal font weight is now configurable. * Launch Configurations now save the focused window state and active pane. * Autosuggestions in the input now soft-wrap. **Bug fixes** * Fixed several issues where hovering over URLs in the blocklist sometimes resulted in URLs only being partially detected, or not detected at all. * Fixed issue with Prompt Suggestions occasionally remaining visible after subsequent command exeuction. * \[macOS] Changed the download location for new Warp updates to prevent corruption. ### 2025.01.15 (v0.2025.01.15.08.02) **New features** * Font ligatures in grids! See setting under Settings > Appearance > Text to enable. * You can now define aliases that expand to Warp Drive workflows. **Improvements** * Launch configurations now save focused tab state. * Added support for Windsurf as an external editor. * Mac-only: added a new AI app menu. **Bug fixes** * Fixed pane navigation when panes are not overlapping. * Fixed a bug where Agent Mode LLM choices weren't populated correctly upon logging in. * Fixed bug with drag-and-drop files causing duplicated filepaths. ### 2025.01.08 (v0.2025.01.08.08.02) **New features** * A percentage of Warp users may now enable cloud syncing of their Warp settings under `Settings` > `Account`. We are gradually enabling this feature for all Warp users starting in this release. See the [documentation](https://docs.warp.dev/features/settings-sync) for more information. * Introduced a setting to hide the tab bar (Zen mode). See the [documentation](https://docs.warp.dev/appearance/tabs-behavior) for more information. * Introduced new profile menu. **Improvements** * Removed the Command Corrections banner, as there's already an autosuggestion in the input editor. * Implemented `_`, `+`, and `-` motions in Vim mode. * Warp will now show a warning before closing a session with a long-running process. * Pasting multiple lines of content into the terminal's `Find` feature will convert it into a single line of text, rather than hide previous lines. * Titles of notebooks imported from Markdown files no longer end in `.md`. * "What's new" no longer shows on update. * Added the ability to hide blocklist lines. * Consolidated top bar navigation items. * Settings are now in the profile menu. * Scrollbars and pane controls only show on hover. **Bug fixes** * Fixed the rendering of keyboard shortcuts at larger font sizes. * Tab completion menu now closes after selecting a single remaining suggestion. * Warp displays an error if relaunching to apply an update failed. * Old prompt suggestions won't reappear when issuing AI queries rapidly or after clearing the blocklist. * Accepting the 'What happened here?' autosuggestion no longer clears AI context blocks. * `alt` key now sends meta control codes to the shell in long-running blocks and the alt screen. * When secret redaction is disabled, secrets are not redacted in command corrections. * \[MacOS] Fixed a bug where assigning `cmd-shift-left` and `cmd-shift-right` to an action sometimes wouldn't work. ### 2025.01.02 (v0.2024.12.18.08.02) **Improvements** * We now immediately show an error when trying to Warpify unsupported shells over SSH. **Bug fixes** * Fixed blank lines being appended to some blocks on resize. * Fixed an issue where the AI context disappears when accepting the default autosuggestion. ### 2024.12.26 (v0.2024.12.18.08.02) **Improvements** * We now immediately show an error when trying to Warpify unsupported shells over SSH. **Bug fixes** * Fixed blank lines being appended to some blocks on resize. * Fixed an issue where the AI context disappears when accepting the default autosuggestion. ### 2024.12.19 (v0.2024.12.18.08.02) **New features** * Introducing: Next Command! Next Command uses AI to suggest the next command to run based on your active terminal session and command history. Visit Settings > AI to turn it off. * Added support for block and underline-styled cursors in the input editor (while vim mode is disabled). **Improvements** * Clarified default permission information for sessions and Warp Drive objects. * F11 (configurable) now toggles fullscreen on Linux and Windows. * PowerShell environment variables are now recognized in completions. * Cursor shape is now more responsive to clickable buttons. **Bug fixes** * Characters from unhandled keystrokes no longer handled as typed characters in the alt screen, e.g. when using vim. * Fixed issue with copying secrets when secret redaction is disabled. * kubectl completions now respect your kubeconfig, specified through environment variables or command line flag. * ssh commands with permission issues should no longer suggest sudo. * Fixed an issue with lazygit entering a blank screen. * \[macOS] Fixed a bug where Warp disk images volumes might not be unmounted after an update. * \[macOS] Improved robustness of autoupdate process. ### 2024.12.13 (v0.2024.12.10.15.55) **New features** * Prompt Suggestions may appear above the input, helping you activate Agent Mode quickly in scenarios where it might be helpful. Note this feature sends activity to an LLM to generate prompts, head to Settings > AI > Agent Mode if you'd like to turn it off. * Warp now has support for Claude 3.5 Sonnet and Haiku. Choose which model to use in the dropdown menu above your Agent Mode prompts. * Agent Mode can now leverage your Warp Drive contents to tailor responses to your personal and team developer workflows. * Warp has added a Shell Selector - a dropdown menu next to the 'New tab' button in the tab bar - to quickly pick from the shells available on your system. * Agent Mode can now suggest code changes in a built-in code editor. * \[macOS] You can now configure whether closing the last window quits the app (in Settings > Features). **Improvements** * Added settings to manage Warp's AI integration and permissions. Visit Settings > AI to learn more. * Single-window launch configs can be launched into the active window from the launch config palette using cmdorctrl-enter. * You can now set `PS1` with `PROMPT_COMMAND` in bash. **Bug fixes** * Fixed an issue where the 'Git Uncommitted File Count' prompt chip did not work on fish on Linux. * Fixed highlighting for arguments in workflows with multibyte characters * Hitting ENTER within the Launch Config Save Modal will work as expected. * Fixed issue with copying secrets when secret redaction is disabled. ### 2024.12.11 (v0.2024.12.10.15.55) **New features** * Prompt Suggestions may appear above the input, helping you activate Agent Mode quickly in scenarios where it might be helpful. Note this feature sends activity to an LLM to generate prompts, head to Settings > AI > Agent Mode if you'd like to turn it off. * Warp now has support for Claude 3.5 Sonnet and Haiku. Choose which model to use in the dropdown menu above your Agent Mode prompts. * Agent Mode can now leverage your Warp Drive contents to tailor responses to your personal and team developer workflows. * Warp has added a Shell Selector - a dropdown menu next to the 'New tab' button in the tab bar - to quickly pick from the shells available on your system. * Agent Mode can now suggest code changes in a built-in code editor. * \[macOS] You can now configure whether closing the last window quits the app (in Settings > Features). **Improvements** * Single-window launch configs can be launched into the active window from the launch config palette using cmdorctrl-enter. * You can now set `PS1` with `PROMPT_COMMAND` in bash. **Bug fixes** * Fixed an issue where the 'Git Uncommitted File Count' prompt chip did not work on fish on Linux. * Fixed highlighting for arguments in workflows with multibyte characters * Hitting ENTER within the Launch Config Save Modal will work as expected. ### 2024.12.05 (v0.2024.12.03.08.02) **New features** * You can now share shared sessions directly with your Warp team, another Warp user, and non Warp users via a URL. * You can now share Warp Drive objects directly with others via email or a URL. * Padding in the alt-screen can now be manually adjusted. Defaults to no padding. **Improvements** * Improved PTY throughput by \~13% through more efficient dirty region computation. ### 2024.12.02 (v0.2024.12.02.15.50) **Bug fixes** * Warp no longer uses so much CPU. ### 2024.11.27 (v0.2024.11.27.01.55) **Improvements** * \[Agent Mode] Code outputs no longer show a confusing code diff UI. * You can now sort Warp Drive objects by type, with folders on top. **Bug fixes** * \[Agent Mode] Single-line code suggestions are no longer hidden behind the horizontal scrollbar. * Fixed a crash interacting with Env Vars in the command palette. ### 2024.11.25 (v0.2024.11.25.16.32) **Improvements** * \[Agent Mode] Code outputs no longer show a confusing code diff UI. * You can now sort Warp Drive objects by type, with folders on top. **Bug fixes** * \[Agent Mode] Single-line code suggestions are no longer hidden behind the horizontal scrollbar. * Fixed a crash interacting with Env Vars in the command palette. ### 2024.11.22 (v0.2024.11.22.18.28) **Improvements** * \[Agent Mode] Code outputs no longer show a confusing code diff UI. * You can now sort Warp Drive objects by type, with folders on top. **Bug fixes** * \[Agent Mode] Single-line code suggestions are no longer hidden behind the horizontal scrollbar. * Fixed a crash interacting with Env Vars in the command palette. ### 2024.11.26 (v0.2024.11.19.08.02) **New features** * You can now use Warp without login! **Improvements** * \[Agent Mode] Code outputs no longer show a confusing code diff UI. * You can now sort Warp Drive objects by type, with folders on top. **Bug fixes** * \[Agent Mode] Single-line code suggestions are no longer hidden behind the horizontal scrollbar. * Fixed a crash interacting with Env Vars in the command palette. * Fixed a bug where `command substitution: ignored null byte in input` would appear as output while using a Bash subshell. ### 2024.11.19 (v0.2024.11.19.08.02) **New features** * You can now use Warp without login! **Improvements** * \[Agent Mode] Code outputs no longer show a confusing code diff UI. * You can now sort Warp Drive objects by type, with folders on top. **Bug fixes** * \[Agent Mode] Single-line code suggestions are no longer hidden behind the horizontal scrollbar. * Fixed a crash interacting with Env Vars in the command palette. ### 2024.11.18 (v0.2024.11.18.16.37) **Improvements** * Added padding after an expanded Agent Mode requested command. * Improved the quality of autosuggestions. * Warp Drive workflow links now open in the active terminal session rather than a new tab. * On the web, Warp Drive workflows now have a button to quickly open the workflow in Warp's desktop app. **Bug fixes** * Fixed Graphite CLI (`gt`) completions. * Fixed completion and syntax highlighting behavior for arguments containing backslashes in PowerShell. * Fixed an issue where opening Warp Drive in a browser could cause the tab to stop responding. ### 2024.11.12 (v0.2024.11.12.08.02) **Improvements** * Added padding after an expanded Agent Mode requested command. * Improved the quality of autosuggestions. * Warp Drive workflow links now open in the active terminal session rather than a new tab. * On the web, Warp Drive workflows now have a button to quickly open the workflow in Warp's desktop app. * \[Linux] Increased the app icon size to match other apps. **Bug fixes** * Fixed Graphite CLI (`gt`) completions. * Fixed completion and syntax highlighting behavior for arguments containing backslashes in PowerShell. * Fixed an issue where opening Warp Drive in a browser could cause the tab to stop responding. * \[Linux] Tightened timeout for looking up the system color scheme at app startup to avoid hangs if the `org.freedesktop.portal.Desktop` D-Bus service is unresponsive. * \[macOS] Fixed a crash that can occur when starting the app or opening a new window. ### 2024.11.11 (v0.2024.11.05.08.02) **Improvements** * Fixes a bug where Warpifying subshells could crash if you had something typed in your input. * Renamed the Subshells tab to Warpify in Settings. **Bug fixes** * Fixed an issue where kubectl resource names wouldn't complete given a prefix. * Fixed bug causing not all memory to be immediately freed when clearing the blocklist. * \[macOS] Fixed a crash that can occur when starting the app or opening a new window. ### 2024.11.05 (v0.2024.11.05.08.02) **Improvements** * Fixes a bug where Warpifying subshells could crash if you had something typed in your input. * Renamed the Subshells tab to Warpify in Settings. **Bug fixes** * Fixed an issue where kubectl resource names wouldn't complete given a prefix. * Fixed bug causing not all memory to be immediately freed when clearing the blocklist. ### 2024.10.23 (v0.2024.10.29.08.02) **Bug fixes** * Improved command completions to no longer attempt to use error messages as valid options. * Fixed some kubectl completions not working as intended. ### 2024.10.17 (v0.2024.10.15.08.02) **New features** * Warp.dev has a fresh look today! Check out what's new and read about the design process behind the launch: **Improvements** * Created a setting allowing focus to follow mouse hover (requested in issue [699](https://github.com/warpdotdev/warp/issues/699)). * Automatically switch to shell command input mode if accepting a shell command autosuggestion from Agent Mode. * \[macOS] Adjusted default font smoothing (Appearance > "Use thin strokes") configuration to improve text legibility. **Bug fixes** * Alt-screen find doesn't beachball when scrolling through find matches. * You can now select individual cells in the alt-screen. * All find matches are correctly highlighted in the alt-screen. * Hitting ENTER within the Launch Config Save Modal will work as expected. * Removed node prompt chip due to slow performance. * Fixed an issue on Linux distributions where Warp took a long time to start up. ### 2024.10.11 (v0.2024.10.08.08.02) **Improvements** * Tab key always accepts active autosuggestions in zero-state. * Command suggestions from Agent Mode are now ghosted autosuggestions instead of direct buffer text. * Warp now shows a warning when closing a tab with running commands or shared sessions. * New Agent Mode panes will open to a useful minimum width if the Warp window is big enough to support it. * Clearing the terminal input via ctrl-c will now also close the command search. * \[macOS] You can now access Warp Drive features from mac menus. * \[macOS] You can click the mouse middle-button to paste from the clipboard. **Bug fixes** * Agent Mode queries are now de-duplicated in up-arrow history and Command Search. * `ctrl-d` can now be used to signal EOF when the shell is bootstrapping. * Double-clicking the tab bar now correctly toggles maximizing the Warp window even when an AI block is present in the focused pane. * Hovering over the block insertion menu at the bottom of a notebook no longer causes Warp to hang. * Fixed crash when search result in alt screen is scrolled out of view. * Fixed broken `cmd-shift-R`/`ctrl-shift-R` keybinding for accessing the Workflows view. ### 2024.10.10 (v0.2024.10.08.08.02) **Improvements** * Tab key always accepts active autosuggestions in zero-state. * Command suggestions from Agent Mode are now ghosted autosuggestions instead of direct buffer text. * Warp now shows a warning when closing a tab with running commands or shared sessions. * New Agent Mode panes will open to a useful minimum width if the Warp window is big enough to support it. * Clearing the terminal input via ctrl-c will now also close the command search. * \[macOS] You can now access Warp Drive features from mac menus. * \[macOS] You can click the mouse middle-button to paste from the clipboard. **Bug fixes** * Agent Mode queries are now de-duplicated in up-arrow history and Command Search. * `ctrl-d` can now be used to signal EOF when the shell is bootstrapping. * Double-clicking the tab bar now correctly toggles maximizing the Warp window even when an AI block is present in the focused pane. * Hovering over the block insertion menu at the bottom of a notebook no longer causes Warp to hang. ### 2024.09.24 (v0.2024.09.24.08.02) **New features** * Powershell is now supported! Make `pwsh` your default shell for your user account or select `pwsh` in Settings > Features > Startup shell for new sessions. * You can now save and sync environment variable collections in Warp Drive. Learn more: . * Your Agent Mode blocks and queries are now restored across sessions. **Improvements** * Secret redaction now applies to AI Blocks within Warp, in addition to Command Blocks. * New Agent Mode panes always open to the right. * You can now navigate the trash index via your keyboard. **Bug fixes** * `fish` config is no longer sourced twice during shell startup. * The first window after launching Warp will now use a custom window size if set. * When opening a launch configuration, Warp now respects restored and custom window sizes. ### 2024.09.17 (v0.2024.09.17.08.02) **New features** * \[Linux] Warp now supports Wayland. You can configure the window system in `Settings > Features > System`. **Improvements** * Adds a Command Palette action called “Export all Warp Drive objects” that enables bulk export of a Warp Drive. * Completion suggestions for git commit hashes are now sorted reverse-chronologically. * History shows the working directory in which you made an Agent Mode query. * Agent Mode Blocks are surfaced in Find. **Bug fixes** * Fixed an infinite loop bug that could lead to runaway memory usage and the application hanging. * Fixes a regression where the Setup Guide didn't work. ### 2024.09.05 (v0.2024.09.10.08.02) **Improvements** * Links are now detected in Agent Mode responses. **Bug fixes** * Fixed an infinite loop bug that could lead to runaway memory usage and the application hanging. ### 2024.08.29 (v0.2024.08.27.08.02) **Bug fixes** * Link highlights now correctly disappear when making changes in alt-screen programs. ### 2024.08.22 (v0.2024.08.20.08.02) **New Features** * You can now specify a cursor color in Warp themes. **Improvements** * Warp now restores fullscreen windows to fullscreen. **Bug fixes** * \[MacOS] Completions for commands now work when you type a command name containing capital letters. This does not apply to aliases. ### 2024.08.14 (v0.2024.08.13.08.02) **New Features** * New enums for Workflow arguments. Now you can set a list of suggested options for any argument in a workflow so it's easier to fill in parameters correctly. Learn more at ### 2024.08.07 (v0.2024.08.06.08.01) **New Features** * You can now find your past Agent Mode queries in Command Search (ctrl-r). **Improvements** * Completions-as-you-type now works in AI input for filepath completions. **Bug Fixes** * Warp now recognizes more escape codes for toggling alternate screen mode. ### 2024.07.30 (v0.2024.07.30.08.02) **Improvements** * Now it's easier to find and configure settings related to AI on the command line. You can enable / disable natural language detection or input hint text under Settings > AI ### 2024.07.24 (v0.2024.07.23.08.02) **New features** * You can now find AI queries from other sessions in up-arrow history. **Improvements** * Clicking an attached block on an AI block no longer affects your pending query's context selection. * Clicking the terminal input box will no longer remove the blocks you selected as context. * Added support for smart selections in AI blocks. * Increased priority of command matches when searching for a workflow. **Bug fixes** * Opening file links with line and column numbers in Zed now works. ### 2024.07.19 (v0.2024.07.16.08.02) **Improvements** * Completions for git push origin now include tags in addition to branches. * Docker extension: The "Open in Warp" feature now requires you to run the command in order to open the Warpified Docker subshell. Attempts to open an invalid link will display an error toast. **Bug fixes** * Warp prompt text now respects custom line height settings. * Scroll positions are now stable when hitting block line limits ([1355](https://github.com/warpdotdev/warp/issues/1355)). * Fixed binaries listed directly in `PATH` being automatically executed when running commands in Bash. ### 2024.07.18 (v0.2024.07.16.08.02) **Improvements** * Completions for git push origin now include tags in addition to branches. * Docker extension: The "Open in Warp" feature now requires you to run the command in order to open the Warpified Docker subshell. Attempts to open an invalid link will display an error toast. **Bug fixes** * Warp prompt text now respects custom line height settings. * Scroll positions are now stable when hitting block line limits ([1355](https://github.com/warpdotdev/warp/issues/1355)). * Fish commands containing syntax errors now correctly "finish" the block. * Fixed binaries listed directly in `PATH` being automatically executed when running commands in Bash. ### 2024.07.11 (v0.2024.07.09.08.01) **New features** * Same line prompt. Now you can choose whether you'd like your prompt on a new line (Warp's default) or on the same line with commands, like a classic terminal. If you're using PS1, Warp will use the same line prompt setting to respect theme configurations. Visit Settings > Appearance > Prompt to configure your prompt style. [Learn more](https://docs.warp.dev/appearance/prompt#same-line-prompt) **Improvements** * Added support for completions while using Agent Mode input. * Semantic selection now works in AI blocks. * Shift+click now lets you select text for alternate screen apps in SGR mouse mode. **Bug fixes** * Pressing Esc in Vim insert mode no longer closes the history menu. * Made sure terminal context menus close when opening the settings modal. ### 2024.06.27 (v0.2024.06.25.08.02) **New features** * Warp’s new Pro plan includes higher AI requests for individuals or small teams. * Learn more at **Bug fixes** * Text selection in full screen apps will change as you scroll. * \[MacOS] Meta shortcuts, e.g. `OPT-U`, `OPT-I`, will no longer be ignored. ### 2024.06.21 (v0.2024.06.18.08.02) **Improvements** * The glyph over the cursor will take on a high-contrast color to make sure it's legible. * Dragging a word or line selection in a notebook now extends the selection. **Bug fixes** * Fixes a crash where text layout would not expect the BOM marker at the beginning of a string. * \[Linux] Fix middle-click paste doubling the text. ### 2024.06.20 (v0.2024.06.18.08.02) **Improvements** * The glyph over the cursor will take on a high-contrast color to make sure it's legible. * Dragging a word or line selection in a notebook now extends the selection. **Bug fixes** * Fixes a crash where text layout would not expect the BOM marker at the beginning of a string. ### 2024.06.17 (v0.2024.06.11.08.02) **New features** * New Agent Mode in Warp AI: Use plain English on the command line to accomplish multi-step workflows. * Learn more at ### 2024.06.13 (v0.2024.06.11.08.02) **Improvements** * Brackets and quotes are now autocompleted in the workflow editor. * Improved support for editing multi-line workflows. ### 2024.06.06 (v0.2024.06.04.08.02) **Improvements** * Warp now supports Unicode emoji presentation selectors when rendering glyphs * Removed the default keybindings for Warp Drive object creation actions, in order to free up more keyboard shortcut options. You can still assign custom keybindings to these actions in Settings > Keyboard shortcuts **Bug fixes** * When editing with Vim visual line mode and the cursor is at the end of the line, operators will only affect the correct lines ### 2024.05.30 (v0.2024.05.28.08.02) **Improvements** * Warp now renders terminal text ANSI colors as specified by the theme without any dimming ### 2024.05.23 (v0.2024.05.21.16.09) **Bug fixes** * Fixed a bug where a terminal session could get stuck in a bad state if an SSH connection is lost while the alternate screen is in use (e.g.: tmux, TUI programs, pagers) * Fixed a bug where 00\~ and 01\~ characters could get erroneously added to user-submitted commands after an SSH connection is lost ### 2024.05.16 (v0.2024.05.14.08.01) **New features** * Team admins can now make their teams discoverable to colleagues from the same custom email domain. This feature is available under Settings -> Teams. **Bug fixes** * The prompt and command should no longer overlap the output (or each other) for multi-line commands in Bash versions earlier than 4.4--such as the default Bash installation for MacOS. ### 2024.05.09 (v0.2024.05.07.08.02) **Bug fixes** * Vim-related settings no longer appear in the Command Palette when editing with Vim keybindings is disabled * Warp’s Input Editor now immediately reflects any changes to the Vim status bar settings * Fixed a bug when handling URLs with parentheses in notebooks and Warp AI ### 2024.05.02 (v0.2024.04.30.08.02) **Bug fixes** * In Notebooks, code block menus no longer overlap with rich text menus * Fixed an issue that could cause Warp to display an invisible/empty window * Fixed a crash that could occur when unindenting multiple lines within the Input Editor * Fixed a Vim Mode bug when “cutting word left” (and similar actions) while the (up-arrow) history menu is open * \[Linux] Fixed an issue where Warp would flicker on Intel UHD 620 drivers when using Vulkan due to a bug in specific versions of Mesa * \[Linux] Fixed a regression in input latency ### 2024.03.27 (v0.2024.04.23.08.01) **New features** * The free preview for Warp AI and Warp Drive for teams has ended. \[Learn about Warp’s new self-service plan] **Improvements** * Shared links to notebooks and workflows are now opened directly in Warp and no longer need to go through a browser **Bug fixes** * Warp now supports completions for directories that contain spaces when in a remote session * Warp’s notebook editor now only shows hint text when it’s in edit mode ### 2024.04.18 (v0.2024.04.16.08.02) **Improvements** * You can now navigate and expand folders in Warp Drive with left/right arrow keys **Bug fixes** * Middle-click now works even when the mouse is within the prompt area * Already-open notebooks no longer open in a new tab * Fixed an issue where autocd completions were incorrect for file paths starting with `~` * Opening a Workflow through a link now focuses it, even while in trash view * Fixed a bug handling carriage returns in notebooks, the markdown viewer, and Warp AI ### 2024.04.11 (v0.2024.04.09.08.01) **Improvements** * Improved Warp’s prompt performance for large repositories * When switching panes directionally, Warp now automatically selects the most recently focused pane in that given direction **Bug fixes** * Fixed a pane management bug where dragging a pane to a new location wouldn't initiate the option to drop it there ### 2024.04.04 (v0.2024.04.02.08.02) **New features** * Notebooks in Warp Drive. Create and share interactive runbooks with your team. [Learn more](https://www.warp.dev/blog/notebooks-in-warp-drive) **Improvements** * You can now export workflows and notebooks from Warp Drive * Middle-clicking to paste now automatically focuses the Input Editor * Warp no longer automatically expands aliases that are escaped using a backslash * \[Linux] Adds support for Android Studio, DataGrip, DataSpell, Goland, Pycharm, Rider, Rubymine, and Sublime Text as external editors **Bug fixes** * \[Linux] Warp now case-sensitively parses top-level commands on Linux * \[Linux] Fixed an issue where middle-click paste could paste across multiple panes ### 2024.03.21 (v0.2024.03.19.08.01) **Bug fixes** * Symlinks to a directory are now properly treated as a directory instead of as a file * \[Linux] Warp's windows are no longer escalated into an urgent state (tiling window managers) after a Warp URL is opened ### 2024.03.14 (v0.2024.03.12.08.02) **Improvements** * Warp now supports the primary selection protocol, which allows you to paste with a middle click. On platforms that don't support this, Warp will read/write from the default clipboard. * You can now filter out unwanted lines from a block, using the new "invert filter" toggle in the block filtering menu * Continuous block selections are now rendered with a single border instead of a border around each individual block * The `` and `^` patterns are now supported in Warp's regex search (find bar and block filtering) * \[Linux] The hotkey window now has a unique instance name on X11. **Bug fixes** * "Copy on Select" now works within alt-screens ### 2024.03.07 (v0.2024.03.05.08.02) **Improvements** * You can now adjust the number of lines the mouse wheel scrolls in Warp. Go to Settings > Features > General > Lines Scrolled by Mouse Wheel Interval to configure this setting. * You can now close the Warp window using the Command Palette (`SHIFT-CMD-W` for Mac). * You can now quit Warp using the Command Palette (“Quit Warp”) * \[Linux] Warp can now automatically hide the window's traffic lights when using a tiling manager * \[Linux] Improved (a window’s) rounded corners when using a tiling manager * \[Linux] You can now move tabs left or right using keyboard shortcuts. Use `SHIFT-CTRL-PGUP` to move a tab to the left and `SHIFT-CTRL-PGDN` to move a tab to the right **Bug fixes** * Fixed a bug where Warp could crash because of an invalid Vim command * \[Linux] Fixed a bug where errors encountered while running `pacman-key` could lead to an invalid pacman repository configuration ### 2024.03.05 (v0.2024.03.05.08.02) **Improvements** * Improved Warp's appearance and behavior when running in some tiling window managers. **Bug fixes** * Fixed crash that occurs when dragging the mouse. ### 2024.02.29 (v0.2024.02.27.08.01) **Improvements** * Added completion support for `dnf` * Configuring the global hotkey window settings (Quake Mode) now updates the window in real time * \[Linux] Can now `CTRL-CLICK` to open a file * \[Linux] Added support for IntelliJ, CLion, Webstorm, and PhpStorm **Bug fixes** * Fix issue with typeahead commands overlapping the prompt’s content * Command X-Ray now recognizes builtins and functions, hover over a command in the Input Editor to see the command description * Fixed an issue where the shell couldn’t accept pasted text when an rc file expected user input. * \[Linux] Modified pacman-key -r invocation during Arch Linux auto-update to be more robust * \[Linux] Fixed crash on Linux that could occur if device was missing a symlink from libX11.so to libX11.so.6 * \[Linux] Fixed issues where opening external links would cause Firefox 123 to use 100% CPU and never launch * \[Linux] X11 Users can now open links when default browser is firefox * \[Linux] Fix some global hotkey combinations crashing the app. ### 2024.02.26 (v0.2024.02.20.08.01) **New features** * Warp is now available for Linux! **Improvements** * Completions for apt-get, aptitude, and pacman * You can now type to search in the font picker in Settings > Appearance ### 2024.02.20 (v0.2024.02.20.08.01) **Improvements** * Completions for apt-get, aptitude, and pacman. ### 2024.02.16 (v0.2024.02.16.17.24) **New features** * Warp on Linux (Private Beta): Added support for the Input Mode Editor (IME). ### 2024.02.14 (v0.2024.02.14.15.46) **New features** * Warp on Linux (Private Beta): Added support for the Input Mode Editor (IME). ### 2023.02.08 (v0.2024.02.13.08.02) **Bug fixes** * Fix the inputted command sometimes overlapping rprompt (right-sided prompt) ### 2023.02.01 (v0.2024.01.30.16.52) **Improvements** * Improved UX for pasting an auth token to complete the sign-in flow * Subversion (svn) information is now available in Warp's prompt ### 2023.01.18 (v0.2024.01.16.16.31) **New features** * Warp on Linux (Private Beta): System fonts now load as expected **Bug fixes** * Warp on Linux (Private Beta): `ALT-TAB` no longer incorrectly inserts 4 spaces into the Input Editor ### 2023.01.11 (v0.2024.01.09.08.02) **New features** * New workflow metadata for shared workflows in Warp Drive! Hover over any workflow to learn how recently the workflow has been executed, who edited it last, and when it was last edited. ### 2023.12.21 (v0.2024.01.02.08.02) **Improvements** * The toolbelt displayed when hovering over background Blocks now has a solid background **Bug fixes** * The Markdown Viewer now respects the start number of ordered lists * Completing a path that includes the tilde (`~`) character now works as expected * Fixed an issue where Warp could quit before saving changes to Warp Drive * Fix Warp hanging when using the 'Insert into Input' context menu action ### 2023.12.14 (v0.2023.12.12.08.02) **New features** * Editing with Vim keybindings is now out of beta and generally available! Warp will detect vi mode in shell settings and suggest Vim keybindings. **Improvements** * You can now use `CMD-F` to search text in the Markdown Viewer **Bug fixes** * Block hover buttons now have a solid background when they overlap with your prompt * The Block filter editor now has a clear button * `J` and `K` (Vim Mode) can be used for navigation within a multi-line command * Fixed the left alignment of the tab bar when in full-screen mode on Mac * Fixed triple-click selection (selecting a line) when filtering a Block * Fixed potential crash when using the find bar * Fixed potential crash when retrieving accessibility contents * Fix bug where "R" is erroneously inserted into the input in zsh sessions ### 2023.12.07 (v0.2023.12.05.08.02) **Improvements** * Markdown file links can now be configured to open with the default external editor or Warp's built-in markdown viewer * Warp Drive folders now keep their opened/closed state through app restarts **Bug fixes** * The Input Editor now refocuses correctly after pasting terminal contents and running a command * Fixed issue with missing toolbelt buttons when using fish wih Vim Mode ### 2023.11.30 (v0.2023.11.28.08.02) **Improvements** * Warp’s custom prompt builder now includes a context chip for Kubernetes context * Improved completions for kubectl, including suggestions for resource, global options, and namespaces **Bug fixes** * Fixed a UI bug in the workflows editor where the editor for arguments was overflowing * Search bar focuses as expected when you open Launch Configurations with the Command Palette ### 2023.11.16 (v0.2023.11.14.08.02) **Bug fixes** * The informational block that shows workflow metadata now resizes with your Warp window * The scrolling speed is now standardized across Warp ### 2023.11.09 (v0.2023.11.07.08.02) **New features** * New Markdown Viewer: You can now open .md files in Warp and run the shell commands within these files * Block Filtering: You can now filter block output (SHIFT-OPT-F) to quickly find matching lines based on a query. **Improvements** * Removed the workflow button from the toolbelt section (top-right buttons) of a block. It is still accessible through the right-click menu (see “Save as Workflow”) and its default keybinding CMD-S. * Improved performance of Warp Drive team and state syncing ### 2023.11.02 (v0.2023.10.31.08.03) **Improvements** * You can now invite new team members to your shared Warp Drive by email address and revoke invitations ### 2023.10.23 (v0.2023.10.17.08.03) **Improvements** * Indicators appear in the tab bar when the current pane is maximized (a full-screen icon) and when a command exits with an error * The Git context chip in Warp’s prompt now shows the commit hash instead of “HEAD” when in a detached state * Easier to add and remove allowlisted domains when inviting teammates to Warp Drive * Added a menu option for copying a workflow command (into the clipboard) ### 2023.10.19 (v0.2023.10.17.08.03) **Improvements** * Indicators appear in the tab bar when the current pane is maximized (a full-screen icon) and when a command exits with an error * The Git context chip in Warp’s prompt now shows the commit hash instead of “HEAD” when in a detached state * Easier to add and remove allowlisted domains when inviting teammates to Warp Drive * Added a menu option for copying a workflow command (into the clipboard) ### 2023.10.12 (v0.2023.10.10.08.06) **Improvements** * Warp can now support MacOS's proxy settings * You can now toggle whether to render Warp using the integrated GPU for dual GPU Macs * Warp now escapes the file path of an executable loaded from Finder **Bug fixes** * Fixed a crash on startup for some users on MacOS Sonoma * The workflow info box now refreshes when edited ### 2023.10.05 (v0.2023.10.03.08.03) **New features** * Now you can use Vim keybindings to edit text on the command line in Warp. Navigate to Settings > Feature > Editor and enable "Edit commands with Vim keybindings." This feature is currently in beta and available to try today. **Improvements** * Admins can now control whether the team invite link is accessible for other team members to copy and share. Admins can also reset the URL token if needed. * You can now add a 24-hour timestamp to your Warp prompt with context chips in the prompt editor. * The free preview for Warp AI and Warp Drive for teams has been extended. [Learn More](https://www.warp.dev/blog/free-preview-extended) ### 2023.09.28 (v0.2023.09.26.08.09) **New features** * If you have Cursor installed, you can now set this as your default code editor under Settings > Features > General. **Improvements** * Enhanced user accessibility by adding a tab bar button as a new entry point for the command palette. * Improved user guidance by displaying a warning when attempting to run a workflow while another command is already in progress. **Bug fixes** * Resolved an issue where autosuggestions were not being inserted when bound to certain keybindings. * Fixed a bug affecting Input Method Editor functionality on non-English keyboards, which caused incorrect positioning and prevented text input after opening a new window. ### 2023.09.14 (v0.2023.09.19.08.04) **New features** * You can now edit keybindings to scroll up and down by one line. **Improvements** * The input editor remains visible in inactive panes when using split panes. **Bug fixes** * Resolved a regression where the filled bookmark icon didn’t display on bookmarked blocks unless hovered on. * Fixed the `TAB` key not cycling through fields in the Workflow editor under certain circumstances. * Restored functionality of the keybinding for “New Tab” to work even when no windows are open. ### 2023.09.07 (v0.2023.09.06.18.09) **Improvements** * The new tab keyboard shortcut (`CMD-T` by default) can now be re-mapped. * Warp Drive now shows a loading indicator when syncing. **Bug fixes** * The command timestamp tooltip is no longer hidden when the Input Editor is pinned to the top. ### 2023.08.31 (v0.2023.08.29.08.04) **Improvements** * You can now delete custom themes from the Warp UI * You can now scroll to the top or bottom of a selected block from the Command Palette. **Bug fixes** * Fixed an issue where CPU was being used up by git processes ([3563](https://github.com/warpdotdev/warp/issues/3563)) * Fixed a Zsh bug where `set sh_word_split` could break Warp's bootstrapping ### 2023.08.24 (v0.2023.08.22.08.03) **New features** * Secret Redaction - Warp can now automatically redact secrets and sensitive information in terminal output, including passwords, IP addresses, API keys, and PII. Enable Secret Redaction from the Command Palette or Settings > Privacy > Secret Redaction **Improvements** * Special keys used in conjunction with `META` e.g. `META-DELETE` should now work within the alt-screen * The line height for the text within the Input Editor should now actually change when the custom height in `Settings > Appearance > Text > Line Height` is updated * Alias Abbreviations in fish should no longer show a red error underline within the Input Editor * Reduced the bottom padding within the Input Editor when Warp is in Compact Mode ### 2023.08.17 (v0.2023.08.15.08.03) **New features** * Warp now displays richer metadata for each command in history, including exit code, working directory, git branch, and whether the command is part of a workflow. * Warp's native prompt is now customizable directly within the app with drag-and-drop Context Chips (`Settings > Appearance > Prompt`) **Improvements** * Warp now supports xterm's escape codes (sequences) for focus reporting * The Command Palette now supports searching for workflows with their Warp Drive folder name, in addition to the Workflow's name and description. * Auto-generating custom themes from starting images now work even with a missing `~/.warp/themes` directory * The "New Workflow" modal now supports more text for longer commands ### 2023.08.10 (v0.2023.08.08.08.04) **New features** * Automatically create new themes based on a background image! Click the `+` button in the theme picker (`Settings -> Appearance -> Current Theme`) or search `Open Theme Picker` within the Command Palette **Improvements** * Workflows and folders in Warp Drive can now be sorted alphabetically and by last updated * Multiple JetBrains IDEs are now supported as external editors (e.g. WebStorm, PhpStorm, GoLand) * The Command Palette now shows which folders a Workflow is in (breadcrumbs) * Aliases like `...` and `....` no longer incorrectly have an error underline ### 2023.08.03 (v0.2023.08.01.08.05) **New features** * Reopen closed tabs with `SHIFT-CMD-T` for up to one minute; configure or disable this feature in `Settings > Features > Enable reopening of closed sessions` * Autogenerate descriptions for Workflows in Warp Drive using Warp AI **Improvements** * Nested folders in Warp Drive can now be collapsed all at once * Fixed issue where fish abbreviation expansion would include comments * Fixed a regression with fish history becoming inaccessible ### 2023.07.27 (v0.2023.07.25.08.03) **Improvements** * Fixed an issue where $PATH could be overwritten in Bash subshells * Fixed an issue where completions for file-paths broke when using Named Flags e.g. `ls --color=auto` * Fixed an issue where Warp Drive objects could get stuck in a sync state * The down arrow `DOWN` now correctly moves the cursor within Warp AI's text editor ### 2023.07.20 (v0.2023.07.18.08.03) **New features** * Can now configure whether `TAB` accepts autosuggestions or opens the completions menu; switch between the configurations via `Settings > Features > Editor` * Improved completions behavior by improving common prefix detection, and supporting case sensitivity * Can now natively draw some Unicode block element characters instead of using font glyphs--improves alignment and reduces fuzziness * Warp's Resource Center now displays new features and improvements **Improvements** * Increased the maximum blur radius from 18 to 64 ### 2023.07.13 (v0.2023.07.11.08.03) **New features** * Warp Drive items that failed to sync can now be retried * Workflows in Warp Drive drive can now be edited with the workflow execution modal **Improvements** * Fixed a bug where git information could sometimes be missing from the prompt * Adjusted some colors throughout Warp--replaced gradients with solid colors. ### 2023.07.06 (v0.2023.07.04.08.03) **New features** * A new AI Command Search experience that allows you to translate natural language to shell commands and integrates directly with workflows! Type '#' in the input to try it out! **Improvements** * Fixed a bug where Warp was not recognizing some single character commands and aliases. * Fixed a bug where command output would sometimes be cut off after finishing (most notably in Gradle). * Fixed a bug where two prompts could appear for remote Bash sessions ### 2023.06.29 (v0.2023.06.27.19.34) **New features** * App links of the form Warp\://launch/\ directly open a launch configuration * Added a new setting for creating new windows with a specific size in terms of rows and columns. **Improvements** * Fix rendering of multiple ANSI styles on the same character. This fixes rendering issues commonly encountered in Vim and emacs. * Fix tabs (indentations) sometimes being inserted into the Input Editor when the completion menu should open. * Added tooltip for “New tab” button * The “Launch Configurations” sub-menu (under the Mac File menu) now updates dynamically as launch configurations are added and removed. * Find bar is able to match double-width unicode characters, including CJK and emojis. * Fixed a crash that could occur when pasting a command in the workflow editor ### 2023.06.20 (v0.2023.06.20.08.04) **New features** * You can now bring the power of your Powerlevel10k (P10K) prompt to Warp! For best results, you’ll need the latest version of P10K; see their GitHub page for upgrade instructions * Right-side prompts are now supported in Zsh and fish! * Warp AI commands can now be executed as workflows. **Bug fixes** * Clicking on an inactive Warp window now focuses the underlying pane correctly. ### 2023.06.08 (v0.2023.06.13.08.03) **New features** * Added a settings page for our upgraded referral system--we’ve added new swag options. * Right-click a highlighted file path to open a context menu that now supports showing the file in Finder * The Command Palette can now search through Warp sessions, actions and launch configurations **Bug fixes** * The completions menu now supports fish abbreviations * Fixed an issue where certain aliases would be incorrect after expansion. * Fixed command search to ignore the extra whitespace before and after the search query * Restored background Blocks no longer create blank history entries * Fixed an issue where enabling the “Open completions as you type” setting could sometimes break path completions * Fixed an issue where Zsh could fail to bootstrap when `$PATH` is an a bad state * Fixed issue where Warp’s bootstrap logic could leak into Zsh’s history * Fix issue with properly underlining when hyperlinks are in lists or span across multiple lines ### 2023.06.01 (v0.2023.05.30.08.03) **New features** * Right-clicking the New Tab (`+`) button opens a context menu to select saved Launch Configurations * Use Page Up (`PG-UP`) and Page Down (`PG-DOWN`) in the Command Palette for faster navigation * Added support for Zed as a default code editor * Referral counts have been updated to only include referrals who’ve onboarded onto (actually tried) Warp **Bug fixes** * Warp’s hotkey window (Quake Mode) now properly retains its size * Fixed issue where command output would temporarily cutoff when resizing Warp. * Fixed the Sticky Command Header covering content for pager commands. * Fixed tabs showing stale text when being renamed. * Clicking a Mac menu bar item that has a sub-menu no longer incorrectly closes the menu * Warp now automatically focuses the shortcut search bar when the keyboard shortcuts pane is opened (`CMD-/`) * Fixed regression where Warp’s native prompt no longer showed the virtual environment ### 2023.05.25 (v0.2023.05.23.08.05) **Bug fixes** * Improved shell startup performance after a system restarts for users with Xcode installed * Fixed issue with Warpifying a pipenv shell subshell from zsh * Fixed issue with updating the git status prompt indicator in remote subshells ### 2023.05.18 (v0.2023.05.18.01.08) **New features** * Warp now supports subshells in Zsh, Bash, and fish for a better experience with Docker, GCP, Poetry, and more. Configure which commands you’d like to “Warpify” under Settings > Subshells **Bug fixes** * Fixed an issue with Warp's completions when using flags that start with a single dash e.g. `-namespace` * Fixed an issue with Synchronized Inputs where switching from alt-screens focused on the incorrect terminal session * Fixed an issue where command history suggestions could cause Synchronized Inputs to get out of sync ### 2023.05.11 (v0.2023.05.09.08.03) **New features** * Warp now sends the output of background shell processes into new (distinct) Blocks--separate from user generated Blocks. * Synchronize (broadcast) input across multiple panes in a single tab or multiple tabs (`Mac Menu > Edit > Synchronize Inputs` or `Synchronize` within the Command Palette) * Added option to enable (disabled by default) an audible terminal bell (`Settings > Features > Terminal` or “Enable/Disable Audible Terminal Bell” within the Command Palette) * Now opens new windows with the same position and size of the most recently closed window (if there is one) * Fish aliases are now supported in the completions menu **Bug fixes** * Support for `SHIFT-UP` and `SHIFT-DOWN` within alt-screen editors * Fixed incorrect alt-screen scrolling behavior when scroll reporting is enabled * `SHIFT-TAB` now (correctly) sends the ANSI (backward-tab) escape sequence (for Vim and NeoVim) * SSH wrapper now also loads your /etc/profile and supports login-like prompts and interactions like printing the message of the day (MOTD) ### 2023.05.04 (v0.2023.05.02.08.03) **New features** * Indicate when Warp is downloading an update in Settings > Account > About Warp * Support alias expansion for bash/zsh aliases ### 2023.04.27 (v0.2023.04.25.08.05) **New features** * Support for Fish abbreviations * Right-click within the Input Editor to open a context menu where you can split panes, etc. **Bug fixes** * Starting a command with whitespace in the Workflow creation dialog no longer breaks its argument parser * Fixed a bug when commands were aliased to `comm` because of a naming clash with Warp's wrapper * `Cut word left` (`CTRL-W`) and `Cut word right` (`OPT-D`) now use the shell clipboard instead of the system clipboard ### 2023.04.13 (v0.2023.04.11.08.03) **New features** * Navigation by subword within the Input Editor with `CTRL-OPT-LEFT` and `CTRL-OPT-RIGHT` * View prior Warp AI questions using the `UP` arrow even after the transcript is cleared **Bug fixes** * Fixed a bug in proxied SSH while not on the default shell * Background blur now also applies to windows that are opened via drag-and-drop from Finder * The Sticky Command Header no longer cuts off text for pagers ### 2023.04.06 (v0.2023.04.04.08.03) **New features** * The position of the input and direction of the terminal output are now configurable. You can start the input at the top and have it move down as new commands are run (to clear the screen and reset the position press `CTRL-L`, `CMD-K` or type `clear`). Or you can keep the input pinned to the top of the pane and have terminal outputs flow in reverse order. Settings are available under `Settings > Appearance > Input Position` * Added a button for “jumping to the bottom” of the currently hovered Block to make it easy to get to the bottom of an output. Configurable with a setting under `Settings > Appearance > Blocks` * Warp AI transcripts can now be navigated via keyboard (`UP` / `DOWN` arrows) * Added a right-click context menu in the alt-screen (that still respects mouse reporting and SGR\_MOUSE) * Warp AI's past prompts can be accessed via `UP` (arrow) * `CMD-ENTER` within Warp AI now inputs the selected command into the Input Editor **Bug fixes** * Workflows can now be searched by their description in Command Search * Consolidated “Ask Warp AI” keybindings into one * Fixed an issue causing “Move cursor by word” and “Select left/right by word” to not work if “Left/Right Option key is Meta” is enabled * Can now unset cursor navigation bindings within an executing command ### 2023.03.30 (v0.2023.03.28.08.03) **New features** * Warning if a known-incompatible custom prompt is detected * Keybindings for cursor navigation in REPLs and subshells, e.g. ⌥←, ⌥→, ⌥⌫, ⌘←, ⌘→, ⌘⌫, ⌘fn⌫ **Bug fixes** * Fixed an issue where an input suggestion tooltip could overflow outside the visible window * Fixed keybinding conflict with Warp AI * Fixed completion and syntax highlighting when local paths contain separators, not in the prefix ### 2023.03.23 (v0.2023.03.21.08.02) **New features** * Added VSCode Insiders as a supported code editor * Added completions for pnpm. **Bug fixes** * Fixed an issue where AI command results with multiple commands would all render on the same line * The configurable width of Universal Search is now persistent (doesn’t reset to default in new sessions). * “Copy Prompt” now correctly respects your PS1 prompt, if enabled * Fixed automatic command corrections for cargo. ### 2023.03.20 (v0.2023.03.14.08.03) **New features** * Added support to configure which shell Warp should use when starting a terminal session. Configurable under Settings -> Features -> Session. * Tabs can now be renamed via mouse double-click. **Bug fixes** * Launch configuration templates now support use of `~` in the `cwd` field. * Double-clicking a button/tab in the title bar no longer resizes the whole window. * Context menus in the blocklist are now more pronounced and easier to dismiss by clicking. * Increased the clickable area of small search boxes. * A keyboard shortcut can now be registered to clear all blocks. * Fixed some locale-related issues due to use of `LC_ALL` environment variable. * Xterm escape code OSC 4 (“change color”) no longer crashes the app when it appears in PS1. * Fixed a crash that occurs when resizing windows after dismissing a notification banner. * Fixed crash that occurs if you unset the keybinding for the keyboard shortcuts side panel. * Added Warp AI to resource center. ### 2023.03.16 (v0.2023.03.07.08.02) **New features** * Introducing Warp AI ⚡ Get explanations for errors and outputs, ask for help with complicated workflows and scripts, easily execute suggested commands, all without leaving Warp! ### 2023.03.09 (v0.2023.03.07.08.02) **New features** * Added support for clearing a keybinding for an action [2300](https://github.com/warpdotdev/warp/issues/2300). * Added support for showing/hiding Warp windows with a system-wide Activation hotkey [2585](https://github.com/warpdotdev/warp/issues/2585). * Improved scroll speed for Sidebar menu 'Warp Essentials'/'Keyboard Shortcuts' [2673](https://github.com/warpdotdev/warp/issues/2673). * Users may now set a custom keybinding to open the completions menu. * Enabling/disabling mouse reporting is no longer bound to CMD-R by default. * Toggling mouse reporting enabled shows a banner. **Bug fixes** * Fixed SSH wrapper hanging forever when SSH host is Arch Linux with the latest bash package [2636](https://github.com/warpdotdev/warp/issues/2636). * Fixed Bash commands having escape codes in the last 20 characters producing incorrect output. * Fixed a bug with bash prompt expansion on recent macOS versions. ### 2023.02.28 (v0.2023.02.28.08.03) **New features** * Warp now suggests a URL for creating a GitHub PR on `git push`. * Command Search and Workflow menus are now horizontally resizable. **Bug fixes** * Fixed a bug where Warp doesn’t correctly Auto-Raise. * Fixed issue where formatting is lost when pasting into nano. * Fixed issue where Warp doesn’t detect process termination when exiting `info`. * Fixed a bug with bash prompt expansion not working on v4.4 or earlier. * Fixed a bug where profile pictures don’t show in the Account menu. * Fixed Syntax Highlighting and Error Underlining’s handling of multi-byte characters. * Fixed issue where 'Checking for Update’ doesn’t reflect the current status. ### 2023.02.23 (v0.2023.02.21.08.03) **New features** * Support for configuring the initial working directory for new sessions. New tabs/windows/split panes can have separate configurations, or you can set one value for all new sessions. **Bug fixes** * Warp now supports syntax highlighting and error underlining for multi-line inputs with multibyte characters * Fixed a bug where the update status in Warp’s `About Section` was incorrect. * Improved GPU memory consumption when multiple windows are open. ### 2023.02.16 (v0.2023.02.14.08.05) **New features** * Improved double-click selection. Double-clicking text now smart selects patterns like file paths, URLs, email addresses, etc. - [659](https://github.com/warpdotdev/warp/issues/659) * Warp can now be opened from Finder - [102](https://github.com/warpdotdev/warp/issues/102) **Bug fixes** * Warp no longer hangs after exiting the alt-screen--having searched for text using Find. * The Block-list now scrolls to the correct position after returning from the alt-screen. * Clicking above the scroll-bar no longer (incorrectly) changes its scroll position. * The terminal cell dimensions now update immediately after modifying the Font size. * Hyperlinks no longer incorrectly highlight on hover when Warp is not focused. * The Input Method Editor (non-English keyboards) is now positioned correctly in the alt-screen and in running Blocks * When there are no windows open, clicking `New Tab` from the Mac menu will create a new window ### 2023.02.09 (v0.2023.02.07.08.03) **Bug fixes** * Warp now sets the Mac window title; right-clicking on the dock icon will show the name of the active tab. * Fixed a bug where navigating the theme picker with the arrow keys would lead to a crash when no theme matches the search. * The Input Editor now refocuses correctly after clicking hyperlinks. * Custom keybindings incorporating the `SPACE` key now persist after closing Warp. * The Input Method Editor (non-English keyboards) now positions itself within the Input Editor ### 2023.02.02 (v0.2023.01.31.08.08) ### 2023.01.26 (v0.2023.01.24.08.03) **New features** * Warp can now dim inactive terminal panes, navigate to `Settings > Appearance > Panes > Dim inactive panes` **Bug fixes** * Fixed crash when selecting multiple occurrences of multi-byte characters using `CTRL-G` ### 2023.01.19 (v0.2023.01.17.08.03) **New features** * The current Git branch can now be copied using the Command Palette (`CMD-P`) **Bug fixes** * Fixed bug where some keybinding actions would be applied to the wrong terminal pane. * Warp now checks the input values for font size and line height and ignores them if they are too small or large * The `missing update permissions banner`, can now be dismissed * Fixed a rare crash when closing panes created by a launch configuration ### 2023.01.12 (v0.2023.01.10.08.02) **New features** * Support setting window background transparency and blur radius, via sliders under `Settings > Appearance` * Revamped resource center! Click the Warp icon in the top right to see keyboard shortcuts and learn how to best use Warp * Quit modal: Quitting or closing Warp while a session is running triggers a warning prompt–that also lets you view which sessions are running * Added a toggle to disable cursor blinking **Bug fixes** * Can now support completions that have escaped paths * Can now support background images with paths that start with \~ * Can now properly restore a Warp window’s position when using multiple monitors * Commands from restored sessions run on the local machine no longer appear in the SSH server’s history * Fixed issues SSHing into RHEL/Fedora machines with PackageKit-command-not-found installed * Fixed incorrect handling of `->` as the user's prompt * Fixed ls completions when using the --color option ### 2023.01.05 (v0.2023.01.03.08.03) **Bug fixes** * Trailing periods are no longer considered part of a URL. * Fixed regression where the "autocomplete symbols" setting was not being respected. ### 2022.12.15 (v0.2022.12.13.08.04) **New features** * You can now reorder and drag tabs around with your mouse! **Bug fixes** * The welcome Block now also works when using Fish shell. * AI Command Search no longer crashes from multi-byte characters when opened via the `#` prefix * Warp no longer crashes when starting a new session in a deleted or inaccessible directory * Resolved rendering bugs and hangs in full-screen applications like 'k9s' and 'less'. * Added a login failure notification. ### 2022.12.06 (v0.2022.12.06.08.03) **New features** * Users may now opt out of telemetry (app analytics and crash reporting) * Added 'Tail Warp network log' workflow for viewing logs of all app network activity. **Bug fixes** * Full-screen CLI commands like mitmproxy now correctly span the entire view. * Improved styling and organization of Features page in settings. * Completions While Typing menu closes while generating new results. * Added a hidden completion result for root dir. * Warp now consumes less memory when a session has many blocks. * Fixed an issue over SSH where logs were being inserted into input. ### 2022.12.02 (v0.2022.11.29.08.03) **New features** * Users may now opt out of telemetry (app analytics and crash reporting) * Added 'Tail Warp network log' workflow for viewing logs of all app network activity. **Bug fixes** * Mitigated an issue where running a command over SSH would emit spurious output (specifically, 'channel: open failed' statements) in a block. ### 2022.12.01 (v0.2022.11.29.08.03) **New features** * Warp now supports using the find bar within the alt-screen! `CMD-F` now opens find within vim, less, and other alt-screen apps! **Bug fixes** * Respect symlinks in Warp configuration directories (for themes and workflows). * Fixed unwanted text appearing in the Input Editor when RPROMPT is set * Fixed the emoji composer not working properly. * Fixed a crash that could occur when using the Unicode Hex Input keyboard. * Fixed escape binding not closing the resource center * Move Backward/Forward One Word bindings can now be overridden. * Fixed crash when hovering over multiple byte text within the Input Editor * Fixed “command not found: sed” and “command not found: tr” issues with the SSH wrapper. * Fixed issue where tab completions and command search could be visible at the same time. ### 2022.11.15 (v0.2022.11.14.14.55) **New features** * Command Search: Ctrl-R opens a panel where you can search your history, workflows, and other command execution-related items, all in one place. * Sticky command header: Warp now pins the prompt/command section of a Block to the top of the screen; click it to scroll to the top of the Block. Can be toggled via Settings > Features > Show Sticky Command Header * Warp’s Input Editor now supports soft wrapping; long commands are now fully visible! **Bug fixes** * Warp now sets the TERM\_PROGRAM environment variable correctly in wrapped SSH sessions. ### 2022.11.10 (v0.2022.11.08.08.07) **New features** * Warp now offers Command Corrections! Warp will suggest corrections for errors in previous console commands * Warp now also detects invalid file paths -- they are underlined red when error underlining is enabled * Added a toggle in `Settings > Appearance` to configure whether and how Warp enforces minimum contrast **Bug fixes** * Fixed an issue where toggling the default prompt would not update it immediately * Improved positioning of the `TAB` completions menu when using split panes ### 2022.11.03 (v0.2022.11.01.08.03) **New features** * Warp's prompt now shows the number of modified files on your local git branch! Search "changed file count" in the Command Palette or right-click the Prompt to toggle. **Bug fixes** * Dim-styled colors are now restored properly. ### 2022.10.27 (v0.2022.10.25.08.06) **Bug fixes** * Fixed a bug when hovering over hover icons ### 2022.10.20 (v0.2022.10.18.08.10) **Bug fixes** * Modifying the mouse and scroll reporting settings now applies immediately * Fixed cursor not blinking when starting a shell instance * Fixed temporarily flashing the wrong prompt while Warp is still bootstrapping * Removed duplicate entry for toggling error underlining and syntax highlighting within the Command Palette ### 2022.10.13 (v0.2022.10.11.08.13) **New features** * Warp’s Input Editor now has Syntax Highlighting and Error Underlining, with no configuration! * Warp now uses a pointer cursor when hovering over links **Bug fixes** * Git branches in the completions menu now bold correctly * Warp no longer crashes when `/bin/bash` is missing ### 2022.10.06 (v0.2022.10.04.08.05) **New features** * Drag and drop a folder or file onto the Warp dock icon to open a new tab in this directory * Added dividers between Blocks in compact mode * Shell keywords are now supported for completions and Command Inspector **Bug fixes** * Accessibility support for context menu keybinding * Keystrokes typed while a command is still executing no longer gets dropped * Link recognition no longer includes trailing quotes * Find search results will continue to be highlighted after clearing the screen during a long running command * Fixed completions for commands prefixed with environment variables * Warp’s resource center is now center aligned ### 2022.09.29 (v0.2022.09.27.08.11) **New features** * Extend the currently selected text (within Blocks) with `SHIFT-LEFT`, `SHIFT-RIGHT`, `SHIFT-UP`, and `SHIFT-DOWN` * Double-click and drag to select text in the Input Editor * Insert the last word of the previous command with `META-.` * Added a toggle to enable mouse and scroll reporting to the settings dialog (`Settings > Features`) **Bug fixes** * The `clear` command no longer appears in the snackbar at the top of the window * Warp’s completions now support executables in remote sessions (no longer just bash) * Fixed subcommand completions for commands with proper prefixes of each other (e.g. `npm r` and `npm run`) * The completion spec for `lsd` now supports files ### 2022.09.22 (v0.2022.09.20.08.08) **New features** * After selecting a Block press `CTRL-M` to open its context menu * Commands in the tab completions menu and history menu can now be executed directly with `CMD-ENTER` * Completions now support shell builtins, git aliases, and also npm aliases **Bug fixes** * Command Palette now includes the most useful features at the top * Improved flag completions for cargo ### 2022.09.15 (v0.2022.09.13.08.15) **New features** * Warp Resource Center - explore Warp features and documentation by clicking the `?` icon or pressing `SHIFT-CTRL-?` * New icons in the completion menu denoting flags, folders, branches, etc. **Bug fixes** * Press `CMD-ENTER` within the history menu (`CTRL-R`) to directly execute the highlighted command * Fixed crash when opening many tabs (due to MacOS’s default open file descriptor limits) * Fixed crash when laying out RTL text ### 2022.09.08 (v0.2022.09.07.14.56) **New features** * Global hotkey window can now float above full-screen apps * Tabs can now have their color customized (via right-clicking on a tab) * Terminal line height is now configurable (via Settings > Appearance) ### 2022.09.01 (v0.2022.08.31.18.11) **New features** * Tab completions now support fuzzy string matching * Improve completions for over 450 commands, including docker, kubernetes, cargo, node, and git **Bug fixes** * Properly send C0 control codes for \ keystrokes * Session restoration now also persists bold, underline, italic, and strikethrough formatting * Inspect mode now works for the changelog modal * Fixed a crash when highlighting a link * Fixed Find occasionally returning only partial results * Fixed occasional crash when loading images * Fixed display issue in the Mac Menu for keyboard shortcuts with special keys ### 2022.08.25 (v0.2022.08.23.08.06) **New features** * Experimental feature: support for always-on completions — the completions menu can now open automatically while typing (enable via Settings -> Features) **Bug fixes** * Custom tab titles no longer get overwritten when using multiple panes * A Block’s execution duration is now formatted in hours, minutes, and seconds * Improved rendering of the ‘Current session’ text in the Navigation Palette * Warp properly hides the cursor when a CLI sends the respective escape sequence * Warp stays focused (keyboard-interactive) after closing the Share Block menu and the context menu * Warp no longer lags when the Ctrl-R menu is opened * Confirming a tab suggestion appends a space to the buffer ### 2022.08.18 (v0.2022.08.16.10.16) **New features** * Launch Configurations - Save a configuration of windows, tabs, and panes to open later with `CTRL-CMD-L` * Session Navigation - Navigate to any session in Warp with `SHIFT-CMD-P` * Added exclusive theme for users who joined Warp through a referral **Bug fixes** * Prompt now shows Git SHA instead of HEAD when you’re not on a branch * Filepath completions now include current directory ('.') and parent directory ('..') * Support `SHIFT-HOME` and `SHIFT-END` keybindings to select text to line start and end. * Items in the Command Palette now highlight when you hover over them with your mouse * Improved how Warp cleans up the warptmp directory for Zsh SSH sessions * Already open dropdown menus are now properly closed when clicked * Warp no longer crashes when dragging a window that’s running htop * Warp no longer crashes when the find bar is open ### 2022.08.10 (v0.2022.08.08.09.21) **New features** * Can now Middle-click a tab to close it * Added additional tab reordering options (Close: tab, other tabs, and tabs to the right) via the Mac Menu, the Command Palette, and a tab’s context menu (right click) **Bug fixes** * Added a toggle to the Mac Menu for maximizing panes * Can now switch panes using keyboard shortcuts even when a pane is maximized * Add support for opening file paths with RubyMine, PhpStorm, and WebStorm * Fixed crash when highlighting links * Fixed issue where the HISTCONTROL environment variable was ignored in bash * Pressing `CTRL-R` to open history search no longer crashes Warp when you have multiple cursors ### 2022.08.03 (v0.2022.08.01.09.12) **New features** * Updated Mac menus to make Warp actions more discoverable - [101](https://github.com/warpdotdev/warp/issues/101) * Warp now supports opening file links and urls via CMD-CLICK! - [177](https://github.com/warpdotdev/warp/issues/177) **Bug fixes** * Various CLI tools no longer hang e.g. Bazel and Maven * Command Inspector hover no longer crashes with UTF-8 encoded strings * Opening the find / search bar (`CMD-F`) now automatically selects the text * Tab titles are no longer reset when changing panes ### 2022.07.27 (v0.2022.07.25.09.05) **Bug fixes** * Closing and re-opening the Command Palette now resets the selected item * The cursor’s position is now restored after exiting the Command History Search (`CTRL-R`) menu. * Shorthand and longhand flags are now correctly surfaced (based on the number of dashes) in tab completions * Added voiceover support for `BACKSPACE` and `DELETE` keystrokes within the Input Editor ### 2022.07.20 (v0.2022.07.18.09.06) **New features** * Command Inspector - hover over any piece of a command in Warp’s Input Editor to surface documentation or press `CMD+I` to inspect at the cursor’s current location * Improved ordering in the tab completions menu **Bug fixes** * Font color for links in light mode (themes) now set correctly * Moving forward by a word no longer moves farther than expected * Warp no longer hangs when passing an invalid file path * Fixed issues with persisting the selected theme when “Sync with OS” is enabled and the theme picker is launched from the Command Palette (or a keyboard shortcut) * Fixed issues with text input after clearing Blocks (`CMD-K`) while in a REPL environment. * Fixed shortcut for select-left-by-word (`SHIFT-CMD-B`), select-right-by-word (`SHIFT-CMD-F`), select-line-to-end (`SHIFT-CTRL-E`), and select-line-to-start (`SHIFT-CTRL-A`) ### 2022.07.13 (v0.2022.07.11.09.11) **Bug fixes** * Improved startup time for Fish shells * Find Bar no longer crashes on selected text * Scrollbar now supports jumping to where you click * Fixed a bug with the referral link for sharing Warp not loading ### 2022.07.07 (v0.2022.07.04.09.08) **New features** * Bookmark a Block (or multiple) for quick access via the scroll-bar * Added a referral counter to the Settings > Account screen and the referral screen * Added support for rendering text with a lower visual weight; enable the thin strokes option in Settings > Appearance (enabled by default for low-DPI displays) * Togglable settings, overflow menu items, and settings pages are now accessible through the Command Palette * CLI options are now surfaced by default without needing to type '-' * Press SHIFT-CMD-C while in VSCode (Visual Studio Code) to open a new Warp session **Bug fixes** * Fixed referal links and share by email * Fixed a hang that would sometimes occur when connecting with SSH * Now support requesting media permissions (camera, audio, etc) * Correctly parse Git commit SHAs in completion menus * Improved tab completion support for command line arguments that are behind flags ### 2022.07.06 (v0.2022.07.04.09.08) **New features** * Bookmark a Block (or multiple) for quick access via the scroll-bar * Added a referral counter to the Settings > Account screen and the referral screen * Added support for rendering text with a lower visual weight; enable the thin strokes option in Settings > Appearance (enabled by default for low-DPI displays) * Togglable settings, overflow menu items, and settings pages are now accessible through the Command Palette * CLI options are now surfaced by default without needing to type '-' * Press SHIFT-CMD-C while in VSCode (Visual Studio Code) to open a new Warp session **Bug fixes** * Fixed a hang that would sometimes occur when connecting with SSH * Now support requesting media permissions (camera, audio, etc) * Correctly parse Git commit SHAs in completion menus * Improved tab completion support for command line arguments that are behind flags ### 2022.06.29 (v0.2022.06.27.09.14) **Bug fixes** * Cursor changes when hovering over clickable UI elements and the Input Editor * Dim colors now render correctly ### 2022.06.27 (v0.2022.06.20.09.15) **New features** * Improved auto-focus behavior when closing panes by keeping track of history when navigating or clicking around panes * Performance improvements when executing Blocks: Warp no longer flashes on every command! **Bug fixes** * Input Editor re-focuses after renaming a tab * Reduced visual weight of the active tab title to improve legibility. * Improved blending along the inside edge of rounded corners * Global Hotkey Windows (Quake Mode) now correctly respect the active screen setting * Completions for flag arguments now support absolute and relative file paths (when applicable) * Git checkout <`TAB`> now also completes branches with the remote prefixed. * Pressing Arrow-up (`UP`) when the Input Editor is non-empty opens the command history with prefix filtering * Button to copy app version moved to main settings page ### 2022.06.22 (v0.2022.06.20.09.15) **New features** * Improved auto-focus behavior when closing panes by keeping track of history when navigating or clicking around panes * Performance improvements when executing Blocks: Warp no longer flashes on every command! **Bug fixes** * Input Editor re-focuses after renaming a tab * Reduced visual weight of the active tab title to improve legibility. * Improved blending along the inside edge of rounded corners * Global Hotkey Windows (Quake Mode) now correctly respect the active screen setting * Completions for flag arguments now support absolute and relative file paths (when applicable) * Git checkout <`TAB`> now also completes branches with the remote prefixed. * Pressing Arrow-up (`UP`) when the Input Editor is non-empty opens the command history with prefix filtering * Button to copy app version moved to main settings page ### 2022.06.17 (v0.2022.06.13.09.15) **New features** * Added keyboard shortcuts to reorder tabs (CTRL-SHIFT-LEFT and CTRL-SHIFT-RIGHT) **Bug fixes** * Warp no longer crashes on MacOS 13 (Ventura) * Global Hotkey Window (Quake Mode) no longer overlaps Spotlight, Raycast, Alfred, and the Mac Dock * Now correctly display the user and hostname in the Prompt after exiting an SSH session * Fixed a memory leak on window close. ### 2022.06.15 (v0.2022.06.13.09.15) **New features** * Added keyboard shortcuts to reorder tabs (CTRL-SHIFT-LEFT and CTRL-SHIFT-RIGHT) **Bug fixes** * Global Hotkey Window (Quake Mode) no longer overlaps Spotlight, Raycast, Alfred, and the Mac Dock * Now correctly display the user and hostname in the Prompt after exiting an SSH session * Fixed a memory leak on window close. ### 2022.06.08 (v0.2022.06.06.09.05) **New features** * Now support renaming tabs (right click on your tab title!) * Now support enabling custom prompt from prompt context menu (right-click on prompt) * Now support splitting panes (left and right) from the context menu (right click) and through the Command Palette * Now support CTRL-Click as an alternative to right-clicking **Bug fixes** * Improved completions support for arguments nested under options (e.g. git branch -D \) * Modified files are now included (in addition to commit SHAs) for `git diff` ### 2022.06.01 (v0.2022.05.30.09.10) **New features** * Added information about rewards to the referral screen * Added a button that toggles regex search in the Find Bar * Added completion support for shell functions **Bug fixes** * Hotfix - a regression that caused Warp to stall when using nano * Improved kerning (font rendering) throughout the app * Added a hyperlink (to our changelog history) in the Changelog modal * Multiline commands that don't have any output are no longer cut off ### 2022.05.26 (v0.2022.05.23.09.07) **New features** * Warp can now send you desktop notifications for long-running commands and password prompts - [628](https://github.com/warpdotdev/warp/issues/628) * Added keybinding to toggle fullscreen mode **Bug fixes** * Stopped prepending \ before \~ in tab titles for older versions of Bash * Added support for CMD-G and SHIFT-CMD-G to tab between results in the Find Bar ### 2022.05.18 (v0.2022.05.16.09.01) **New features** * Added exclusive theme available to anyone who has referred someone to Warp. (Open Theme Picker > Warp Referral to use it) **Bug fixes** * Improved rendering of rounded corners throughout the app * Fixed cell dimension computation for some fonts * Fixed labels rendering incorrectly in the font selector dropdown in settings * Fixed Bash remote sessions missing tab titles * Reduced UI flickering after executing commands * Fixed errors when sshing into remote machines which do not have xxd available * Fixed some anti-aliased glyphs getting clipped during rasterization * Fixed search bar stealing focus after command execution ### 2022.05.11 (v0.2022.05.09.09.06) **New features** * Filepath completions without needing to cd * Support for any font (not just monospaced) **Bug fixes** * Tab completions (cd) with international characters are now properly escaped (edited) * Improve rendering performance when many tabs are open (fixes non-responsiveness when searching history) * Fixed a race condition with autoupdate a11y announcements and other a11y messaging * Fixed a regression that would cut off the output of some long-running Blocks ### 2022.05.04 (v0.2022.05.02.09.00) **New features** * Added default tab titles for Bash * Improved default tab title in Zsh * Maximize a split pane * Support rcfiles that check PS1 to determine if it's an interactive shell; this may explain missing aliases or commands in Warp! **Bug fixes** * History now correctly shows results after hitting ESC when a Block is focused * Fixed crash when quitting AI Command Search while a command was being generated * Global keybindings with function keys and numeric keys are now properly registered * Warp no longer jumps up and down for single-line commands that take more than 50ms ### 2022.05.02 (v0.2022.04.25.09.59) **New features** * Added a Quake Mode setting that configures whether Warp should automatically hide when losing focus - [1077](https://github.com/warpdotdev/warp/issues/1077) * Added a Quake Mode setting that configures which screen to pin Warp on - [862](https://github.com/warpdotdev/warp/issues/862) * Expanded the keybindings supported by Quake Mode / Global Hotkey Window - [856](https://github.com/warpdotdev/warp/issues/856) **Bug fixes** * Commands prepended with space are now stored in history if hist\_ignore\_space option is not set * Now support dotfile configurations with non-English quotation marks * Continued improving the reliability of login and auth within the app * Improved performance for commands with large outputs * Improved performance for long running commands * Improved text alignment within inline banners ### 2022.04.27 (v0.2022.04.25.09.59) **New features** * Added a Quake Mode setting that configures whether Warp should automatically hide when losing focus - [1077](https://github.com/warpdotdev/warp/issues/1077) * Added a Quake Mode setting that configures which screen to pin Warp on - [862](https://github.com/warpdotdev/warp/issues/862) * Expanded the keybindings supported by Quake Mode / Global Hotkey Window - [856](https://github.com/warpdotdev/warp/issues/856) **Bug fixes** * Commands prepended with space are now stored in history if hist\_ignore\_space option is not set * Now support dotfile configurations with non-English quotation marks * Continued improving the reliability of login and auth within the app * Improved performance for commands with large outputs * Improved performance for long running commands * Improved line height computation for some fonts * Improved text alignment within inline banners ### 2022.04.20 (v0.2022.04.18.09.08) **New features** * Support logging into Warp by pasting the auth url when "Take me to Warp" fails in browser **Bug fixes** * Improved reliability of login and auth within the app * Buttons within the find bar are now properly shaded for gradient themes * Workflows with default values are now registered by Warp * Fixed bootstrapping bug that affected Fish versions older than 3.2.0 * Fixed a memory leak that occurred when new tabs were opened or panes were split ### 2022.04.15 (v0.2022.04.11.09.09) **Bug fixes** * Support parsing PS1’s exit codes (Bash’s $?) and improved PS1 parsing for newer Bash versions (4.4+) * Fixed prompt showing up as exit in Bash - [793](https://github.com/warpdotdev/warp/issues/793) * Improved parsing of Zsh default prompts * Opening the find bar will automatically select any existing text - [831](https://github.com/warpdotdev/warp/issues/831) ### 2022.04.13 (v0.2022.04.11.09.09) **Bug fixes** * Support parsing PS1’s exit codes (Bash’s $?) and improved PS1 parsing for newer Bash versions (4.4+) * Fixed prompt showing up as exit in Bash - [793](https://github.com/warpdotdev/warp/issues/793) * Improved parsing of Zsh default prompts * Opening the find bar will automatically select any existing text - [831](https://github.com/warpdotdev/warp/issues/831) ### 2022.04.08 (v0.2022.04.04.09.07) **Bug fixes** * Block sharing dialog now scrolls properly ### 2022.04.01 (v0.2022.04.01.01.37) **New features** * Warm welcome! * A.I. Command Search **Bug fixes** * Warp now properly registers `SPACE` and `SHIFT` modifier keys for Global Hotkey Windows * Page Up and Page Down keys now work correctly in vim and other fullscreen apps - [560](https://github.com/warpdotdev/warp/issues/560) * SSH now supports bootstrapping if bash-preexec is included in a Debian VM’s system rcfiles (eg by default at Google) - [578](https://github.com/warpdotdev/warp/issues/578) * Corrected keyboard shortcut for split pane in context menu ### 2022.03.30 (v0.2022.03.29.02.23) **New features** * Workflows: an easier way to share, parameterize, and execute commands - [625](https://github.com/warpdotdev/warp/issues/625) * Quake mode / Focus Warp with a Global Hotkey - [091](https://github.com/warpdotdev/warp/issues/091) **Bug fixes** * Magnet, Swish and ALT-Tab window managers now work with Warp - [776](https://github.com/warpdotdev/warp/issues/776) * SSH now handles control master connection errors - [578](https://github.com/warpdotdev/warp/issues/578) * SSH now handles verbose mode, no longer leaks into the Input Editor as a typeahead - [578](https://github.com/warpdotdev/warp/issues/578) * SSH now boots normally for POSIX shells that aren’t supported by Warp’s wrapper - [578](https://github.com/warpdotdev/warp/issues/578) ### 2022.03.24 (v0.2022.03.23.22.10) **New features** * Fish support - [190](https://github.com/warpdotdev/warp/issues/190) * Basic screenreader support (Voiceover) - Warp is now an accessible terminal! * Added a toggle in the settings to disable the SSH wrapper - [821](https://github.com/warpdotdev/warp/issues/821) **Bug fixes** * Hitting tab with a text selection shows tab completions instead of indenting * SSH no longer hangs when /tmp is not writable for Zsh - [578](https://github.com/warpdotdev/warp/issues/578) * SSH no longer bootstrap the shell if it’s not meant to be an interactive session (e.g. if -T or a command is passed) - [578](https://github.com/warpdotdev/warp/issues/578) * SSH now supports Starship and Zsh's $PROMPT variable - [803](https://github.com/warpdotdev/warp/issues/803) * Also import themes in subdirectories e.g. `~/.warp/themes/subdirectory/theme.yaml` ### 2022.03.16 (v0.2022.03.14.08.49) **New features** * Multi-block selections and corresponding actions - [146](https://github.com/warpdotdev/warp/issues/146) * Case-sensitive search **Bug fixes** * SSH no longer returns 0\~ and 1\~ after executing commands for Zsh 5.0.8 or older - [578](https://github.com/warpdotdev/warp/issues/578) * SSH now supports LocalCommand / RemoteCommand - [578](https://github.com/warpdotdev/warp/issues/578) * SSH over Zsh no longer depends on configuring locales on the remote machine - [578](https://github.com/warpdotdev/warp/issues/578) * SSH sources /etc/bash.bashrc which is an extra rcfile in Debian and other Linux distributions - [578](https://github.com/warpdotdev/warp/issues/578) * Improved completions stability when there are multiple panes on the same remote machine * Vim and other alt-screen apps properly expand to take up the full window - [552](https://github.com/warpdotdev/warp/issues/552) * Clicking into Warp from other foreground window focuses the clicked pane - [739](https://github.com/warpdotdev/warp/issues/739) * Warp now respects ignore-space history options for Zsh and Bash - [044](https://github.com/warpdotdev/warp/issues/044) * Warp now creates a \~/.warp folder to persist custom keybindings - [801](https://github.com/warpdotdev/warp/issues/801) ### 2022.03.09 (v0.2022.03.07.08.51) **Bug fixes** * Added missing actions to Command Palette * Option is meta is now in the settings menu * Fix for SSH hanging when Zsh is the remote login shell * Fix for SSH with Zsh that would break with certain rcfiles because of incorrectly set ZDOTDIR ### 2022.03.02 (v0.2022.02.28.08.45) **New features** * Can now edit the keybindings for arrow navigation (Up/Down/Left/Right) * Can now edit the keybindings for activating specific tabs (by number CMD-1, CMD-2, …) **Bug fixes** * Crash in theme chooser * Fix for tab completion sometimes deleting characters ### 2022.02.23 (v0.2022.02.21.08.55) **New features** * Zsh support over SSH * Partially complete autosuggestion (by word) using CTRL-RIGHT and ALT-RIGHT - [488](https://github.com/warpdotdev/warp/issues/488) * Added a Copy URL menu item after right-clicking a URL - [154](https://github.com/warpdotdev/warp/issues/154) * Indicator for conflicting keybindings in keyboard customization UI **Bug fixes** * Able to fill-in longest common prefix after filtering tab completions - [618](https://github.com/warpdotdev/warp/issues/618) * Block completion causes Input Editor to steal focus from find bar - [452](https://github.com/warpdotdev/warp/issues/452) * UP-arrow in history menu sometimes scrolls more than one item * CMD-F opens a no-op find bar in alt screen ### 2022.02.16 (v0.2022.02.14.08.44) **New features** * Customizable key bindings (accessible via the settings menu) - [579](https://github.com/warpdotdev/warp/issues/579) * Users can opt in to use their shell’s prompt rather than Warp’s default (select the Honor PS1 toggle under the settings menu) - [580](https://github.com/warpdotdev/warp/issues/580) * Added a timestamp showing Block runtime duration; hover to see start and end date + time - [178](https://github.com/warpdotdev/warp/issues/178) * CTRL-F now accepts autosuggestions - [403](https://github.com/warpdotdev/warp/issues/403) * CTRL-E and CMD-RIGHT accept autosuggestions when at the end of the buffer - [403](https://github.com/warpdotdev/warp/issues/403) * Allow input height to expand to half the pane height - [621](https://github.com/warpdotdev/warp/issues/621) **Bug fixes** * Arrow key presses now (up and down now) cycle themes in the theme picker - [294](https://github.com/warpdotdev/warp/issues/294) * ESC keypress now exits the theme picker * CMD-Down when on most recent block to focus input now clears Block selection * Fixed a bug where resizing a pane while a command was running made it impossible to scroll to the bottom of the pane * Fixed a bug where resizing a pane could cause Warp to show a blank screen * Parentheses, quotes, and brackets now also auto-close after typing an alphanumeric character * Remapped multi-cursor key bindings to CTRL-SHIFT-UP and CTRL-SHIFT-DOWN - [374](https://github.com/warpdotdev/warp/issues/374) * Restored OPT-CMD-UP and OPT-CMD-DOWN for switching panes up and down - [730](https://github.com/warpdotdev/warp/issues/730) ### 2022.02.02 (v0.2022.01.31.09.03) **New features** * Multi-cursor keybindings for adding cursors above and below current selections with OPT-CMD-UP/DOWN - [374](https://github.com/warpdotdev/warp/issues/374) **Bug fixes** * Double clicking the top of the window maximizes the app - [097](https://github.com/warpdotdev/warp/issues/097) * Icon, cursor and selection contrast fixes * Scrolling performance improvements with bg image themes * Changelog visual glitch * Resize bug - losing scroll position when viewing blocks with long output ### 2022.01.26 (v0.2022.01.24.08.55) **New features** * Auto-close symbols (parentheses, quotes, and brackets) like VSCode **Bug fixes** * Block sharing link no longer cuts off - [660](https://github.com/warpdotdev/warp/issues/660) * Right clicking a Block now focuses that Block * Mouse dragging in vim * Restoring history bug on session restore * Automatically focus the last active window on session restore ### 2022.01.19 (v0.2022.01.17.08.48) **New features** * Restore block contents * The longest common prefix in the completions menu auto-fills the Input Editor - [479](https://github.com/warpdotdev/warp/issues/479) * Add description for paths in completion results - [103](https://github.com/warpdotdev/warp/issues/103) * Can right click the prompt and copy: git branch, prompt, cwd - [346](https://github.com/warpdotdev/warp/issues/346) **Bug fixes** * Fixed bug where venv was inserted into input editor - [599](https://github.com/warpdotdev/warp/issues/599) * Improved url detection ### 2022.01.12 (v0.2022.01.10.17.24) **New features** * Added a Changelog page to our documentation **Bug fixes** * Double clicking text in a url now highlights the word instead of the whole url - [508](https://github.com/warpdotdev/warp/issues/508) * Double clicking a string with underscores now selects the whole string and not just the subword * Selection updates correctly when a block hit its max line length * Can now also close the Command Palette using CMD-P - [184](https://github.com/warpdotdev/warp/issues/184) * Moved check for update button to settings dialog - [070](https://github.com/warpdotdev/warp/issues/070) * Fixes tabs not opening in new windows when autoupdate is pending * Fix regression with input box not being focused on app relaunch ### 2022.01.05 (v0.2022.01.03.09.07) **New features** * Native undo and redo in the text editor using CMD-Z - [113](https://github.com/warpdotdev/warp/issues/113) * Added CMD-M to minimize the Window - [107](https://github.com/warpdotdev/warp/issues/107) * Added our open source licenses to the Warp Documentation * Split pane focus indicator - a triangle in the top left corner of the pane in focus **Bug fixes** * CTRL-SPACE is now properly passed to Emacs and other terminal apps - [499](https://github.com/warpdotdev/warp/issues/499) * Copy on select setting persists across sessions and does not reset after updates ### 2021.12.29 (v0.2021.12.27.09.04) **New features** * Find in block (+ other find improvements) ### 2021.12.22 (v0.2021.12.20.09.04) **New features** * Windows, tabs, and panes are restored whenever you reopen Warp. Restoring block content is on its way! * Warp now supports completions for over 300 commands and more information about existing commands by using Fig’s completion specs * Git aliases are now included in completions menu - [210](https://github.com/warpdotdev/warp/issues/210) * Switch to next pane and previous pane with CMD-\[ and CMD-] - [392](https://github.com/warpdotdev/warp/issues/392) * Scrolling the Block list with PG-UP and PG-DOWN - [370](https://github.com/warpdotdev/warp/issues/370) * Copy and paste the file directory into Warp from Finder - [514](https://github.com/warpdotdev/warp/issues/514) * When the last Block is selected, can re-focus the input editor using CMD-DOWN key * Arrow down scrolls to bottom of last block **Bug fixes** * Copying selected text to clipboard creates a new entry for each selected character - [504](https://github.com/warpdotdev/warp/issues/504) * Needed an extra backspace to escape CTRL-R / history menu - [427](https://github.com/warpdotdev/warp/issues/427) * VIM performance improvements - we’ve made progress but would love more sample cases of slowness **Updates to Mac Menu Bar (Window)** * Zoom * Minimize * Tile Window to Left of Screen (Default) * Tile Window to Right of Screen (Default) * Move to X screen (Default) * Enter Full Screen (Default) * Bring All to Front ### 2021.12.15 (v0.2021.12.13.08.40) **New features** * Fuzzy search in CTRL-R and Command Palette * When you share a link to a block, up to 5 recipients may now download Warp’s beta via the link **Bug fixes** * Fix bug where opening file:// urls would not include query params like '?foo=bar' - [426](https://github.com/warpdotdev/warp/issues/426) * More prominent highlights in CTRL-R, Command Palette, tab completion * Vim bug fixes and performance improvements - please let us know what else you see ### 2021.12.08 (v0.2021.12.06.19.09) **New features** * Added a send invite button in account section of the settings dialog * You can now request more invites in the invite modal **Bug fixes** * Copy on select persistence bug * UI Bug when trying to un-share a block - [439](https://github.com/warpdotdev/warp/issues/439) ### 2021.12.01 (v0.2021.11.29.18.59) **New features** * Added 15 extra invites for everyone! * Copy on select (highlighting text will automatically copy to clipboard). This can be turned off in the settings dialog - [077](https://github.com/warpdotdev/warp/issues/077) * CTRL-L shortcut to clear the screen - [049](https://github.com/warpdotdev/warp/issues/049) **Bug fixes** * Can now highlight and copy sections of a URL without it automatically opening - [138](https://github.com/warpdotdev/warp/issues/138) ### 2021.11.24 (v0.2021.11.23.17.55) **New features** * Background images + gradients in themes: You can now set a background image or gradient as your theme background. Warp ships with a few of these already or you can create your own via a yaml file. - [032](https://github.com/warpdotdev/warp/issues/032) * Changelog dialog * Emoji rendering: 😂, 😃, 🌍, 🍞, 🚗, 📞, 🎉, ❤️ - [075](https://github.com/warpdotdev/warp/issues/075) * Improved settings dialog * Theme search - [237](https://github.com/warpdotdev/warp/issues/237) **Bug fixes** * Properly escapes whitespace when you drag and drop files ### 2021.11.17 (v0.2021.11.16.20.05) **New features** * Drag and drop files & directories from finder - [069](https://github.com/warpdotdev/warp/issues/069) ### 2021.11.10 (v0.2021.11.09.19.46) **New features** * Autosuggestions: Warp now suggests commands as you type, similar to Fish or Gmail - [052](https://github.com/warpdotdev/warp/issues/052) * Button to copy the app/version - [106](https://github.com/warpdotdev/warp/issues/106) * Conda context to the prompt - [235](https://github.com/warpdotdev/warp/issues/235) **Bug fixes** * Conda info (prompt) locking input editor * CTRL-D now deletes forward one character * History now preserved across sessions - [337](https://github.com/warpdotdev/warp/issues/337) * Enter (numpad) was inputting as CTRL-C - [330](https://github.com/warpdotdev/warp/issues/330) ### 2021.11.03 (v0.2021.11.02.00.38) **New features** * CJK (Chinese, Japanese, and Korean) character support - [327](https://github.com/warpdotdev/warp/issues/327) * Autocompletions for missing tar commands * Enforcement of minimum contrasts in grid - [249](https://github.com/warpdotdev/warp/issues/249) **Bug fixes** * Runaway memory usage (from font loading on initial run) - [232](https://github.com/warpdotdev/warp/issues/232) * Directories with non-english filenames not rendering on screen - [309](https://github.com/warpdotdev/warp/issues/309) * App crashes from missing current working directory * Pure Prompt being inserted as a typehead into editor - [242](https://github.com/warpdotdev/warp/issues/242) ### 2021.10.27 (v0.2021.10.25.22.47) **New features** * Ability to unshare blocks in settings modal * Link to the documentation in kebab menu (three dots in top right corner) **Bug fixes** * Double character entry after input editor loses focus ### 2021.10.20 (v0.2021.10.19.21.38) **New features** * Switch theme based on OS appearance - [068](https://github.com/warpdotdev/warp/issues/068) * Toggles instead of buttons in the setttings! * Link to Custom themes documentation in the settings **Bug fixes** * IME support (non-English keyboards are now better supported in input box!) * Show a banner instead of a popup when app startup takes longer than expected * git log (and similar commands) no longer treated as a failed block ### 2021.10.13 (v0.2021.10.12.19.34) **Bug fixes** * Shell Bootstrapping should be a lot faster * Support 3-char color representation for hex colors in theme * Fix crashes relating to reading history files * Prevent block completion from stealing focus * Fix broken click handling for showing and hiding overflow menu ### 2021.10.06 (v0.2021.10.05.20.07) **Bug fixes** * Split pane navigation when 'Left / Right Option is Meta' settings are enabled * Crash when opening a new window ### 2021.09.29 (v0.2021.09.29.13.26) **New features** * Split panes: create multiple panes in the same tab via shortcuts (CMD-E/SHIFT-CMD-E), the Command Palette, or by right clicking in any pane. * Custom themes via files. You can now define your own theme as a yaml file in \~/.warp/themes. For more information on the file format and to see \~100 of the most popular themes already implemented in this format, see . The ability to add and share themes directly within Warp is coming soon! **Bug fixes** * Add better messaging when Warp does not have permission to autoupdate * Crash if a tab completion result was accepted after the cursor was moved to the beginning of the editor ### 2021.09.22 (v0.2021.09.21.20.54) **New features** * Theme picker available from the Command Palette **Bug fixes** * Occasional crash when opening a new Warp window * Font selection dropdown didn't respect theme choice * Issues with padding and hover detection when toggling Compact Mode on or off ### 2021.09.15 (v0.2021.09.14.21.25) **Bug fixes** * Crash when closing full-screen window * Executables in path were not appearing for completions in Bash * Completions menu overlaps theme picker ### 2021.09.09 (v0.2021.09.09.0.0) **New features** * New themes for Warp!!! (Access them via Settings on the overflow menu. We have Dracula, Solarized, & Gruvbox) * CMD-, opens the Settings menu **Bug fixes** * Fixed crash when we fail to load a font or when we scroll through fonts * Fixed visual artifacts around windows and modals jumping * Fixed crash that occurs when you CMD-F while selecting an already selected text ### 2021.08.31 (v0.2021.08.31.0.0) **New features** * Support emacs bindings in input box * History up menu performs a prefix search based on input **Bug fixes** * Warp not rendering after executing long-running command * Stop powerlevel10k instant prompt from hanging on bootstrap * Changing “font-size” via CTRL-- and CTRL-0 should stay in sync with font size in settings menu * Bracketed paste mode bug: 0\~ \~1 on every command when ssh-ing * Crash when tab completing with multibyte characters * Download page doesn’t render correctly on safari * Login is broken for some users using Chrome * Make it more prominent in onboarding that we are collecting telemetry during the beta ### 2021.08.25 (v0.2021.08.25.0.0) **New features** * Custom fonts * Completions for aliases and environment variables **Bug fixes** * Completions loose ends, including completions for path names with spaces and if commands are separated by && * Function key support within running programs (such as htop) * Editor text respects zoom level * Regression that caused URLs to not be highlighted * Opening a new window required Internet connection ### 2021.08.18 (v0.2021.08.18.0.0) **New features** * Re-run with sudo **Bug fixes** * Crash caused by pressing CMD-K * Completion not working when cursor is mid-line * Re-input of multi-line commands * [084](https://github.com/warpdotdev/warp/issues/084) - Rendering of colors correctly in diffs * Selection showing after closing and re-opening alt-screen ### 2021.08.09 (v0.2021.08.09.0.0) **New features** * New settings modal (accessible from the top right overflow button) to set font size, toggle between light mode and dark mode, compact mode and normal mode * CTRL-U and CTRL-K now cut to clipboard * Typeahead: characters you type in a long-running command will now show up in the input box when the command completes **Bug fixes** * Handle arrow keys with modifiers (option and command) in CLIs and full-screen apps (Previously, users were unable to navigate with option and command keys in - Postgres CLI) * Straightening the text baseline * Translucent colors (e.g. for diff-so-fancy) are now correct (We now support the full range of opacity) * Dotfile path completions + Completions improvements for more commands * Artifacts when rendering svgs, especially on low res monitors. Overflow menu looks a lot better now! ### 2021.07.28 (v0.2021.07.28.0.0) **New features** * Compact Mode (see GIF below) * Support for mouse events in Vim and other programs that can handle mouse input * Completions for npm / yarn scripts **Bug fixes** * Major improvements to the consistency of completions, especially for commands that can take multiple arguments (e.g. rm -rf) * Proper path completions for absolute paths * Hang when PROMPT\_COMMAND is set for the shell * Context Menu not closing when clicking outside of the menu * Crashes after executing multi-line commands and on older versions of macOS ### 2021.07.21 (v0.2021.07.21.0.0) **New features** * Support for numpad ENTER * More npm & yarn completions **Bug fixes** * Down arrow sends unrecognized escape sequence to Github CLI * Can’t use UP arrow if item in history is multiple lines * Crash when closing a tab when there are multiple tabs * File-only completion signatures should also show directories ### 2021.07.13 (v0.2021.07.13.0.0) **New features** * New invite system to add users to Warp. To invite new users, click the overflow menu at the top right and click 'invite users'. For now we ask that you please don't post these invites on social media! * URLs in the terminal screen are auto-linkified * Double clicking the title bar maximizes/minimizes the window **Bug fixes** * Various Command Palette bugs * Find box is populated with the user's text selection * 3 second latency when changing the prompt upon first SSHing ### 2021.07.07 (v0.2021.07.07.0.0) **New features** * Command Palette for most keyboard shortcuts (CMD-P) * Previously, tab completion descriptions were cut off. Now we display them in a floating box * You can now switch tabs using CTRL-TAB and CTRL-SHIFT-TAB **Bug fixes** * Intermittent crashes with Zsh sessions and switching tabs * Always fall back to path suggestions for completions * Various bugs related to completions ### 2021.06.29 (v0.2021.06.29.0.0) **New features** * Multiple window support * New completions UI and in-line documentation for commands and flags * Horizontal scrolling of input box to support long commands **Bug fixes** * Crash when exiting from logout or exit when there’s a background process * Crash when bootstrapping from detecting incorrect shell name * Various bugs related to completions ### 2021.06.15 (v0.2021.06.15.19.04) **New features** * Mac File and Edit menus, along with Mac standard menu items (although New Window not yet working) **Bug fixes** * Crash when closing last window * CMD-F: when there are no matches, display 0/0 * CMD-F should not scroll away if navigating to a match on the same row * CMD-F: render the yellow rectangle at the layer of rendering the cell * Unable to move cursor upwards on multi-line previous command * Warp bootstrap commands showing up in history over ssh * Accept input via input box before terminal has bootstrapped * New tab button should have hover and click state * Output stops midway through session on iMac running Mojave 10.14.6 * Backspace doesn’t work while holding shift * Clipping issue in share dialog * Input suggestions closes if you click on the scrollbar * Hitting up/down while input suggestions are open causes menu to move * Paste is not working for full screen apps * Underline does not render with Hack font ### 2021.06.09 (v0.2021.06.09.15.14) **New features** * SSH support (Warp now works the same when you SSH as it does locally!) * Improved completions: we’ve built out new completions support that are snappier and have more intelligent suggestions for options and arguments for some of the most used commands * Find: Pressing CMD-F now brings up a find view to search for text in the terminal **Bug fixes** * Text rendering was faded on certain monitors --- # Source: https://docs.warp.dev/terminal/universal-input/classic-input.md # Classic Input ## Classic Input Style Warp supports two input styles: **Classic Input** and [Universal Input](https://docs.warp.dev/terminal/universal-input). Classic Input is closer to a traditional terminal experience, with support for shell customizations (e.g. PS1, same-line prompts, oh-my-zsh themes, and more). You can switch between input styles in `Settings > Appearance > Input`. {% hint style="info" %} [Universal Input](https://docs.warp.dev/terminal/universal-input) is the default input style in Warp. Many of our newest features are only available in Universal Input and may not work in Classic Input.\ \ Classic Input remains supported for users who prefer a traditional terminal experience, but it is considered a legacy option. We encourage you to use Universal Input for the best experience. {% endhint %} [Agent Mode](https://docs.warp.dev/agent-platform/agent/using-agents) works in Classic Input just like it does in Universal Input, with some minor differences. ### Learn more about Classic Input Classic Input supports all of Warp’s core terminal features, including the following and more: * [Prompt](https://docs.warp.dev/terminal/appearance/prompt) — Use a fully customizable Warp prompt or your shell prompt, with support for PS1 and same-line prompts. * [Input Position](https://docs.warp.dev/terminal/appearance/input-position) — Choose where the input appears in Warp, including both the prompt and the command line. * [Modern Text Editing](https://docs.warp.dev/terminal/editor) — Warp's input editor works like a modern IDE, with rich editing capabilities not found in most terminals. * [Command Entry](https://docs.warp.dev/terminal/entry) — Access Warp's features for command history, synchronized inputs, YAML workflows, and more. * [Text Selection](https://docs.warp.dev/terminal/more-features/text-selection) — Use smart selection or rectangular (column) selection to highlight text precisely without tedious cleanup. ### How to enter Agent Mode You may enter Agent Mode in a few ways: {% tabs %} {% tab title="macOS" %} * Type any natural language, like a task or a question, in the terminal input. Warp will recognize natural language with a local auto-detection feature and prepare to send your query to Warp AI. * Use keyboard shortcuts to toggle into Agent Mode `CMD-I` or type `ASTERISK-SPACE`. * Click the “AI” sparkles icon in the menu bar, and this will open a new terminal pane that starts in Agent Mode. * From a block, you want to ask Warp AI about. You can click the sparkles icon in the toolbelt, or click on its block context menu item “Attach block(s) to AI query”. {% endtab %} {% tab title="Windows" %} * Type any natural language, like a task or a question, in the terminal input. Warp will recognize natural language with a local auto-detection feature and prepare to send your query to Warp AI. * Use keyboard shortcuts to toggle into Agent Mode `CTRL-I` or type `ASTERISK-SPACE`. * Click the “AI” sparkles icon in the menu bar, and this will open a new terminal pane that starts in Agent Mode. * From a block, you want to ask Warp AI about. You can click the sparkles icon in the toolbelt, or click on its block context menu item “Attach block(s) to AI query”. {% endtab %} {% tab title="Linux" %} * Type any natural language, like a task or a question, in the terminal input. Warp will recognize natural language with a local auto-detection feature and prepare to send your query to Warp AI. * Use keyboard shortcuts to toggle into Agent Mode `CTRL-I` or type `ASTERISK-SPACE`. * Click the “AI” sparkles icon in the menu bar, and this will open a new terminal pane that starts in Agent Mode. * From a block, you want to ask Warp AI about. You can click the sparkles icon in the toolbelt, or click on its block context menu item “Attach block(s) to AI query”. {% endtab %} {% endtabs %} This will put you in *Pair* mode by default. While pairing with Warp, you can write out questions and tasks in an ongoing conversation. When you are in Agent Mode, a ✨ sparkles icon will display in line with your terminal input.
The sparkles on the command line indicate Agent Mode is active.

The sparkles on the command line indicate Agent Mode is active.

### Auto-detection for natural language and configurable settings The feature Warp uses to detect natural language automatically is completely local. None of your input is sent to AI unless you press `ENTER` in Agent Mode. If you find that certain shell commands are falsely detected as natural language, you can fix the model by adding those commands to a denylist in `Settings > AI > Auto-detection denylist`. You may also turn autodetection off from `Settings > AI > Input Auto-detection`. The first time you enter Agent Mode, you will be served a banner with the option to disable auto-detection for natural language on your command line:
Warp displays an option to toggle natural language detection on / off

Warp displays an option to toggle natural language detection on / off

### Input Hints Warp input occasionally shows hints within the input editor in a light grey text that helps users learn about features. It's enabled by default. * Toggle this feature `Settings > AI > Show input hint text` or search for "Input hint text" in the [Command Palette](https://docs.warp.dev/terminal/command-palette) or Right-click on the input editor. ### How to exit Agent Mode {% tabs %} {% tab title="macOS" %} You can quit Agent Mode at any point with `ESC` or `CTRL-C`, or toggle out of Agent Mode with `CMD-I`. {% endtab %} {% tab title="Windows" %} You can quit Agent Mode at any point with `ESC` or `CTRL-C`, or toggle out of Agent Mode with `CTRL-I`. {% endtab %} {% tab title="Linux" %} You can quit Agent Mode at any point with `ESC` or `CTRL-C`, or toggle out of Agent Mode with `CTRL-I`. {% endtab %} {% endtabs %} ### How to run commands in Agent Mode Once you have typed your question or task in the input, press `ENTER` to execute your AI query. Agent Mode will send your request to Warp AI and begin streaming output in the form of an AI block. Unlike a chat panel, Agent Mode can complete tasks for you by running commands directly in your session. #### Agent Mode Command Suggestions If Agent Mode finds a suitable command that will accomplish your task, it will describe the command in the AI block. It will also fill your terminal input with the suggested command so you can press `ENTER` to run the command. When you run a command suggested by Agent Mode, that command will work like a standard command you've written in the terminal. No data will be sent back to the AI. If the suggested command fails and you want to resolve the error, you may start a new AI query to address the problem.
Agent Mode makes a suggestion to run a command.

Agent Mode makes a suggestion to run a command.

#### Agent Mode Requested Commands If Agent Mode doesn't have enough context to assist with a task, it will ask permission to run a command and read the output of that command. You must explicitly agree and press `ENTER` to run the requested command. When you hit enter, both the command input and the output will be sent to Warp AI. If you do not wish to send the command or its output to AI, you can click Cancel or press `CTRL-C` to exit Agent Mode and return to the traditional command line.
Warp AI asks permission to run a command and read the output.

Warp AI asks permission to run a command and read the output.

Once a requested command is executed, you may click to expand the output and view command details.

Viewing command details

In the case that a requested command fails, Warp AI will detect that. Agent Mode is self-correcting. It will request another command until it completes the task for you. Warp lets you choose from a curated list of LLMs for use in Agent Mode. By default, Warp uses **Claude 4 Sonnet** for auto, but you can switch to other supported models. For all available models, please refer to [Model Choice](https://docs.warp.dev/agent-platform/agent/using-agents/model-choice). --- # Source: https://docs.warp.dev/reference/cli/cli.md # Warp CLI {% hint style="info" %} The Warp CLI is under development and only supports some operations.\ \ We welcome [feedback](https://docs.warp.dev/support-and-community/troubleshooting-and-support/sending-us-feedback#sending-warp-feedback) on how you're building with the CLI and on any missing functionality! {% endhint %} ## What is the Warp CLI? The Warp CLI is the command-line tool that lets you run [Ambient Agents](https://docs.warp.dev/agent-platform/ambient-agents/ambient-agents-overview) from anywhere, including terminals, scripts, automated systems, or services. It’s the standard runtime entry point that turns a **prompt** plus **configuration** into an **executable agent task** that runs on either a **Warp-hosted or self-hosted runner**. With the Warp CLI, you can: * Run agents locally for development and debugging * Run agents on remote machines * Connect agents to MCP servers like GitHub and Linear * Configure integrations that connect agents to Slack, Linear, and other trigger surfaces ## Quickstart Guide Set up and run your first ambient agent in less than 5 minutes. ### 1. Installing the CLI If you already have the [Warp desktop app installed](https://docs.warp.dev/getting-started/quickstart-guide/installation-and-setup), the **CLI is included** and available in the Warp terminal. If not, see [Installing the CLI](#installing-the-cli) for installation options for all platforms. ### 2. Authenticate For local development and first-time setup, authenticate interactively using the `warp login` command. Replace `warp` with the appropriate command name based on your installation method. For command names, refer to the table in [Running the CLI](#running-the-cli). **For example, on macOS:** ```sh warp login ``` This command prints a sign-in URL in your terminal. Open the URL in your browser to login to Warp. Your credentials will be stored securely for future CLI use. Interactive login works on both **local** and **remote** machines, and does not require API keys. ### 3. Run an agent From any directory, run: ```sh warp agent run --prompt "summarize this directory" ``` This uses the default agent profile, loads any available MCP servers, and executes the run locally. The output appears directly in your terminal. What happens: * Warp starts a new Ambient Agent session. * The agent is given access to your current working directory. * The agent autonomously executes commands and streams output to your terminal. ### 4. Add GitHub context (optional) If the directory is a Git repository, the Warp CLI can use GitHub as an MCP server: ```sh warp mcp add github warp agent run --prompt "Open a pull request that fixes TODOs in this repo" ``` You'll be prompted to authorize the Warp GitHub App if you haven't already. ### 5. Next steps Once you've successfully set up and ran your agent, explore other configurations and workflows with the Warp CLI: * Customize behavior with [agent profiles.](#using-agent-profiles) * [Reuse prompts](#using-saved-prompts) with `--saved-prompt`. * Connect agents to external systems [using MCP servers](#using-mcp-servers). * Authenticate with [API keys](#api-key-authentication) for automated environments or workflows. * Get up-to-date information about the Warp CLI using the [`help` command.](#getting-help) Continue reading to learn how to install the CLI on different platforms, authenticate in different environments, and configure agents for real-world workflows. *** ## Installing the CLI You can install the Warp CLI as part of the Warp desktop app, or as a standalone package. ### Bundled with Warp The Warp CLI is automatically distributed with the Warp desktop app and can be used right away with the Warp terminal. To make the CLI globally available, add it your `PATH`. {% tabs %} {% tab title="macOS" %} To add the Warp CLI to your `PATH`,: 1. Open the [Command Palette](https://docs.warp.dev/terminal/command-palette) (`CMD+P` ) 2. In the search field, find and select the `Install Warp CLI Command` action. {% hint style="info" %} **Note:** Administrator permissions are required to install the CLI into `/usr/local/bin` . {% endhint %} {% endtab %} {% tab title="Windows" %} In the Warp installer, select `Add Warp to PATH`. If you are installing for all users, this will put the CLI on the system path. Otherwise, the CLI is only added to the path for your account. {% endtab %} {% tab title="Linux" %} To run the Warp CLI on Linux, use the same command that you'd use to start Warp normally. If you installed Warp via a package manager, it should already be on the system `PATH`. {% endtab %} {% endtabs %} ### Standalone package Warp provides standalone packages for the CLI on macOS and Linux, without the Warp app. {% tabs %} {% tab title="macOS" %} On macOS, we recommend that you install and update the standalone CLI with [Homebrew](https://brew.sh/), using the [`warpdotdev/warp` tap](https://github.com/warpdotdev/homebrew-warp): ```sh $ brew tap warpdotdev/warp $ brew update $ brew install --cask warp-cli ``` If you're using Warp Preview, install the preview version of the CLI instead: ```sh brew install --cask warp-cli@preview ``` To install Warp Preview, use `brew install --cask warp-cli@preview`. *** You can also download the CLI directly from these URLs: * [Apple Silicon](https://app.warp.dev/download/cli?os=macos\&package=tar\&arch=aarch64) * [Intel](https://app.warp.dev/download/cli?os=macos\&package=tar\&arch=x86_64) * [Apple Silicon, Warp Preview](https://app.warp.dev/download/cli?os=macos\&channel=preview\&package=tar\&arch=aarch64) * [Intel, Warp Preview](https://app.warp.dev/download/cli?os=macos\&channel=preview\&package=tar\&arch=x86_64) {% hint style="info" %} **Note:** These builds do not auto-update. {% endhint %} {% endtab %} {% tab title="Linux" %} On Linux, we recommend that you install and update the standalone CLI through your distribution's package manager. We support `apt`, `yum`, and `pacman`. 1. Add the Warp package repository for your distribution (see the [installation instructions](https://docs.warp.dev/getting-started/quickstart-guide/installation-and-setup)). 2. Install either the stable or Preview package (replace `apt` with `yum` or `pacman` as needed): ```sh # Stable sudo apt install warp-cli # Preview (beta/early-access) sudo apt install warp-cli-preview ``` *** You can also install the CLI by downloading a package directly. These installers automatically add the Warp repository, so future updates come through your package manager: * x86-64: [`.deb`](https://app.warp.dev/download/cli?os=linux\&package=deb\&arch=x86_64), [`.rpm`](https://app.warp.dev/download/cli?os=linux\&package=rpm\&arch=x86_64), [pacman](https://app.warp.dev/download/cli?os=linux\&package=pacman\&arch=x86_64) * aarch64: [`.deb`](https://app.warp.dev/download/cli?os=linux\&package=deb\&arch=aarch64), [`.rpm`](https://app.warp.dev/download/cli?os=linux\&package=rpm\&arch=aarch64), [pacman](https://app.warp.dev/download/cli?os=linux\&package=pacman\&arch=aarch64) {% endtab %} {% endtabs %} ## Running the CLI The command to run the Warp CLI depends on your OS, whether you installed the CLI as part of Warp or as a standalone package, and whether you're using the stable build or [Warp Preview](https://docs.warp.dev/support-and-community/community/warp-preview-and-alpha-program). | OS | Installation Method | CLI Command | CLI Command (Preview) | | ------- | ------------------- | --------------- | ----------------------- | | macOS | Standalone | `warp` | `warp-preview` | | macOS | Bundled | `warp` | `warp-preview` | | Linux | Standalone | `warp-cli` | `warp-cli-preview` | | Linux | Bundled | `warp-terminal` | `warp-terminal-preview` | | Windows | Bundled | `warp` | `warp-preview` | ## Logging in The Warp CLI supports two authentication methods, depending on where and how you’re running agents. * **Interactive login —** best for local machines where you have Warp installed and can authenticate through a browser. * **API keys** — best for automated or remote environments that need to authenticate without human interaction. ### Interactive login (local machines) Use interactive login when you’re working on a machine where you already use the Warp app, or when you can open a browser to complete authentication. If you use the CLI on a host where you're already signed in to Warp, it automatically reuses your existing credentials. To authenticate interactively: ```bash warp login ``` Replace `warp` with the appropriate command name for your installation method according ot the table in [Running the CLI](#running-the-cli). The CLI prints out a URL that you can open in any browser to login to Warp. ### API key authentication Use an API key when the environment must authenticate on its own, such as CI pipelines, headless servers, VMs, Codespaces, or containers. API keys let the CLI authenticate non-interactively. #### Generating API keys You can create an API key from your settings in Warp: 1. Click your profile photo in the top-right corner, then click **Settings.** 2. In the sidebar, click **Platform**. 3. In the API Keys section, click **+ Create API Key.** 4. Name the key and choose an expiration. 5. Click **Create key**.

API key management interface in Warp settings

#### Authenticating with API keys You can authenticate with an API key in the CLI using either an environment variable or command flag. We recommend environment variables for security and easier reuse across multiple commands. **Via environment variable (recommended):** ```sh $ export WARP_API_KEY="wk-xxx..." $ warp agent run --prompt "analyze this codebase" ``` **Via command flag:** ```sh $ warp agent run --api-key "wk-xxx..." --prompt "analyze this codebase" ``` *** ## Running agents The Warp CLI offers two ways to run agents, depending on where you want the work to happen: **Use `warp agent run` when:** * You're developing locally and want immediate feedback * You need the agent to work with files in your current directory * You want to inspect and modify the agent's work in real time * You're debugging or iterating on prompts **Use `warp agent run-ambient` when:** * You want the agent to run on a remote machine or standardized environment * You're triggering agent work from CI/CD or automated systems * You need the agent to run independently of your local session * You're delegating work that doesn't require your immediate attention ### Running locally: \`warp agent run\` To start a Warp agent, use the `warp agent run` subcommand. You'll need to specify a prompt and, optionally, the [MCP servers](https://docs.warp.dev/knowledge-and-collaboration/mcp) and [agent profile](https://docs.warp.dev/agent-platform/agent/using-agents/agent-profiles-permissions) to use. ```sh warp agent run --prompt "set up a new Rust crate named warp-cli" I'll run a few terminal commands to: - Check if this is a Git repo and Cargo workspace - Create a new binary crate named warp-cli ``` **Key flags:** * `--cwd ` — run from a different directory. * `--share` — share the session with teammates (see [Collaboration](#collaboration)). * `--profile ` — use a specific agent profile (see [Using Agent Profiles](#using-agent-profiles)). The agent will automatically carry out the task you gave it, printing out tool calls and responses as it works. By default, the agent runs in your current working directory. To run from a different directory, use the `-C/--cwd` flag. ### Running agents remotely: \`warp agent run-ambient\` Ambient runs dispatch tasks to remote environments. Use ambient runs for: * Background processing * Standardized team configurations * Remote execution on servers you don't directly access ```sh warp agent run-ambient \ --environment SVhg783GBFQHk1OfdPfFU9 \ --name "Repo summary" \ --prompt "Summarize this repo and list the top 5 risky areas" \ --open ``` **Key flags** * `--environment (-e)` — select the environment to run in (this is the main knob that makes the run “ambient”). * `--open` — view the agent’s session in Warp once it’s available. * `--name ` — name the task (useful for identifying it later). * `--profile ` — select an execution profile (defaults if omitted). * `--mcp ` — start one or more MCP servers before execution (UUID, JSON file path, or inline JSON). **Key differences from `run`** * No `--cwd` — the environment determines the working directory. * No `--share` — sharing options are on `run`, not `run-ambient.` **When ambient runs fail** * Verify your environment has the correct repository and context. * Check that your profile allows the commands and MCP servers needed. * Ensure environment variables are set in the environment, not your local shell. #### Reusing saved prompts When you find prompts that work well, save them in [Warp Drive](https://docs.warp.dev/warp/knowledge-and-collaboration/warp-drive) to reuse across sessions, share with teammates, and integrate into automated workflows. For more information, see [Prompts](https://docs.warp.dev/warp/knowledge-and-collaboration/warp-drive/prompts). To reuse a prompt, first find its ID. The ID of a saved prompt will be the last part of its Warp Drive [Sharing a drive object using links](https://docs.warp.dev/warp/knowledge-and-collaboration/warp-drive#sharing-a-drive-object-using-links). For example, in the URL: ``` https://staging.warp.dev/drive/prompt/Fix-compiler-error-sgNpbUgDkmp2IImUVDc8kR ``` ... the ID is `sgNpbUgDkmp2IImUVDc8kR`. You can reference [saved prompts](https://docs.warp.dev) using the `--saved-prompt` flag: ```bash $ warp agent run --saved-prompt sgNpbUgDkmp2IImUVDc8kR ... ``` #### Referencing Warp Drive objects Use ``, ``, or `` in prompts to reference [Warp Drive objects](https://docs.warp.dev/warp/knowledge-and-collaboration/warp-drive) and [rules](https://docs.warp.dev/warp/knowledge-and-collaboration/rules) as attached context. To quickly create these references, use the [@ context menu](https://docs.warp.dev/agent-platform/agent/using-agents/agent-context/using-to-add-context) in Warp to construct a prompt, and then copy it into your CLI command. ``` $ warp agent run --prompt "Follow the instructions in " ... ``` ## Using agent profiles Agent profiles control three things: * **What the agent can do** — file access, command execution, and MCP server usage. * **How the agent works** — Model selection, autonomy level, and response style. * **Where the agent can act** — Directory allowlists/denylists. You can create and configure agent profiles in the Warp app. For detailed instructions, see [Agent Profiles & Permissions](https://docs.warp.dev/agent-platform/agent/using-agents/agent-profiles-permissions). Agent profiles are automatically synced to each host that you have Warp installed on, so you can still use them remotely. {% hint style="info" %} **Tip**: For CLI usage, create a dedicated profile. The CLI will fail if it tries to execute a prohibited action, so make sure your profile allows the directories, commands, and MCP servers that you'd like the agent to use. {% endhint %} {% hint style="warning" %} The default profile for CLI usage is broadly permissive and gives the agent the ability to read/write files, apply code diffs, and execute commands (with a default denylist). The agent does not have the ability to use MCP servers by default. {% endhint %} To use an agent profile with the CLI, first find the profile ID using the `warp agent profile list` command: ```sh $ warp agent profile list +--------------+------------------------+ | Name | ID | +=======================================+ | Default | AnTb02PZfrkVC9l4V15eH1 | |--------------+------------------------| | Coding | CWhozDJPdPCsjJ1pSG0HCN | |--------------+------------------------| | Command Line | hV6n5dNm7ThQVlOiPF8DLS | +--------------+------------------------+ ``` Then, select that profile using the `--profile` flag: ```sh $ warp agent run --profile CWhozDJPdPCsjJ1pSG0HCN --prompt "update my CI pipeline to use nextest" ... ``` ## Using MCP servers MCP servers connect Ambient Agents interact with external systems like GitHub, Linear, or Sentry. To use a [Model Context Protocol (MCP)](https://docs.warp.dev/warp/knowledge-and-collaboration/mcp) server from the CLI, you need: * An MCP server configured in Warp * An agent profile that allows for the MCP server you want to use * Environment variables for authentication (if required) There are two ways to start MCP servers with the agent: 1. If the selected agent profile allows *specific* MCP servers, they will start automatically. 2. If the selected agent profile allows *any* MCP server, you must specify the ones to start using the `--mcp-server` flag. To start specific MCP servers, first get the MCP server ID using `warp mcp list`: ```sh $ warp mcp list +--------------------------------------+--------+ | UUID | Name | +===============================================+ | 1deb1b14-b6e5-4996-ae99-233b7555d2d0 | github | |--------------------------------------+--------| | 65450c32-9eb1-4c57-8804-0861737acbc4 | linear | |--------------------------------------+--------| | d94ade64-0e73-47a6-b3ee-14e5afec3d90 | Sentry | +--------------------------------------+--------+ ``` Alternatively, you can copy the server ID from the MCP servers page in Warp: 1. Click your profile photo in the top-right corner, then click **Settings.** 2. In the sidebar, click **MCP Servers**.

MCP servers page, showing a server with its UUID

Next, use `--mcp-server` to start the server: ```sh $ warp agent run --mcp-server "1deb1b14-b6e5-4996-ae99-233b7555d2d0" --prompt "who last updated the README?" ... ``` ### Environment variables and remote execution While Warp syncs MCP server configuration between hosts, it **does not** sync environment variables. When running on remote machines, you must set any required auth tokens: ```sh export MY_MCP_SERVER_ACCESS_TOKEN="..." $ warp agent run --mcp-server "904a8936-fa82-4571-b1d6-166c26197981" --prompt "use my MCP server to check for errors" ... ``` {% hint style="info" %} Tip: consider using a password or secret manager CLI, such as [`op`](https://developer.1password.com/docs/cli/get-started/), [`pass`](https://www.passwordstore.org/), or [`gcloud secrets versions access`](https://cloud.google.com/secret-manager/docs/create-secret-quickstart#secretmanager-quickstart-gcloud) to fetch MCP secrets on remote hosts. {% endhint %} ## Collaboration In addition to text-based output, the CLI can share the agent's session for you to access on other devices or in a browser. To enable [Agent Session Sharing](https://docs.warp.dev/knowledge-and-collaboration/session-sharing/agent-session-sharing), use the `--share` flag. By default, the session is only accessible to the user running the CLI, but you can also share with [Teams](https://docs.warp.dev/knowledge-and-collaboration/teams) or other Warp users: ```sh # Share the agent's session with yourself: $ warp agent run --share --prompt "fix the compiler error" # Give specific users view-only access to a session: $ warp agent run --share firstuser@example.com --share otheruser@example.com --prompt "fix the compiler error" # Let any user on your team edit the session: $ warp agent run --share team:edit --prompt "fix the compiler error" ``` The `--share` flag can be repeated, and uses the following syntax: * `--share user@email.com` or `--share user@email.com:view`i — gives specified user read-only access to the session. * `--share user@email.com:edit` — gives specified user `user@email.com` read/write access to the session. * `--share team` or `--share team:view` — gives all members of your team read-only access to the session. * `--share team:edit` — gives all members of your team read/write access to the session. ## Troubleshooting and help The CLI includes built-in documentation for all commands: ```bash # See all available commands warp help # Get details on a specific command warp help agent run # Explore MCP-related commands warp help mcp ``` ### Common errors **Command not found / CLI not installed correctly**\ Verify your installation path and confirm the CLI version: ```bash warp --version ``` **Authentication issues** * Interactive login: ensure you’ve completed the browser-based flow with `warp login`. * API keys: confirm the key is valid, not expired, and exported correctly (`echo $WARP_API_KEY`). **Agent or MCP errors**\ Ensure your agent profile and [MCP servers](https://docs.warp.dev/agent-platform/ambient-agents/mcp-servers-for-agents) are configured properly, with correct permissions. --- # Source: https://docs.warp.dev/code/code-editor/code-editor-vim-keybindings.md # Code Editor Vim Keybindings ## About Vim keybindings The Vi family of programs (including Vim and Neovim) are modal text editors that allow for keyboard-driven text editing. Vi-style keybindings are especially popular among developers for their speed and precision in navigating and manipulating code. Warp’s [code editor](https://docs.warp.dev/code/code-editor) now includes native support for Vim keybindings (also known as Vim mode), offering a familiar editing experience directly within your coding workflows. ### How to enable Vim Keybindings Vim mode in the code editor uses the same setting toggle as the input editor. To enable: * Through the [Command Palette](https://docs.warp.dev/terminal/command-palette), search for "Vim Keybindings". * Through `Settings > Features > General`, toggle "Edit code and commands with Vim keybindings". Unlike the input editor, the Vim implementation in the code editor starts in Normal mode. ### Customizing Keybindings At the moment, Warp only supports default Vim keybindings. One exception is the keyboard shortcut for exiting insert mode, which can be rebound under `Settings > Keyboard Shortcuts > Exit Vim Insert Mode`, or through the [Command Palette](https://docs.warp.dev/terminal/command-palette) search for "Exit Vim Insert Mode". ## Supported Keybindings Below is a list of the vim functionality implemented in Warp so far. ### Movement See [Vim docs: motion](https://vimdoc.sourceforge.net/htmldoc/motion.html) for more information. #### Basic | Command(s) | Description | | ---------------------------- | --------------------------------------------------- | | `h`, `j`, `k`, `l` | single-char movement | | ``, `` | single-char movement with line wrap | | `w`, `W`, `b`, `B`, `e`, `E` | word movement | | `ge`, `gE` | end of previous word | | `$` | end of line | | `0` | beginning of line | | `^` | first non-whitespace character of line | | `%` | jump to matching bracket | | `[`, `]` | prev/next unmatched bracket | | `_` | beginning of the current line | | `+` | first non-whitespace character of the next line | | `-` | first non-whitespace character of the previous line | | `{`, `}` | prev/next paragraph | #### Multi-line-related | Command(s) | Description | | ---------- | ----------------------- | | `gg`, `G` | jump to first/last line | ### Editing | Command(s) | Description | | ---------- | ----------------------------------------------------------- | | `r` | replace character under cursor | | `d`, `D` | delete a range or object | | `c`, `C` | change a range or object (delete, then go to insert mode) | | `s`, `S` | substitute (like change, but can only delete at the cursor) | | `x`, `X` | delete under cursor | | `y`, `Y` | yank (copy) into the clipboard | | `p`, `P` | paste from the clipboard | | `u`, `⌃r` | undo, redo | | `~` | toggle upper/lowercase under cursor | | `gu` | lowercase under cursor (`u` in visual mode) | | `gU` | uppercase under cursor (`U` in visual mode) | | `J` | join current and following lines | | `.` | repeat last edit | | `gcc` | toggle comments on current line | | `gc` | toggle comments on visual selection | See [Vim docs: editing](https://vimdoc.sourceforge.net/htmldoc/editing.html) for more information. #### Text Objects | Command(s) | Description | | ---------------- | ------------------------------------------ | | `i` | inner (exclude delimiters in text object) | | `a` | around (include delimiters in text object) | | `w`, `W` | whitespace-delimited string (word) | | `"`, `'`, \`\`\` | quote-delimited string | | `(`, `{`, `[` | parenthesized/bracketed string | See [Vim docs: text objects](https://vimdoc.sourceforge.net/htmldoc/motion.html#text-objects) for more information. ### Search #### Character Search | Command(s) | Description | | ------------------ | ------------------------------------------------------ | | `t`, `T`, `f`, `F` | find next/prev matching character on line | | `;` | repeat last character search in the same direction | | `,` | repeat last character search in the opposite direction | See [Vim docs: left-right motions](https://vimdoc.sourceforge.net/htmldoc/motion.html#f) for more information. #### General Search Unlike Vim, general search commands don't search within the buffer. Instead, they open Warp's native command search. | Command(s) | Description | | ------------------ | ------------------------ | | `/`, `?`, `*`, `#` | open Warp command search | ### Mode Switching | Command(s) | Description | | ---------- | ----------------------------------------------------------------- | | `i` | insert text before the cursor | | `I` | insert text before the first non-whitespace character in the line | | `a` | append text after the cursor | | `A` | append text at the end of the line | | `o` | begin new line below the cursor and insert text | | `O` | begin new line above the cursor and insert text | | `v` | visual character mode | | `V` | visual line mode | See [Vim docs: insert](https://vimdoc.sourceforge.net/htmldoc/insert.html#insert) and [Vim docs: visual mode](https://vimdoc.sourceforge.net/htmldoc/visual.html#visual-mode) for more information. ### Registers | Command(s) | Description | | ---------- | --------------- | | `"` | register prefix | Warp currently supports the following registers: | Register name | Description | | ---------------- | ---------------------------------------------------------------- | | `a`–`z`, `A`–`Z` | named registers | | `+` | system clipboard | | `*` | system clipboard | | `"` | unnamed register, containing the text of the last delete or yank | See [Vim docs: registers](https://vimdoc.sourceforge.net/htmldoc/change.html#registers) for more information. ## Feedback The best way to report bugs and request features is through Warp's [GitHub Issues](https://github.com/warpdotdev/Warp/issues) page. Please note that the issue or request is for Vim Keybindings. --- # Source: https://docs.warp.dev/code/code-editor.md # Code Editor ## Built-in Code Editor Warp comes with a native code editor designed for quick, in-flow edits alongside your Agent conversations. Instead of switching back and forth to an IDE, you can open and edit files directly in Warp — with essentials like syntax highlighting, a tabbed file viewer, find and replace, Vim keybindings, and a file tree for browsing and adding files as context. The editor is built for fast changes to agent-generated code: renaming a variable, tweaking copy, or rewriting a short function. Having just enough editing power in-context makes it easier to land an agent’s changes and keep momentum. ### Opening Files in Warp **You can open files in the editor in several ways:** 1. **Click a file path** from the terminal output or an AI conversation and select "Open in Warp." 2. **Use the file menu in the command palette** (`CMD + O` on macOS, `CTRL + SHIFT + O` on Windows or Linux) when in a Git-tracked repo to search for and open files inside that repo. 1. You can also access this via the magnifying glass icon in the pane coding toolbelt at the top left of any pane.
3. **Browse via the** [File Tree (Project Explorer)](https://docs.warp.dev/code/code-editor/file-tree) to open or create files. 4. **Opening a generated code diff** from an Agent Conversation: [Code Diffs in Agent Conversations](https://docs.warp.dev/code/reviewing-code). {% embed url="" %} **To save your changes to files**: use `CMD + S` on macOS or `CTRL + S` on Windows or Linux. ### Tabbed File Viewer Warp can group multiple files into a single tabbed viewer, reducing clutter and making it easier to work across multiple files.
* Enabled by default for new users (can be toggled in `Settings > Features > General > Group files into a single editor pane`) * Reorder, close, or drag file viewers between tabs. * Merge entire panes together by dragging one into another. **Here's a more in-depth demo:** {% embed url="" %} ### **File Layout Options** Choose how new files open in Warp by default in: `Settings > Features > General > Choose a layout to open files in Warp` * **Split pane**: new files open alongside the current editor * **New tab**: new files open in their own tabbed viewer ### Supported Languages The editor supports syntax highlighting and editing for a wide range of languages, including: Rust, Go, YAML, Python, JavaScript/TypeScript, JSX/TSX, Java/Groovy, C++, Shell/Bash, C#, HTML, CSS, C, JSON, HCL/Terraform, Lua, Ruby, PHP, TOML, Swift, Kotlin, Starlark, SQL, Powershell, and Elixir. We’re continuously expanding language support. ### Other Editor Features Warp's native code editor also supports the following features: * [File Tree (Project Explorer)](https://docs.warp.dev/code/code-editor/file-tree) — Browse, open, and manage your project with Warp’s native file tree. * [Find and Replace](https://docs.warp.dev/code/code-editor/find-and-replace) — Use Warp’s built-in find and replace to quickly search across a file, jump between matches, and make precise edits with options for regex, case sensitivity, and smart case preservation. * [Code Editor Vim Keybindings](https://docs.warp.dev/code/code-editor/code-editor-vim-keybindings) - Use Vim keybindings to edit code and text in Warp's native code editor. --- # Source: https://docs.warp.dev/code/code-overview.md # Code Overview ## From Prompt to Production Warp Code is a suite of features designed to help you take agent-generated code from the initial prompt and project setup all the way to deployment and production. It is powered by Warp’s dedicated coding agent, which consistently ranks among the top results on [SWE-bench Verified](https://www.swebench.com/#verified) and [Terminal-Bench](https://www.tbench.ai/leaderboard). In addition to Warp’s modern, [native code editor](https://docs.warp.dev/code/code-editor), it includes: * [Codebase Context](https://docs.warp.dev/code/codebase-context) for accurate, context-aware agent responses * [Project Rules](https://docs.warp.dev/knowledge-and-collaboration/rules) and Commands to tailor agent behavior per repository * A dedicated [Code Review](https://docs.warp.dev/code/code-review) experience for reviewing and editing diffs * [Zero-state and setup flows](#getting-started-with-coding-in-warp) to quickly start a new project or initialize an existing one ### Coding Agent Warp’s coding agent is designed to help you generate, edit, and manage code directly in the [Agentic Development Environment](https://www.warp.dev/blog/reimagining-coding-agentic-development-environment). It detects opportunities to apply code diffs and surfaces them inline, allowing you to review and apply changes without switching to an external IDE. When you need to make manual edits, you can open Warp’s native code editor. ### How It Works * **Prompt-driven coding**: You write natural language prompts such as *“Add a retry mechanism to this API call”* or *“Fix the failing unit test in auth.test.ts.”* * **Inline code diffs**: When the agent proposes changes, it shows them as diffs you can inspect, modify, or reject. * **Agent steering**: You can refine prompts, interrupt and retry, or attach context (such as a file, diff, or selection) to guide the agent toward better results. {% embed url="" %} {% hint style="info" %} Warp's coding agent only works on local repositories. The agent can make changes on remote or docker repositories, but fallback to using terminal commands (i.e. `sed`, `grep` ) to make the changes. {% endhint %} ### Examples of Coding Capabilities Code responds to prompts related to code generation, editing, and analysis. Here are some examples: * **Code creation** * “Write a function in JavaScript to debounce an input” * “Generate a Python class for managing user sessions with Redis.” * **Error-driven fixes** * “Fix the TypeScript error shown in the last build output.” * “Resolve this merge conflict by keeping backend changes and updating tests accordingly.” * **Refactoring** * “Update all instances of var to let in this file.” * “Extract the database logic from app.js into a new db.js module and update imports.” * **Multi-file and repo-wide changes** * “Add headers to all .py files in this directory.” * “Replace requests with httpx across the codebase, updating imports and error handling.” * **Complex workflows** (examples shown below — in practice, prompts should include more detail for best results) * “Implement OAuth2 authentication, update affected routes, and add tests.” * “Identify functions without test coverage and create Jest test files for them.” * “Optimize slow SQL queries in queries.sql and regenerate migrations.” {% embed url="" %} How to kick off a coding task {% endembed %} {% embed url="" %} How to interpret & edit Warp’s coding output {% endembed %} ## Getting Started With Coding in Warp Warp provides multiple entry points to begin coding with agents, whether you are starting a new project, opening an existing one, or cloning from GitHub. Each new tab shows a **zero state** that lets you choose how to proceed.

Zero-state tab with 3 starting points for agentic coding in Warp.

#### 1. Starting a New Project To begin a new project, select `Create a New Project` from the tab. You can start directly with a prompt (Warp will suggest ideas) or configure the project manually. Warp sets up the repository with an `AGENTS.md` file (filename must be in all caps) containing [project rules](https://docs.warp.dev/knowledge-and-collaboration/rules#project-rules) and enables [codebase indexing](https://docs.warp.dev/code/codebase-context) to provide the agent with full context. #### 2. Open an Existing Repo Select `Open Repository` to use your computer's file picker. If you choose a Git repository, Warp automatically changes into the directory and runs the `/init` setup command (a built-in "[slash command](https://docs.warp.dev/agent-platform/agent/slash-commands)") if the repo has not already been initialized. Warp will detect the repository, index the codebase, and prepare it for coding. * For non-Git folders, Warp simply changes into the directory without initialization. * If you have an existing project that is not yet initialized, you can run `/init` manually to bootstrap it with a version-controlled `AGENTS.md` file. * This view also shows a list of your three most recently used repositories and AI conversations for quick access, as well as a list of recent directories (which behave like running `cd`). #### 3. Clone a Repo Select `Clone Repository` to paste in a repo link or clone directly from GitHub. Warp places you in the cloned folder and automatically runs the `/init` flow to set up project rules and indexing. ## Learn More About Code Features: * [Code Editor](https://docs.warp.dev/code/code-editor) - Warp’s built-in code editor lets you make quick, in-context edits with essentials like syntax highlighting, tabs, find and replace, Vim keybindings, and a file tree. * [Codebase Context](https://docs.warp.dev/code/codebase-context) - Warp indexes your Git-tracked codebase to help Agents understand your code and generate accurate, context-aware responses. No code is stored on Warp servers. * [Code Review](https://docs.warp.dev/code/code-review) - review, edit, and manage Git diffs in real time, with options to attach, revert, or open files directly. * You can also enter [Interactive Code Review](https://docs.warp.dev/code/code-review/interactive-code-review) to comment on changes, guide the agent, or adjust individual edits as they happen. * [Code Diffs in Agent Conversations](https://docs.warp.dev/code/reviewing-code) - Learn how to review, refine, and apply code changes generated by Warp’s agents using the built-in visual diff editor. --- # Source: https://docs.warp.dev/code/code-review.md # Code Review ## Overview When you are working locally in a Git repository with uncommitted changes, the **Code Review panel** lets you inspect, edit, and manage code changes directly inside Warp. It integrates with Git and Warp's Agents, giving you the ability to: * Review diffs and attach them as context for the Agent * Apply, edit, or revert changes in real time * See changes made outside of Warp or by Warp's Agents automatically reflected Any uncommitted changes appear in the panel (or compare the changes on your branch against `main` or `master` ). Switching branches or saving files updates the panel instantly, so it always reflects the current state of your codebase. {% embed url="" %} Code Review Demo {% endembed %}

Full view of Code Review panel and terminal pane.

{% hint style="info" %} To review agent-generated diffs, leave inline comments, batch your feedback, and have the agent apply all requested changes, see [Interactive Code Review](https://docs.warp.dev/code/code-review/interactive-code-review). {% endhint %} ## Opening the Code Review panel The Code Review panel can be opened in several ways. Each entry point makes it easy to inspect and manage changes without leaving your workflow. {% hint style="success" %} You can also open the Code Review panel with `CMD – SHIFT – +` on macOS or `CTRL – SHIFT – +` on Windows and Linux. {% endhint %} #### 1. Universal Input: Git diff chip In the [Universal Input](https://docs.warp.dev/terminal/universal-input) editor, when you're in a Git repository with changes, the chip shows the number of files modified along with lines added and removed. Clicking the chip opens the Code Review panel with the relevant diffs.
#### 2. Agent Conversation: Review Changes Button When an Agent makes code edits in an [Agent Conversation](https://docs.warp.dev/agent-platform/agent/using-agents/agent-conversations), a `Review changes` button appears at the bottom of the conversation. Clicking it opens the code review panel.

Review changes at bottom of Agent Conversation.

#### 3. Agent Conversation: Toolbelt (Bottom Right) During an Agent conversation, you can view all changed files in the toolbelt chips at the persistent bottom right. From there, you can open the Code Review panel directly.
#### 4. Warp Tab Bar In any Git-tracked repository, you can open the Code Review panel by clicking the plus/minus icon in the top-right corner of Warp, next to your avatar.
#### Viewing All Edited Files Inside the Code Review panel, you can open the file sidebar to browse all changed files in your repository. Clicking on a file will automatically scroll to that file in the panel.

Viewing all edited files in the code review panel, with the file sidebar open.

{% hint style="info" %} By default, the Code Review panel opens as a pane on the right, but you can drag it to reposition wherever you prefer. {% endhint %} ## Reviewing diffs By default, the Code Review panel shows all **uncommitted changes** on your current branch, excluding changes to files ignored by `.gitignore`. Warp offers two ways to review changes: 1. **Uncommitted changes**: view all edits you've made locally on the current branch. 2. **Changes vs. main**: compare your branch against `main` or `master` to see what would be included in a pull request to that branch, for instance. 1. Warp automatically detects the target branch and updates the comparison accordingly. 3. **Changes vs. another branch**: compare your work against any arbitrary branch for stacked PRs, feature comparisons, or alternate base branches. You can manually switch between the two views either in the Code Review panel or via the universal input chip:

Changing diff view in the Code Review Panel.

Changing diff view in the Universal input.

Changing diff view against an arbitrary branch.

Any saved edits made outside of Warp (e.g. in another editor), as well as changes applied by Warp's Agents, appear automatically. The panel updates in real time, ensuring it always reflects the current state of your working file and directory. #### Attaching diffs as context The Code Review pane makes it simple to share changes with the Agent. You can attach an entire diff to a prompt so the Agent has full visibility into what was added or removed.

Attaching a diff as context from the Code Review panel.

This ensures responses are grounded in your latest edits, whether you're asking for feedback, explanations, or follow-up changes. For more details, see [Selection as Context](https://docs.warp.dev/agent-platform/agent/using-agents/agent-context/selection-as-context). #### Reverting diffs The Code Review panel lets you easily undo changes at different levels. In the gutter next to each diff, you’ll see an option to revert a hunk: roll back a specific set of changes (a “diff hunk”) within a file. This removes the added or modified lines and restores the previous version.
When you revert, the changes are immediately updated in your working directory. The file is restored to match the selected version, so you can continue editing or commit without the reverted code. ### Opening Files from Code Review In addition to reviewing and editing diffs directly in the Code Review pane, you can open a file directly in Warp's [Code Editor](https://docs.warp.dev/code/code-editor). Each file listed in the Code Review pane includes an expand button in the top-right corner of its diff view.
* Clicking the **expand button** (right-most button on the header) opens the file in a new editor tab, allowing you to see the full file beyond just the changed lines. * This is useful when you need additional context around a diff, want to make broader edits, or prefer working in the full editor rather than inline. * Once opened, the file behaves like any other editor tab: you can scroll, edit, search, and save. * Any changes made in the editor automatically sync back into the Code Review pane, so the diff view always stays current. **Note**: from this code review file header, you can also attach a file diff as context into Warp's agent, or discard all the changes on a single file. #### Directly editing code diffs Alternatively, from the Code Review panel, you are able to click and edit the diffs directly:
#### Discarding all changes The Code Review panel also lets you discard every uncommitted change on your branch in one action. Clicking Discard all removes all local modifications shown in the panel and restores each file to its state on the base branch. This is useful when you want to reset your working directory, abandon a set of edits, or start a new iteration from a clean slate.
Discarding changes will ask you confirm, but still make sure you’ve saved or backed up anything you want to keep before using it. --- # Source: https://docs.warp.dev/code/codebase-context.md # Codebase Context Codebase Context helps Warp Agents understand your project by indexing your local codebase. This allows Agents to generate more accurate completions, suggest context-aware edits, and answer questions using real knowledge of your code. {% hint style="info" %} Code indexed with Codebase Context is never stored on our servers. Warp's coding agent only works on local repositories. The agent can make changes on remote or docker repositories, but fallback to using terminal commands (i.e. `sed`, `grep` ) to make the changes. {% endhint %} {% hint style="danger" %} **Codebase context doesn't work within SSH or WSL sessions.**\ \ Feature requests for support are being tracked in the following Github issues:\ \- SSH: \ \- WSL: {% endhint %}

Codebase indexing settings in Warp. Easily track sync status and manage which folders are indexed for AI-powered context and suggestions.

## Indexing your codebase When you open a directory in Warp, we check if it is part of a Git repository. If it is, Warp begins indexing the source code to provide rich context for Warp Agents. **Codebase indexing intervals and triggers:** * Initially when you have Codebase Context enabled. * Warp automatically triggers a codebase index periodically. * Whenever a new Agent conversation begins. * When you click on the sync 🔄 button in `Settings > Code` menu. **This embeddings index helps Agents:** * Understand your project structure and reference relevant code * Generate completions that match your style and patterns * Suggest edits in the correct locations based on real context For large projects, indexing may take a few minutes. Warp Agents will not use codebase context until indexing is complete, but **agentic coding features remain fully available in the meantime**. {% hint style="info" %} You can view and manage your indexed codebases under `Settings > Code > Codebase Index`. You can also choose whether to automatically index new folders as you navigate them. {% endhint %} {% embed url="" %} ### **Codebase indexing states** When viewing indexed codebases in Warp under `Settings > Code`, you may see different status indicators: * **Synced** — Indexing is complete and the codebase is ready to be used as context. * **Discovering files** – Warp is currently scanning and indexing files in the codebase. * **Failed** – Indexing failed. Common reasons include unreadable `.git` directories or corrupted repositories. Try re-cloning the repo and syncing again. * **Codebase too large** – The number of files in the codebase exceeds your current plan’s limit. You can either reduce the number of files being indexed using `.warpindexingignore`, or [contact sales](https://warp.dev/contact-sales) for support with larger codebases.

View and manage the indexing status of your codebases in Warp. Easily see which projects are synced, in progress, or require attention.

### When does codebase syncing happen? Warp automatically triggers a codebase sync initially and periodically, when you click on the sync 🔄 button in `Settings > Code` menu, or when you start a new Agent conversation. However, if many files have changed or the network is slow, the sync may not complete before the Agent tries to access context. {% hint style="info" %} In large projects (e.g. after a branch switch), there may be a short delay where the Agent references stale or outdated files. {% endhint %} ### File and Codebase Limits The number of codebases you can index and the maximum number of files per codebase vary by plan. All plans support indexing **at least 5,000 files per codebase**, with higher tiers including support for more files and additional codebases. For full details, visit our [pricing page](https://www.warp.dev/pricing). ### Ignore files For large codebases, Warp supports several ignore files to give you control over what gets indexed. This allows each developer to focus context on the parts of the codebase most relevant to their work. Warp respects the following ignore files: * `.gitignore` * `.warpindexingignore` * `.cursorignore` * `.cursorindexingignore` * `.codeiumignore` Use these files to skip indexing of folders, generated files, or any content you don't want agents to reference. This can improve performance and result quality. {% hint style="info" %} Files excluded by ignore rules **do not** count toward your codebase's file limit. {% endhint %} ## Multi-repo context Warp supports referencing context across multiple indexed repositories. Note that you don’t need to be inside a specific repo for agents to use its context. **This is especially useful when:** * Implementing a feature across multiple repos, such as full-stack work across client and server * Using one repo as a reference while building in another, for example: “copy the implementation from repo A into my repo B” Agents will only reference other repositories if they are already indexed. During cross-repo tasks, Warp's Agents have access to the file paths of all indexed repos. It is more likely to use cross-repo context when you mention the exact name of the repo in your prompt. ## Demo: Explain My Codebase with Warp Here's an example from [Warp University](https://www.warp.dev/university), where Zach demonstrates how Warp uses Codebase Context to search for and use the relevant files as context: {% embed url="" %} --- # Source: https://docs.warp.dev/getting-started/readme/coding-in-warp.md # Coding in Warp When you enter a git repo for the first time, Warp will enter an initialization flow to index your codebase and generate an AGENTS.md file. As you're in the repo, Warp will enter an advanced code generation flow that supports both single-line and multi-file changes when it detects an opportunity to write code. For example, Warp may write code when you prompt: * **Code creation**: “Write a function in JavaScript to debounce an input” * **Based on error outputs, suggest fixes**: “Fix this TypeScript error.” * **Edit a single file**: “Update all instances of ‘var’ to ‘let’ in this file.” * **Make batch changes**: “Add headers to all .py files in this directory” **The best way to experience this is to try it yourself —** [*open the Prompt below in Warp*](https://app.warp.dev/drive/prompt/Generate-a-custom-Warp-theme-K8oloLrCZAHuaYKfz2cNqI) {% code overflow="wrap" %} ```markup Detect the correct Warp themes directory based on the current operating system: - On macOS, use ~/.warp/themes/ - On Linux, use ${XDG_DATA_HOME:-$HOME/.local/share}/warp-terminal/themes/ - On Windows, use $env:APPDATA\warp\Warp\data\themes\ Create the directory if it doesn’t already exist. Then, generate a custom Warp theme named {{theme_name}} in valid YAML format, following the official structure from Warp’s documentation. Exclude the background_image field, and do not include any extra or missing fields. Save the theme as {{theme_name}}.yaml in the detected themes directory. Once the theme is created and verified, confirm completion by telling me where the theme file was saved. ``` {% endcode %} *** ### Context #### Codebase Context Warp can index your Git-tracked codebases to help agents understand your code and generate accurate, context-aware responses. **No code is stored on Warp servers**. You can view and manage your indexed codebases under `Settings > Code > Codebase Index` and you can also specify whether to automatically index new folders as you navigate them. If your codebase is large, you can exclude specific files by adding them to a `.warpindexingignore` file. #### Other types of context You can provide different types of input as context directly to the agent to guide its behavior and improve response quality. This includes: * [Blocks](https://docs.warp.dev/agent-platform/agent/using-agents/agent-context#attaching-blocks-as-context) from your terminal output * [Images](https://docs.warp.dev/agent-platform/agent/using-agents/agent-context#attaching-images-as-context) * [Files and code](https://docs.warp.dev/agent-platform/agent/using-agents/agent-context#referencing-files-and-code-using) (using the @ symbol) * [Public websites](https://docs.warp.dev/agent-platform/agent/using-agents/agent-context#referencing-websites-via-urls) via URLs #### Warp Drive as Context Agents pull directly from your [**Warp Drive**](https://docs.warp.dev/knowledge-and-collaboration/warp-drive) contents to generate more accurate responses -- including your **Workflows**, **Notebooks**, **Prompts**, and **Environment Variables**. * When used, context appears under the “References” or “Derived from” section in the conversation. * This setting is **enabled by default** and can be managed via: `Settings > AI > Knowledge > Warp Drive as Agent Mode Context`. #### Rules **Rules** let you provide persistent context to Agents, enabling smarter and more personalized responses. You can create global rules (accessed through [Warp Drive](https://docs.warp.dev/knowledge-and-collaboration/warp-drive) > Personal > Rules) or project scoped rules, defined in an `AGENTS.md` file. Note: the filename must be in all caps for Warp to recognize it. **Examples of Rules include:** * Coding standards and best practices * Project- or workspace-specific guidelines * Personal preferences for tools, formatting, or behavior How to access project-specific Rules 1. From the file-searcher, CMD+O and search "AGENTS.md" 2. From the file tree, click the "code" icon when in a repo How to access Global Rules 1. From the [Warp Drive](https://docs.warp.dev/knowledge-and-collaboration/warp-drive) > Personal > Rules 2. From the [Command Palette](https://docs.warp.dev/terminal/command-palette), search for "Open AI Rules" 3. From the Settings panel, `Settings > AI > Knowledge > Manage Rules` 4. From the macOS Menu, `AI > Open Rules` --- # Source: https://docs.warp.dev/terminal/command-completions.md # Command Completions 1. [Completions](https://docs.warp.dev/terminal/command-completions/completions) will suggest commands, option names, and path parameters for you. 2. [Autosuggestions](https://docs.warp.dev/terminal/command-completions/autosuggestions) will automatically suggest commands as you type based on shell history and possible completions. ## Completions {% embed url="" %} Completions Demo {% endembed %} ## Autosuggestions {% embed url="" %} Autosuggestion Demo {% endembed %} --- # Source: https://docs.warp.dev/terminal/entry/command-corrections.md # Command Corrections ## What is it This feature was built on top of the open-source project [nvdn/thefuck](https://github.com/nvbn/thefuck). Here are some examples that the Warp team usually finds Command Corrections useful for: * Misspelled commands * `gti checkout myBranchName` -> `git checkout myBranchName` * `cd ap/sorce/executtor` -> `cd app/source/executor` * Missing flags * `git push` -> `git push –set-upstream myBranchName` * Add permissions * `./script` -> `chmod +x ./script && ./script` ## How to access it * Command Corrections is enabled by default. You can disable Command Corrections by going to `Settings > Features` > toggle “Suggest corrected commands”. * After an incorrect command is run, a panel with the corrected command suggestion appears above the Input Editor. `CLICK` or press the `RIGHT` arrow to insert the suggestion. ## How it works {% embed url="" %} Command Corrections Demo {% endembed %} #### Command Correction Rules: | Command | | ------------------------------------------------------------- | | brew | | cargo | | cat | | cd | | chmod | | conda | | cp | | docker | | generic (command agnostic, e.g. mis-spelling executable name) | | git | | go | | grep | | java | | ls | | mkdir | | npm | | pip | | python | | sed | | sudo | | yarn | --- # Source: https://docs.warp.dev/terminal/entry/command-history.md # Command History ## What is it While running, Warp isolates the history of each shell session e.g. if you have two Split Panes open, commands created in one pane do not populate the history of the other. Warp combines the history upon closing. Command History also provides rich information like exit code, directory, thread, time to finish running, last run, etc.

Command History rich information

## How to access it * Hitting `UP` in the [Input Editor](https://github.com/warpdotdev/docs/blob/main/features/entry/editor/README.md) brings up your history and performs a prefix search based on input. * Pressing `CTRL-R` opens the [Command Search](https://docs.warp.dev/terminal/entry/command-search) panel and initiates a search of your Command History. To navigate the Command Search panel: * Start typing and Warp will automatically filter using fuzzy search. Warp bolds matching text when filtering with fuzzy search. ## How it works {% embed url="" %} Command History Demo {% endembed %} --- # Source: https://docs.warp.dev/terminal/editor/command-inspector.md # Command Inspector ## How to access it {% tabs %} {% tab title="macOS" %} Hover over the part of the command you want to inspect with your mouse or press `CMD-SHIFT-I` to inspect the cursor's current location. {% endtab %} {% tab title="Windows" %} Hover over the part of the command you want to inspect with your mouse or press `CTRL-SHIFT-I` to inspect the cursor's current location. {% endtab %} {% tab title="Linux" %} Hover over the part of the command you want to inspect with your mouse or press `CTRL-SHIFT-I` to inspect the cursor's current location. {% endtab %} {% endtabs %} ## How it works {% embed url="" %} Command Inspector Demo {% endembed %} --- # Source: https://docs.warp.dev/terminal/command-palette.md # Command Palette

Command Palette Panel

## How to access it {% tabs %} {% tab title="macOS" %} You can access the Command Palette with the keyboard shortcut `CMD-P`. {% endtab %} {% tab title="Windows" %} You can access the Command Palette with the keyboard shortcut `CTRL-SHIFT-P`. {% endtab %} {% tab title="Linux" %} You can access the Command Palette with the keyboard shortcut `CTRL-SHIFT-P`. {% endtab %} {% endtabs %} ## How it works * Start typing to search for workflows, notebooks, keyboard shortcuts, actions, toggles, etc. * Activate a specific filter, by clicking on the filter buttons or prepending your search with the following: * `workflows:` or `w:` will filter for [Workflows](https://docs.warp.dev/knowledge-and-collaboration/warp-drive/workflows). * `prompts:` or `p:` will filter for [Prompts](https://docs.warp.dev/knowledge-and-collaboration/warp-drive/prompts). * `notebook:` or `n:` will filter for [Notebooks](https://docs.warp.dev/knowledge-and-collaboration/warp-drive/notebooks). * `env_vars:` will filter for [Environment Variables](https://docs.warp.dev/knowledge-and-collaboration/warp-drive/environment-variables). * `files:` will filter for local files. * `drive:` will filter for [Warp Drive](https://docs.warp.dev/knowledge-and-collaboration/warp-drive). * `actions:` will filter for Warp-specific actions like settings and features. * `sessions:` will filter for active sessions with [Session Navigation](https://docs.warp.dev/terminal/sessions/session-navigation). * `launch_configs:` will filter for [Launch Configurations](https://docs.warp.dev/terminal/sessions/launch-configurations). {% embed url="" %} Command Palette Demo {% endembed %} --- # Source: https://docs.warp.dev/terminal/entry/command-search.md # Command Search ![Command Search Panel](https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-0416002216ee3a4edba97329e81a7361cea64e2f%2Fcommand-search-panel.png?alt=media) {% hint style="info" %} Tailor your Command Search experience by toggling off "Show Global Workflows" in `Settings > Features`. When disabled, your search will exclusively encompass YAML and Warp Drive Workflows. {% endhint %} ## Quick Start 1. Press `CTRL-R` to open the Command Search Panel 2. Type your search query in the input box 3. Press `ENTER` to input the selected command into Warp's Input Editor ## Search Filters You can filter your search results by prepending your search term with any of the following:
FilterShortcuts
Command Historyhistory:, h:, or H-TAB
Promptsprompts:, p:, or P-TAB
Agent Mode Historyai_history:, a:, or A-TAB
Workflowsworkflows:, w:, or W-TAB
Notebooksnotebooks:, n:, or N-TAB
Environment Variablesenv_vars:, e:, or E-TAB
Generate#:
{% hint style="info" %} When a filter is activated, it will be bolded and italicized in the search panel. {% endhint %} ## Additional Features * You can expand the menu horizontally by dragging the right edge * The panel supports fuzzy search and ranks results by relevance ## How it works {% embed url="" %} Command Search Demo {% endembed %} --- # Source: https://docs.warp.dev/terminal/comparisons.md # Comparisons - [Performance](/terminal/comparisons/performance.md): This is a short comparison of different terminals and their performance. - [Terminal features](/terminal/comparisons/terminal-features.md): Below you'll find a table showcasing different terminal features (such as text attribution) and information about which one of those are supported in Warp. --- # Source: https://docs.warp.dev/terminal/command-completions/completions.md # Completions ## What is it Completions feature fuzzy search capability that provides you with [approximate matches](https://en.wikipedia.org/wiki/Approximate_string_matching) for your queries. If you're unsure about the exact syntax or spelling, you'll be provided with suggestions based on your input, even if it's not an exact match. ## How to access it * Type out the beginning of your command, then press `TAB`. * To search for options and flags, you must type and press `TAB`. * Forgo `TAB` by enabling "Open completions menu as you type" in `Settings > Features` ## How to use it ### Completions 1. Type `git checkout` (note the space) and then press `TAB` 2. A menu will show all of your local branches. You can select one using your mouse or the `UP ↑`/`DOWN ↓` arrow keys ### Completions on Aliases * Shell aliases - This is an alias for an entire command. For example, if you have `gc=git checkout` in alias, typing `gc` and hitting `TAB` should give you the same completion options as for `git checkout` . * Command aliases - This is an alias for a subcommand. For example, this could be setting `git status` to `git st`. With completions support, we could now suggest completions for `git status` even if you typed in `git st`. {% hint style="info" %} **Terminal Tip**\ The "Tab key behavior" setting under `Features > Editor` can change the action that `Tab` is bound to. If `Tab` is not bound to open the completions menu, `ctrl-space` will be assigned as the default keybinding. *Note: You can also enable the "Open completions menu as you type" in `Settings > Features` so that the completions menu opens automatically.* {% endhint %} ## How it works {% embed url="" %} Completions Demo {% endembed %} ### Supported Completion Specs | Command Name | Level of Support | | ----------------------- | ---------------- | | act | Partial | | adb | Partial | | afplay | Partial | | aftman | Partial | | ag | Partial | | agrippa | Partial | | amplify | Partial | | ansible | Partial | | ansible-config | Partial | | ansible-doc | Partial | | ansible-galaxy | Partial | | ansible-lint | Partial | | ansible-playbook | Partial | | appwrite | Partial | | arch | Partial | | asdf | Partial | | assimp | Partial | | atlas | Partial | | autojump | Partial | | aws | Partial | | babel | Partial | | banner | Partial | | base32 | Partial | | base64 | Partial | | basename | Partial | | basenc | Partial | | bat | Partial | | bazel | Partial | | bc | Partial | | black | Partial | | blitz | Partial | | bosh | Full | | brew | Full | | build-storybook | Partial | | bun | Partial | | bundle | Partial | | bw | Partial | | caffeinate | Partial | | cargo | Full | | cat | Partial | | cd | Partial | | cdk | Partial | | checkov | Partial | | chmod | Partial | | chown | Partial | | circleci | Partial | | clang | Partial | | clear | Partial | | clojure | Partial | | cloudflared | Partial | | cmake | Partial | | code | Partial | | code-insiders | Partial | | command | Partial | | composer | Partial | | conda | Full | | copilot | Partial | | cordova | Partial | | cosign | Partial | | cot | Partial | | cp | Partial | | create-completion-spec | Partial | | create-next-app | Partial | | create-nx-workspace | Partial | | create-react-app | Partial | | create-react-native-app | Partial | | create-remix | Partial | | create-t3-app | Partial | | create-video | Partial | | create-web3-frontend | Partial | | croc | Partial | | curl | Partial | | cut | Partial | | dart | Partial | | date | Partial | | dateseq | Partial | | datree | Partial | | dbt | Partial | | dd | Partial | | defaults | Full | | degit | Partial | | deno | Partial | | deployctl | Partial | | deta | Partial | | df | Partial | | diff | Partial | | dig | Partial | | direnv | Partial | | dirname | Partial | | django-admin | Partial | | do | Partial | | docker | Full | | docker-compose | Partial | | doctl | Partial | | dog | Partial | | doppler | Partial | | dotenv | Partial | | dotnet | Partial | | dotslash | Partial | | drush | Partial | | dtm | Partial | | du | Partial | | eb | Partial | | echo | Partial | | electron | Partial | | eleventy | Partial | | elif | Partial | | elixir | Partial | | elm | Partial | | elm-review | Partial | | else | Partial | | emacs | Partial | | esbuild | Partial | | eslint | Partial | | exa | Partial | | exec | Partial | | exercism | Partial | | expo | Partial | | expo-cli | Partial | | export | Partial | | fastlane | Partial | | fastly | Partial | | fd | Partial | | ffmpeg | Partial | | fig-teams | Partial | | file | Partial | | find | Partial | | firebase | Full | | fisher | Partial | | flutter | Full | | fly | Partial | | flyctl | Partial | | fmt | Partial | | fnm | Partial | | fold | Partial | | for | Partial | | forge | Partial | | fvm | Partial | | fzf | Partial | | fzf-tmux | Partial | | ganache-cli | Partial | | gatsby | Partial | | gcc | Partial | | gcloud | Partial | | gh | Full | | git | Full | | git-flow | Partial | | github | Partial | | gltfjsx | Partial | | go | Full | | goctl | Partial | | googler | Partial | | goreleaser | Partial | | gpg | Partial | | gradle | Partial | | graphcdn | Partial | | grep | Partial | | grex | Partial | | hardhat | Partial | | hasura | Partial | | hb-service | Partial | | head | Partial | | helm | Partial | | heroku | Full | | hexo | Partial | | hostname | Partial | | htop | Partial | | http | Partial | | https | Partial | | httpy | Partial | | hub | Partial | | hugo | Partial | | hx | Partial | | hyper | Partial | | id | Partial | | iex | Partial | | if | Partial | | ignite-cli | Partial | | install | Partial | | ionic | Partial | | j | Partial | | java | Partial | | jest | Partial | | join | Partial | | jq | Partial | | julia | Partial | | jupyter | Partial | | just | Partial | | keytool | Partial | | kill | Partial | | killall | Full | | kitty | Partial | | knex | Partial | | kool | Partial | | kubecolor | Partial | | kubectl | Full | | kubectx | Full | | kubens | Full | | laravel | Partial | | lerna | Partial | | less | Partial | | lima | Partial | | limactl | Partial | | ln | Partial | | lp | Partial | | lpass | Partial | | ls | Partial | | lsd | Partial | | mackup | Partial | | make | Full | | man | Full | | mas | Partial | | mask | Partial | | mdfind | Partial | | meteor | Partial | | micro | Partial | | mikro-orm | Partial | | minikube | Partial | | mix | Partial | | mkdir | Partial | | mkfifo | Partial | | mknod | Partial | | mob | Partial | | molecule | Partial | | mongocli | Partial | | mongosh | Partial | | more | Partial | | mosh | Partial | | mv | Partial | | mvn | Partial | | mysql | Partial | | n | Partial | | nano | Partial | | nativescript | Partial | | nc | Partial | | nest | Partial | | netlify | Partial | | networkQuality | Partial | | newman | Partial | | next | Partial | | ng | Full | | nginx | Partial | | ngrok | Partial | | nhost | Partial | | ni | Partial | | nl | Partial | | nocorrect | Partial | | node | Full | | noglob | Partial | | npm | Full | | npx | Partial | | nr | Partial | | nrm | Partial | | ns | Partial | | nu | Partial | | nuxi | Partial | | nuxt | Partial | | nvim | Partial | | nvm | Partial | | nx | Full | | nylas | Partial | | od | Partial | | oh-my-posh | Partial | | okta | Partial | | okteto | Partial | | omz | Partial | | onboardbase | Partial | | op | Partial | | opa | Partial | | open | Partial | | osascript | Partial | | pageres | Partial | | pandoc | Partial | | pass | Partial | | paste | Partial | | pathchk | Partial | | pdfunite | Partial | | pgcli | Partial | | php | Partial | | phpunit-watcher | Full | | ping | Partial | | pip | Full | | pip3 | Partial | | pipenv | Partial | | pm2 | Partial | | pmset | Partial | | pnpm | Partial | | pnpx | Partial | | pod | Partial | | poetry | Partial | | pre-commit | Partial | | preset | Partial | | prettier | Partial | | prisma | Partial | | projj | Partial | | ps | Partial | | pscale | Partial | | psql | Partial | | publish | Partial | | pulumi | Partial | | pushd | Partial | | pwd | Partial | | pyenv | Full | | python | Partial | | python3 | Partial | | qodana | Partial | | quickmail | Partial | | r | Partial | | rails | Partial | | railway | Partial | | rake | Partial | | rancher | Partial | | rbenv | Partial | | rclone | Partial | | react-native | Full | | readlink | Partial | | redwood | Partial | | remix | Partial | | remotion | Partial | | repeat | Partial | | rg | Partial | | rm | Partial | | rmdir | Partial | | robot | Partial | | rollup | Partial | | rscript | Partial | | rsync | Partial | | ruby | Partial | | rush | Partial | | rushx | Partial | | rustc | Partial | | rustup | Partial | | sam | Partial | | scc | Partial | | scp | Partial | | screen | Partial | | sed | Partial | | sequelize | Partial | | serve | Partial | | serverless | Partial | | sfdx | Partial | | sftp | Partial | | shopify | Partial | | shortcuts | Partial | | shred | Partial | | sips | Partial | | softwareupdate | Partial | | source | Partial | | splash | Partial | | split | Partial | | spotify | Partial | | sqlite3 | Partial | | src | Partial | | ssh | Full | | st2 | Partial | | start-storybook | Partial | | stat | Partial | | steadybit | Partial | | stepzen | Partial | | stripe | Partial | | su | Partial | | subl | Partial | | sudo | Partial | | swc | Partial | | swift | Partial | | sysctl | Partial | | tac | Partial | | tail | Partial | | tailscale | Partial | | tailwindcss | Partial | | tangram | Partial | | tar | Full | | task | Partial | | tccutil | Partial | | tee | Partial | | terraform | Full | | terragrunt | Partial | | tfenv | Partial | | tfsec | Partial | | then | Partial | | time | Partial | | tldr | Partial | | tmux | Full | | tmuxinator | Full | | tns | Partial | | tokei | Partial | | top | Partial | | touch | Partial | | tr | Partial | | traceroute | Partial | | trash | Partial | | trex | Partial | | trivy | Partial | | truffle | Partial | | truncate | Partial | | trunk | Partial | | ts-node | Partial | | tsc | Partial | | tsh | Partial | | turbo | Partial | | twiggy | Partial | | twilio | Partial | | typeorm | Partial | | uname | Partial | | uniq | Partial | | until | Partial | | until | Partial | | unzip | Partial | | vale | Partial | | valet | Partial | | vapor | Partial | | vault | Partial | | vela | Partial | | vercel | Partial | | vi | Partial | | vim | Partial | | vimr | Partial | | vite | Partial | | vite | Partial | | volta | Partial | | vr | Partial | | vsce | Partial | | vtex | Partial | | vue | Partial | | vue | Partial | | vultr-cli | Partial | | w | Partial | | w | Partial | | wasm-bindgen | Partial | | wasm-pack | Partial | | watson | Partial | | wc | Partial | | wc | Partial | | wd | Partial | | webpack | Partial | | wget | Partial | | whence | Partial | | where | Partial | | which | Partial | | while | Partial | | who | Partial | | whois | Partial | | wifi-password | Partial | | wifi-password | Partial | | wp | Partial | | wrangler | Partial | | wrk | Partial | | wscat | Partial | | xargs | Partial | | xcode-select | Partial | | xcodebuild | Partial | | xcodeproj | Partial | | xcrun | Partial | | xed | Partial | | yank | Partial | | yarn | Partial | | yo | Partial | | youtube-dl | Partial | | z | Partial | | z | Partial | | zapier | Partial | | zapier | Partial | | zip | Partial | | zoxide | Partial | --- # Source: https://docs.warp.dev/university/mcp-servers/context7-mcp-update-astro-project-with-best-practices.md # Context7 MCP: Update Astro Project with Best Practices {% hint style="info" %} This tutorial shows how the **Context7 MCP Server** gives Warp agents real‑time access to documentation for upgrading frameworks and codebases automatically. {% endhint %} {% embed url="" %} *** ## 🧠 Overview The **Context7 MCP Server** lets Warp fetch live documentation from across the web.\ \ In the example, the agent updates an older **Astro** project to align with the latest version (Astro 5). *** {% stepper %} {% step %} **Add the Context7 Server** * Open Warp’s **MCP Panel** via the Command Palette. * Add the **Context7 JSON config** and click **Save**. ```json { "Context7": { "command": "npx", "args": [ "-y", "@upstash/context7-mcp" ], "env": {}, "working_directory": null } } ``` * This enables the endpoint `getLibraryDocs`, which retrieves live documentation directly from the official sources. {% endstep %} {% step %} **Run the Update Prompt** The developer issues this prompt: {% code title="prompt.txt" overflow="wrap" fullWidth="true" %} ``` Create a new git branch called update and in that branch update this Astro project to follow all the latest best practices based on all Astro and developer documentation. ``` {% endcode %} {% endstep %} {% step %} **Review the Automatic Code Changes** The transcript shows that Warp automatically: * Updates Tailwind import syntax * Improves TypeScript configuration * Optimizes build settings * Enhances accessibility rules These edits happen across multiple files — without manually searching docs or changelogs. {% endstep %} {% step %} **Best Use Cases** * Migrating old Astro, React, or Vue projects * Refreshing codebases to reflect recent standards * Saving time otherwise spent reading version notes {% endstep %} {% endstepper %} {% hint style="success" %} Context7 MCP automates documentation lookups — letting Warp update your project intelligently based on live references. {% endhint %} --- # Source: https://docs.warp.dev/agent-platform/agent/using-agents/agent-conversations/conversation-forking.md # Conversation Forking Warp allows you to **fork conversations** to create a new thread that inherits all of the context, messages, and history from an existing conversation. This is useful when you want to branch off in a new direction without affecting the original conversation. {% embed url="" %} ### How conversation forking works * When you fork a conversation, the new thread starts with the same context and history as the original. * Any follow-ups in the forked conversation do **not** impact the original. Likewise, continuing in the original conversation does not change the fork. * Forked conversations behave just like any other conversation: you can move them into new windows, panes, or tabs. *Example*: You can fork a conversation to explore an alternate solution, ask “what if” questions, or continue down two separate paths in parallel. ### Ways to fork a conversation There are four ways to fork an existing conversation: #### **1. From the command palette** Open the menu using the command palette (`CMD + Y` on macOS / `CTRL + SHIFT + Y` on Windows/Linux). Select **Fork current conversation** to fork your current conversation, or fork a specific conversation from open conversations.
In addition, when you hover over any open conversation in the command palette, you’ll see a **fork button**. This lets you fork not only active conversations, but also inactive and historical ones.
You can also access this conversation view from the [universal input chip](https://docs.warp.dev/terminal/universal-input) in the current conversation.
#### **2. From the footer of the most recent AI response block** In any conversation in the blocklist, click the **fork button** in the footer of the most recent AI block. A new conversation opens in a separate pane with the full context of the original.
#### **3. Using the /fork slash command** Type `/fork` in the input to fork the current conversation. You can optionally include a prompt after the command, and Warp will send that prompt in the newly forked conversation. *Example*: `/fork Can you try a different approach?` Forks the selected conversation and immediately sends `Can you try a different approach?` in the forked conversation. #### **4. Using the /fork-and-compact slash command** Type `/fork-and-compact` to fork the current conversation and automatically compact the forked version. This combines forking with [context window management](https://docs.warp.dev/agent-platform/agent/using-agents/agent-conversations/..#context-window-management), giving you a fresh start with a summarized context.
### Fork from anywhere in a conversation In addition to forking from the end of a conversation, you can fork from any point in the conversation history. This lets you return to an earlier agent response and branch off in a new direction from there. {% embed url="" %} To fork from a specific point, **right-click** on any agent response block or click the three-dot menu in the top-right corner of the block. * Select **Fork conversation from here** to create a new conversation that includes everything up to and including that response, but excludes any queries or responses that came after it. **This is particularly useful for:** * **Exploring alternate paths** - Go back to a point where the conversation was on track and try a different approach. * **Managing your context window** - If a conversation has grown too long, fork from an earlier point to continue with only the relevant context. * **Preventing context pollution** - When a conversation has accumulated errors or gone off track, fork from before those issues occurred to start fresh. ### Using forked conversations * Once forked, you can continue prompting as if you were still in the original conversation. The original conversation remains unchanged, allowing you to reference or continue both in parallel. * For example, after forking you might ask *“Could you explain more?”* and Warp will respond using the inherited context. **Forking is especially useful when:** * You want to explore different approaches without losing the original thread. * You need to keep one conversation “clean” while experimenting in another. * You want to reuse context or specific blocks from older conversations. --- # Source: https://docs.warp.dev/university/how-warp-uses-warp/creating-rules-for-agents.md # Creating Rules For Agents *Speaker: Maggie — Engineer at Warp* {% embed url="" %} ### 1. Starting with Agent Mode Evals I’m currently adding **Evals** (short for evaluations) to test a new feature I’ve been building. Warp quickly surfaces helpful context — like notebooks and internal docs — written by teammates on how to run Evals.\ \ This makes onboarding onto new tasks fast and collaborative. *** ### 2. Adding a Rust Syntax Eval Next, I want to add an Eval that tests for Rust syntax errors.\ So I ask Warp to update the Dockerfile to include Rust. However, the generated Dockerfile installs Rust differently than I wanted.\ It also includes `gcc` and `python` via a single `apt-get` line, which doesn’t follow our internal conventions. *** ### 3. Stashing Changes & Creating a Rule Instead of fixing this manually every time, I decide to stash the current changes and create a reusable Rule that encodes our convention: > Rule Example:\ > “Always use `apt-get` to install packages and follow the same pattern used for installing Python and GCC.” This way, future sessions — and even other teammates — can automatically apply the same standard. *** ### 4. Applying the Rule Now, I just ask Warp’s Agent Mode to try again! Warp re-runs the request, follows the new rule, and correctly adds Rust with the right syntax. The code now matches our conventions. --- # Source: https://docs.warp.dev/terminal/appearance/custom-themes.md # Custom Themes {% hint style="info" %} Examples and a collection of themes can be found in the [Warp themes repository](https://github.com/warpdotdev/themes). {% endhint %} ## Warp's Custom Theme Repository We have a [repository of themes hosted on GitHub.](https://github.com/warpdotdev/themes) Each theme has a preview generated in the README. The main difference between "standard" and "base16" themes is that "standard" themes follow the typical color setup, while "base16" themes follow the framework suggested by [@chriskempson](https://github.com/chriskempson/base16). There are 2 ways to install a theme from this repo. 1. Download a single file and follow the steps in the section below. 2. Clone the entire repo into the appropriate location based on your OS below: {% tabs %} {% tab title="macOS" %} ```bash mkdir -p $HOME/.warp cd $HOME/.warp/ git clone https://github.com/warpdotdev/themes.git ``` {% endtab %} {% tab title="Windows" %} ```powershell New-Item -Path "$env:APPDATA\warp\Warp\data\" -ItemType Directory Set-Location -Path $env:APPDATA\warp\Warp\data\ git clone https://github.com/warpdotdev/themes.git ``` {% endtab %} {% tab title="Linux" %} ```bash mkdir -p ${XDG_DATA_HOME:-$HOME/.local/share}/warp-terminal cd ${XDG_DATA_HOME:-$HOME/.local/share}/warp-terminal/ git clone https://github.com/warpdotdev/themes.git ``` {% endtab %} {% endtabs %} Here is a step-by-step YouTube video that goes through these 2 steps for an example theme. Note the location for the files is based on macOS. {% embed url="" %} Adding a Custom Theme to Warp {% endembed %} ## How do I use a custom theme in Warp? 1. To start, create the following directory: {% tabs %} {% tab title="macOS" %} ```bash mkdir -p $HOME/.warp/themes/ ``` {% endtab %} {% tab title="Windows" %} ```powershell New-Item -Path "$env:APPDATA\warp\Warp\data\themes\" -ItemType Directory ``` {% endtab %} {% tab title="Linux" %} ```bash mkdir -p ${XDG_DATA_HOME:-$HOME/.local/share}/warp-terminal/themes/ ``` {% endtab %} {% endtabs %} {% hint style="info" %} It may take several minutes for Warp to initially discover the new themes directory. You can either wait or restart Warp. After that step, all future changes to the directory will be reflected within seconds. {% endhint %} 2. Add your new custom theme yaml file to this directory: ```bash cp ~/Downloads/my_awesome_theme.yaml {{path_to_your_themes_directory_from_step1}} ``` Your new theme should now be visible on the list of available themes. ## Create your custom theme, manually Warp supports creating custom themes using .yaml files. The format itself might expand, but we'll do our best to avoid breaking changes and maintain forward compatibility. We also plan on supporting sharing/creating custom themes directly within Warp. A custom theme in Warp has the following `.yaml` structure: ```yaml name: Custom Theme # Name for the theme accent: '#268bd2' # Accent color for UI elements cursor: '#95D886' # Input cursor color (optional; defaults to accent color if omitted) background: '#002b36' # Terminal background color foreground: '#839496' # The foreground color details: darker # Whether the theme is lighter or darker terminal_colors: # Ansi escape colors bright: black: '#002b36' blue: '#839496' cyan: '#93a1a1' green: '#586e75' magenta: '#6c71c4' red: '#cb4b16' white: '#fdf6e3' yellow: '#657b83' normal: black: '#073642' blue: '#268bd2' cyan: '#2aa198' green: '#859900' magenta: '#d33682' red: '#dc322f' white: '#eee8d5' yellow: '#b58900' ``` {% hint style="info" %} Each color is represented in hex and must start with `#`. {% endhint %} * `name`: Name for the theme, will show up in the Theme picker. * `accent`: Color used for highlights in Warp's UI * `cursor`: Color for the input cursor (optional; defaults to accent color if omitted) * `background`: Color of background * `foreground`: Color of foreground * `details`: Color used for detailing options * `darker`: Color used for dark theme * `lighter`: Color used for light-mode theme * `terminal_colors`: Collection of normal & bright colors (16 total) known for other terminal themes (ANSI colors) ## Create your custom theme, automatically Automatically create new themes based on a background image. Click the `+` button in the theme picker `Settings > Appearance > Current Theme` or search `Open Theme Picker` within the [Command Palette](https://docs.warp.dev/terminal/command-palette). ## Create your custom theme, with a tool Use [Terminal-Themes](https://terminal-themes.com/) to create a custom theme and generate the appropriate RGB values for your custom theme. Once the YAML file is created, you can edit the file to add the background images or gradients. ## Background Images and Gradients To add a background image you can use this attribute: `background_image:` with the name of the image you want to use as the background. {% hint style="info" %} Note: Warp currently only supports images with the *.jpg* file format: * `.jpeg` * `.jpg` * `.JPEG` {% endhint %} A `.yaml` config looks like this: ```yaml name: Custom Theme accent: '#268bd2' cursor: '#95D886' background: '#002b36' details: darker foreground: '#839496' ############################################################### SEE BELOW background_image: # the path is relative to ~/.warp/themes/ # the full path to the picture is: ~/.warp/themes/warp.jpg path: warp.jpg # the opacity value is required and can range from 0-100 opacity: 60 ############################################################### SEE ABOVE terminal_colors: bright: black: '#002b36' blue: '#839496' cyan: '#93a1a1' green: '#586e75' magenta: '#6c71c4' red: '#cb4b16' white: '#fdf6e3' yellow: '#657b83' normal: black: '#073642' blue: '#268bd2' cyan: '#2aa198' green: '#859900' magenta: '#d33682' red: '#dc322f' white: '#eee8d5' yellow: '#b58900' ``` To set up a gradient, create a sublevel under accent with two key-value pairs: * "left" and "right" or * "top" and "bottom". ```yaml accent: top: '#abcdef' bottom: '#fedcba' ``` ```yaml accent: left: '#abcdef' right: '#fedcba' ``` Warp also supports setting a gradient for the background. ```yaml # accent has a gradient accent: left: '#474747' right: '#ffffff' # background has a gradient background: top: '#474747' bottom: '#ffffff' ``` ### Contributing Contributions to this repo are greatly appreciated! 1. Fork the project 2. Create your branch with `git checkout -b theme/AwesomeTheme` 3. Regenerate thumbnails 4. Commit and open a pull request Run this script to generate the thumbnails. ```bash # Assuming you're adding the theme to the `standard` directory: python3 ./scripts/gen_theme_previews.py standard ``` {% hint style="info" %} Note: We cannot accept pull requests that include custom background images because: * Licensing restrictions * Trying to keep the binary size of the repo as small as possible (only the yaml files) If your theme has an intended custom background image, include a comment in the yaml with a link to where people should download it. {% endhint %} ## Community All other Warp-related things can be discussed, please [contact us](https://docs.warp.dev/support-and-community/troubleshooting-and-support/sending-us-feedback). ## Open source dependencies We'd like to call out a few of the open-source themes and repositories that helped bootstrap the set of themes for Warp: * [iTerm colors pencil](https://github.com/mattly/iterm-colors-pencil) * [Alacritty-theme](https://github.com/eendroroy/alacritty-theme) * [base16-Alacritty](https://github.com/aarowill/base16-alacritty) * [base16](https://github.com/chriskempson/base16) * [Solarized](https://ethanschoonover.com/solarized/) * [Dracula](https://draculatheme.com/) * [Gruvbox](https://github.com/morhetz/gruvbox) --- # Source: https://docs.warp.dev/getting-started/readme/customizing-warp.md # Customizing Warp ## Customizing Warp's appearance Warp has many [Appearance](https://docs.warp.dev/terminal/appearance) settings you can configure: * [**Themes**](https://docs.warp.dev/terminal/appearance/themes): You can choose from pre-loaded themes or create your own [custom theme](https://docs.warp.dev/terminal/appearance/custom-themes), using .yaml or based on a background image you upload. * **Input format**: Choose between Warp's Standard input or Classic input. Standard enables easier access to AI features, while Classic resembles a traditional terminal input more closely. * [**Text and fonts**](https://docs.warp.dev/terminal/appearance/text-fonts-cursor): You can customize your font type and font size. You can also adjust the font to improve readability and accessibility. * [**Input position**](https://docs.warp.dev/terminal/appearance/input-position): Set your prompt and command line to the top or bottom of your Warp window. Navigate to `Settings > Appearance` to customize your setup. {% embed url="" %} ### Modify behavior settings There are a number of behavior settings and features that will help you customize Warp to best suit your needs: * [Dedicated window](https://docs.warp.dev/terminal/windows/global-hotkey#dedicated-window): Dedicated hotkey window (also known as Quake Mode) allows you to customize your window's position, width, and height ratio relative to your active screen size. * [Tabs](https://docs.warp.dev/terminal/windows/tabs): Organize your windows into multiple sessions, and customize them with different titles and/or colors. * [Split panes](https://docs.warp.dev/terminal/windows/split-panes): Divide any tab into multiple panels, side-by-side or stacked.

Organize tabs and divide them into multiple panels

* [Auto suggestions](https://docs.warp.dev/terminal/command-completions/autosuggestions): As you type, Warp will automatically suggest commands based on shell history and possible completions. * [Completions](https://docs.warp.dev/terminal/command-completions/completions): When you press TAB, Warp will suggest commands, option names, and path parameters for you. Customize your TAB key behavior under `Settings > Features`. * [Vim keybindings](https://docs.warp.dev/terminal/editor/vim): Warp supports default Vim keybindings, allowing for keyboard-driven text editing. * [Keyboard shortcuts](https://docs.warp.dev/getting-started/keyboard-shortcuts): Warp supports commonly used keyboard shortcuts. You can also set custom keyboard shortcuts by creating new commands or editing existing shortcuts. * [Open files and links](https://docs.warp.dev/terminal/more-features/files-and-links): Using your cursor, you can open files, folders, and URL links that are within Blocks. You can also [configure the default editor to open files](https://docs.warp.dev/terminal/more-features/files-and-links#files-and-links-1). * [Command Corrections](https://docs.warp.dev/terminal/entry/command-corrections): Get auto-correct suggestions on commands to catch typos, forgotten flags, and general console errors. --- # Source: https://docs.warp.dev/agent-platform/integrations/github-actions/demo-issue-triage-bot.md # Demo: Issue Triage Bot {% embed url="" %} {% hint style="info" %} Example repository: [**https://github.com/warpdotdev/warp-agents-demo-github-issue-triage**](https://github.com/warpdotdev/warp-agents-demo-github-issue-triage) {% endhint %} In this demo, Ben shows how to trigger Warp’s coding agent from a GitHub Action to automate bug report handling as soon as issues hit your repository. * The workflow acts like a maintainer-first “front door” for bugs: it evaluates whether a report is actionable, asks for missing details when it isn’t, and escalates directly into a draft pull request when it is **The first half focuses on triage.** * The agent reads the issue (and optionally your repo’s bug report template) and returns a simple ready/not-ready decision. * If the report is missing key context like a clear description or reproduction steps, the workflow automatically posts a friendly comment requesting the missing info and applies a “needs info” label for maintainers to track. **The second half extends the workflow into investigation + fix.** * When a report has sufficient detail, Ben shows the agent investigating the codebase, implementing a fix, adding tests, running verification, and returning a PR-ready summary. * The GitHub Action then commits the changes and opens a draft PR that follows the repo’s pull request template and links back to the original issue for review. --- # Source: https://docs.warp.dev/reference/api-and-sdk/demo-sentry-monitoring-with-sdk.md # Demo: Sentry monitoring with SDK ### Turn Production Errors into Draft PRs with Ambient Agents + TypeScript SDK {% embed url="" %} {% hint style="info" %} Example repository: [**https://github.com/warpdotdev/warp-agents-sdk-demo-sentry-monitor**](https://github.com/warpdotdev/warp-agents-sdk-demo-sentry-monitor) {% endhint %} In this demo, Ben builds a small TypeScript “Sentry monitor” service that listens for specific Sentry alerts (like a Go nil pointer dereference) and triggers a Warp Ambient Agent to investigate. The server validates the webhook, extracts the stack trace, and injects it into an agent run inside a Warp Environment so the agent can inspect the repo and propose a fix. He also covers the task lifecycle basics in the TypeScript SDK (running an agent, polling task state to fetch a session link for debugging), and shows the end result: a draft GitHub pull request created from the Sentry event for a maintainer to review. **What Ben covers** * Using Warp's TypeScript SDK to trigger agent runs and retrieve run details. * Handling run lifecycle states (queued → running) to reliably fetch a session link. * Running agents inside a Warp Environment so they can investigate real code, run tests, and validate fixes. * Building a lightweight Sentry webhook server that filters, validates, and routes only the right errors to an agent. * Creating a workflow that results in draft PRs for human review, instead of silent autonomous changes. --- # Source: https://docs.warp.dev/agent-platform/platform/deployment-patterns.md # Deployment Patterns Teams adopt Ambient Agents in a few repeatable ways. This page outlines the most common architectures, what they’re good for, and how they fit together. #### Quick mental model Ambient Agent systems usually have four moving parts: 1. **Trigger**: something happens (CI step, webhook, cron, Slack mention). 2. **Orchestration**: something decides what to run and tracks it (Warp Orchestrator, GitHub Actions, your internal system). 3. **Execution**: where the agent actually runs (your runner, Warp-hosted environment, eventually self-hosted workers). 4. **Visibility**: how the team monitors and intervenes (management UI, session sharing, APIs). *** ### Pattern 1: CLI-only agents (bring your own orchestrator) Use this when you already have a system that schedules work (CI, dev boxes, internal orchestrators), and you just need a reliable, cloud-connected agent runner. #### What it looks like * **Trigger**: GitHub Actions / CI, a script, a dev box action, or an internal orchestrator * **Orchestration**: your existing system * **Execution**: wherever that system runs * **Warp adds**: cloud connectivity, shared context, visibility, session sharing, and tracking #### Why teams choose it * You want a **drop-in replacement** for other CLI/SDK-based agents (Claude Code, Codex CLI, Gemini CLI/SDK-style flows). * You want to run agents anywhere without requiring Warp desktop. * You still want **team-level observability** even when execution is “outside Warp.” #### Common examples * **CI PR helper**: run formatting checks, generate review comments, suggest fixes, open PRs. * **Remote dev box agent**: run refactors or debugging tasks inside a pre-provisioned box. * **Internal orchestrator integration**: treat Warp as one agent option alongside other model providers. #### What you still get even without Warp orchestration * Access to your shared Warp context (for example MCP config, Warp Drive context, rules/prompts). * Agent Session Sharing to monitor/steer runs. * Read-only APIs for tracking and reporting. * A path to “handoff” workflows (where a run can be continued or inspected in richer surfaces). #### Minimal setup checklist * A Warp team * A service account (recommended for automation) * The Warp CLI installed on the runner / box * Any needed credentials (often via secrets + environment variables) *** ### Pattern 2: Warp-hosted agents + Warp orchestration (managed cloud execution) Use this when you want Warp to run agent workloads on Warp-managed infrastructure, typically inside reproducible Docker environments, with built-in lifecycle management. #### What it looks like * **Trigger**: first-party integrations, cron schedules, API/SDK calls, or on-demand commands * **Orchestration**: Warp Orchestrator * **Execution**: Warp-hosted environments (Docker-based) * **Visibility**: management UI + session sharing + APIs/SDKs #### Why teams choose it * You want the simplest path to reproducible, scalable cloud execution. * You want to run many tasks in parallel without building your own sandboxing and scaling layer. * You want a consistent “production” setup with standardized environments and centralized configuration. #### Common ways to trigger * **First-party integrations (Slack, Linear, etc.)** that create tasks automatically from external events. * **Scheduled agents** for recurring work (cron-like automation). * **Custom triggers** from your own systems using Warp’s API/SDK. * **On-demand cloud jobs** using CLI commands like warp agent run-ambient. #### Example recipe: Daily dead-code cleanup 1. Define a Warp Environment with the repo + toolchain. 2. Create a schedule with a fixed prompt for cleanup. 3. Warp runs the agent on the cadence. 4. Your team monitors runs in the management UI, reviews artifacts (PRs, plans), and intervenes when needed. 5. Define a Warp Environment with the target repo. 6. Register a Sentry webhook to your handler (server, cloud function, Zapier/n8n). 7. Handler extracts crash details, constructs a prompt, and calls Warp’s Orchestrator API/SDK to start a task. 8. Warp spins up the run in the environment and you monitor progress via UI/API. #### Example recipe: Fan-out parallel work (sharding) If a task is naturally divisible: * Launch multiple cloud agents via warp agent run-ambient, each with: * A shard of the repo (directory/module ownership) * A shard of the prompt (one responsibility) * Aggregate results (PRs, notes, plans) in whatever system you prefer. #### Example recipe: Same task across multiple models * Launch N runs with the same prompt, but different profiles that map to different models. * Compare results and choose the best output (or merge). *** ### Pattern 3: Self-hosted execution (coming soon) Use this when you need execution and code to remain inside your network boundary, but still want Warp’s orchestration and visibility model. #### Intended model * Warp Orchestrator still manages lifecycle and observability. * Execution happens on customer-managed infrastructure. --- # Source: https://docs.warp.dev/university/developer-workflows/devops.md # DevOps Automate your operations stack with agents that handle deployments, logs, and environment management. This section includes examples like running CI/CD pipelines, monitoring infrastructure, and summarizing logs — showing how Warp fits seamlessly into DevOps tooling. ### Jump right in
how-to-analyze-cloud-run-logs-gcloudWarp Drive Workflows Logs.jpg
how-to-create-a-production-ready-docker-setupWarp Drive Docker Setup.png
--- # Source: https://docs.warp.dev/terminal/editor.md # Modern Text Editing {% hint style="info" %} Text Editor Input also works for [SSH sessions](https://docs.warp.dev/terminal/warpify/ssh). {% endhint %} ### Soft Wrapping Warp supports soft wrapping in the input editor. If an autosuggestion goes off-screen, the input editor will be horizontally scrollable to make it visible. Some operations treat soft-wrapped lines like a logical line (`TRIPLE-CLICK`) while other operations treat soft wrapped lines like visible different lines (`UP`/`DOWN`, `SHIFT-UP`/`SHIFT-DOWN`). ### Copy on Select Warp supports copy on select for selectable text within [Blocks](https://docs.warp.dev/terminal/blocks). * Toggle this feature `Settings > Features > General` or search for "Copy on select" in the [Command Palette](https://docs.warp.dev/terminal/command-palette). ### Autocomplete Quotes, Parentheses, and Brackets Warp can automatically complete quotes, brackets, and parentheses like you're used to in IDEs. * Toggle this feature `Settings > Features > Editor` or search for "Autocomplete quotes" in the [Command Palette](https://docs.warp.dev/terminal/command-palette). ## How to use it {% tabs %} {% tab title="macOS" %}
Keyboard bindingShortcut description
ESCAPECloses the input suggestions or history menu
CTRL-LClears the terminal
CTRL-HBackspace
CTRL-CClear the entire editor buffer
CTRL-UCopy and Clear the current line
CMD-SHIFT-KClear selected lines
CMD-C, CMD-X, CMD-VCopy, cut, paste
CTRL-W / OPT-DCut the word to the left / right of the cursor
OPT-BACKSPACE / OPT-DDelete the word to the left / right of the cursor
CTRL-K CMD-DELETEDelete everything to the right of the cursor
OPT-LEFT / OPT-RIGHTMove to the beginning of the previous / next word
CTRL-OPT-LEFT / CTRL-OPT-RIGHTMove backward / forward by one subword
CMD-LEFT CTRL-A/ CTRL-E CMD-DOWN CMD-RIGHTMove the cursor to the start / end of the line
SHIFT-LEFT / SHIFT-RIGHTSelect the character to the left / right of the cursor
OPT-SHIFT-LEFT / OPT-SHIFT-RIGHTSelect the word to the left / right of the cursor
CMD-SHIFT-LEFT / CMD-SHIFT-RIGHTSelect everything to the left / right of the cursor
SHIFT-UP / SHIFT-UPSelect everything above / below the cursor
CMD-ASelect the entire editor buffer
SHIFT-ENTER CTRL-ENTER OPT-ENTERInsert newline
CTRL-RCommand Search
CMD-DSplit pane
{% endtab %} {% tab title="Windows" %}
Keyboard bindingShortcut description
ESCAPECloses the input suggestions or history menu
CTRL-LClears the terminal
CTRL-HBackspace
CTRL-CClear the entire editor buffer
CTRL-UCopy and Clear the current line
CTRL-SHIFT-KClear selected lines
CTRL-C, CTRL-X, CTRL-VCopy, cut, paste
CTRL-W / ALT-DCut the word to the left / right of the cursor
ALT-BACKSPACE / ALT-DDelete the word to the left / right of the cursor
CTRL-KDelete everything to the right of the cursor
ALT-LEFT / ALT-RIGHTMove to the beginning of the previous / next word
CTRL-LEFT / CTRL-RIGHTMove backward / forward by one subword
CTRL-A/ CTRL-EMove the cursor to the start / end of the line
Select the character to the left / right of the cursor
META-SHIFT-B / META-SHIFT-FSelect the word to the left / right of the cursor
Select everything to the left / right of the cursor
SHIFT-UP / SHIFT-UPSelect everything above / below the cursor
CTRL-ASelect the entire editor buffer
SHIFT-ENTER CTRL-ENTER ALT-ENTERInsert newline
CTRL-RCommand Search
CTRL-SHIFT-DSplit pane
{% endtab %} {% tab title="Linux" %}
Keyboard bindingShortcut description
ESCAPECloses the input suggestions or history menu
CTRL-LClears the terminal
CTRL-HBackspace
CTRL-CClear the entire editor buffer
CTRL-UCopy and Clear the current line
CTRL-SHIFT-KClear selected lines
CTRL-C, CTRL-X, CTRL-VCopy, cut, paste
CTRL-W / ALT-DCut the word to the left / right of the cursor
ALT-BACKSPACE / ALT-DDelete the word to the left / right of the cursor
CTRL-KDelete everything to the right of the cursor
ALT-LEFT / ALT-RIGHTMove to the beginning of the previous / next word
CTRL-LEFT / CTRL-RIGHTMove backward / forward by one subword
CTRL-A/ CTRL-EMove the cursor to the start / end of the line
Select the character to the left / right of the cursor
META-SHIFT-B / META-SHIFT-FSelect the word to the left / right of the cursor
Select everything to the left / right of the cursor
SHIFT-UP / SHIFT-UPSelect everything above / below the cursor
CTRL-ASelect the entire editor buffer
SHIFT-ENTER CTRL-ENTER ALT-ENTERInsert newline
CTRL-RCommand Search
CTRL-SHIFT-DSplit pane
{% endtab %} {% endtabs %} ## How it Works {% embed url="" %} Text Editor Input Demo {% endembed %}
soft wrapping text in Warp terminal input editor

Soft Wrapping Demo

--- # Source: https://docs.warp.dev/terminal/entry.md # Command Entry 1. [Command Corrections](https://docs.warp.dev/terminal/entry/command-corrections) provides auto-correct suggestions on previously run commands to catch typos, and forgotten flags, and fix general console errors. 2. [Command Search](https://docs.warp.dev/terminal/entry/command-search) is a 3-in-1 panel that allows you to search across Command History, Workflows, Notebooks, and A.I. Command Search all at once. 3. [Command History](https://docs.warp.dev/terminal/entry/command-history) allows Warp to isolate the history of each shell session to make previously run commands easily accessible. 4. [Synchronized Inputs](https://docs.warp.dev/terminal/entry/synchronized-inputs) allow you to easily run the same command in multiple sessions at the same time. 5. [YAML Workflows](https://docs.warp.dev/terminal/entry/yaml-workflows) are easier to execute and share parameterized and searchable commands within Warp. ## Command Corrections {% embed url="" %} Command Corrections Demo {% endembed %} ## Command Search {% embed url="" %} Command Search Demo {% endembed %} ## Command History {% embed url="" %} Command History Demo {% endembed %} ## YAML Workflows

YAML Workflows Demo

--- # Source: https://docs.warp.dev/knowledge-and-collaboration/warp-drive/environment-variables.md # Environment Variables ## What are Environment Variables in Warp? Environment Variables in Warp are similar to .env files, except you can: * Load them into your terminal session with a click. * Use them in parameterized workflows. * Dynamically reference secrets from external managers. ## How to create and edit environment variables You can create new environment variables through: * [Warp Drive](https://docs.warp.dev/knowledge-and-collaboration/warp-drive), + → Environment variable * [Command Palette](https://docs.warp.dev/terminal/command-palette), create new team or personal environment variables Any of these entry points will open the environment variables editor where you can name and describe your environment variables.
## Managing individual environment variables Warp supports two types of environment variables: static variables and dynamic variables. ### Static variables Static variables are similar to .env files. You create the variables by entering raw strings of text. Each variable has a variable name and a corresponding value.
After you save the environment variable, you can click it to load it into your terminal session.
When you use static variables, Warp stores them securely in Warp Drive.\ \ Note: Static variables should not be used to replace a secret manager. Please use dynamic variables for any sensitive information. ### Dynamic variables {% hint style="info" %} Warp never stores secrets used in dynamic variables. Warp only stores the command used to dynamically retrieve the secrets at runtime. {% endhint %} Dynamic variables let you reference secrets that are stored securely outside of Warp in external secret managers, such as 1Password or LastPass. You can use custom commands to create dynamic variables for any system with a public API or CLI, such as AWS or Hashicorp Vault. ### **How to create and edit dynamic environment variables** To create a new dynamic variable: 1. Open the environment variable editor. 2. Use the key icon to reveal the dynamic variable menu. 3. Select an integrated password manager or "Command" to write your own custom integration.
#### **Integrated password managers** Before you get started, please ensure you have the CLI installed for your tool of choice and follow the instructions to enable the CLI: * [1Password CLI](https://developer.1password.com/docs/cli/get-started/) * [LastPass CLI](https://github.com/lastpass/lastpass-cli) Then, you can click the key icon and select your manager from the dropdown menu.
The CLI will require you to authenticate and then provide you with a list of available secrets. {% hint style="info" %} Selecting a secret name never stores the actual secret. Warp uses your selection to generate a command that dynamically pulls in your selected secret at runtime. {% endhint %}
### **How to write a custom secret command** Reference the documentation for your external secret manager. Then, write a custom command to retrieve secrets. {% hint style="info" %} Your custom command should return the exact string you want loaded into your environment. Please make sure that you are selecting the exact field you want loaded as many secret manager CLIs provide additional formatting by default. {% endhint %} For example, you could write a command using the [Hashicorp Vault CLI](https://developer.hashicorp.com/vault/docs/commands) to retrieve and load the password field for the staging server. When using secret commands, Warp stores the command but never the actual secrets. The secrets will be referenced and loaded into a terminal session at runtime. ``` // vault kv get -field=password secret/staging/app/server/creds ```
### Using environment variables There are three ways to invoke your environment variables and load them into a terminal session: 1. [Click to load into a current section](#click-to-load-into-a-current-session) 2. [Click to load into a subshell](#click-to-load-into-a-subshell) 3. [Select to load in with a workflow](#select-to-load-with-a-workflow) #### Click to load into a current session First, click your environment variable from Warp Drive or the Command Palette. Then, review the confirmation block. If your environment variables are correct, hit enter to load them into your session.
These environment variables will now be present for the remainder of your session. #### Click to load into a subshell To load environment variables into a subshell, you will need to open [Warp Drive](https://docs.warp.dev/knowledge-and-collaboration/warp-drive) and locate your environment variable in the Warp Drive index. You can then use the overflow menu to select "Load in subshell." Loading an environment into a subshell reduces the risk of your environment variables accidentally contaminating your workspace. The subshell is clearly defined and once you exit it, any environment variables set by Warp Environment Variables will be cleared, unless they are already present in the parent session.
#### Select to load with a workflow Any time you run a workflow, you can select from existing environment variables. This allows you to dynamically inject environment variables into a parameterized workflow so you can use a single workflow command in multiple environments, such as production and staging. For example, you might have a workflow to create a new team that uses the environment variable $SERVER\_URL. By using the environment variables dropdown in the workflow card, you can dynamically inject the necessary variables. This ensures the workflow references the appropriate values so the command runs with the relevant environment-specific information. These environment variables will now be present for the remainder of your session until you clear them or overwrite them with a different environment.
### Import and Export Environment Variables in Warp Drive Please see our [Warp Drive Import and Export](https://docs.warp.dev/knowledge-and-collaboration/warp-drive/..#import-and-export) instructions. --- # Source: https://docs.warp.dev/agent-platform/platform/environments.md # Environments Environments ensure your [Ambient Agents](https://docs.warp.dev/agent-platform/ambient-agents/ambient-agents-overview) run with the same toolchain and setup every time, regardless of where they’re triggered from. When you set up an environment, a workflow triggered from any surface uses identical dependencies, repos, and configuration, eliminating “works on my machine” drift. An environment defines the execution context for automated agent runs: the **Docker image**, **repositories to clone**, **setup commands**, and **runtime configuration** Warp uses to prepare the workspace before the agent starts. {% hint style="info" %} You often don't need an environment for interactive local runs where you’re already in a working checkout and relying on your existing machine setup. {% endhint %} ## Key features What environments give you: * **Consistent behavior across triggers** – A workflow triggered from Slack behaves identically to one run from Linear or the CLI, using the same toolchain and setup steps every time. * **One configuration, many uses** – Define your Docker image and setup once, then reuse it across triggers and hosts without duplicating configuration. * **Full visibility into runs** – Inspect the image, repos, and commands used by a run, making it easy to debug failures or reproduce results. ## About environments Environments define *how* an agent runs, not *what* it does. They’re required for [Warp Platform](https://docs.warp.dev/agent-platform/platform/warp-platform) automation (Ambient Agents, integrations, API runs) but are not required for interactive local usage. An environment typically includes: * **Docker image (required)** – The toolchain and runtime the agent runs with. * **Repository/workspace** – One or more repos the agent can clone and operate on. * **Setup commands** – Commands to prepare the workspace (e.g., dependency install, builds, bootstrapping). {% hint style="info" %} Configuring runtime settings: * **Environment variables**: Configure these in your Dockerfile using Docker’s \`ENV\` directives or pass them when running the container. * **Secrets**: For credentials and sensitive data, use [Agent Secrets](https://docs.warp.dev/agent-platform/ambient-agents/agent-secrets). These are configured separately from environments and injected securely at runtime. {% endhint %} What an environment is not: * Host – Hosts determine where execution happens (Warp-hosted vs. self-hosted infrastructure). * [Agent Profile](https://docs.warp.dev/agent-platform/agent/using-agents/agent-profiles-permissions) – Profiles control agent behavior like permissions, model choice, and defaults, not the runtime environment. * [Rules](https://docs.warp.dev/warp/knowledge-and-collaboration/rules) – Rules determine agent responses and decisions but don’t define the container or toolchain. * [MCP](https://docs.warp.dev/agent-platform/ambient-agents/mcp-servers-for-agents) – MCP connects agents to external tools and data. It doesn’t define or configure the execution environment. * Per-run context – Trigger-specific data like Slack threads, PR metadata, or CI logs attach to individual tasks, not the environment configuration. ## How environments fit into the Warp Platform An environment is the runtime layer for automated Warp Platform runs. It defines the container image, repos, and setup steps used when a trigger kicks off an agent task. Components in the execution flow: 1. **Trigger** – An event starts work (Slack mention, Linear comment, CI event, API call) 2. **Task** – Warp creates a tracked task for the run 3. **Environment** – The task uses an environment to define execution context 4. **Host** – The environment runs on a host (Warp-hosted or self-hosted infrastructure). 5. **Agent execution** – The workflow runs in the prepared environment 6. **Outputs** – The run produces PRs, messages, reports, or transcripts {% hint style="info" %} **Local agent** runs (using `warp agent run`) don’t require an environment. These runs use your current machine’s setup. Environments are required for **automated platform** runs like Ambient Agents and integrations {% endhint %} ### Hosts and environments While environments define *how* an agent runs, hosts determine *where* the environment executes. Host options: * **Warp-hosted (default)** – Warp provides the infrastructure. Best for most users who want hands-off execution. * **Self-hosted** – You provide the infrastructure (runners in your cloud or network). Best for compliance requirements, on-premise execution, or custom hardware needs. * Local (coming soon) – Run environments on your local machine for sandbox development and testing. The same environment can run on different hosts with identical behavior. For more details on hosting options, see [Deployment Patterns](https://docs.warp.dev/agent-platform/platform/deployment-patterns) and [execution hosts](https://docs.warp.dev/agent-platform/warp-platform#execution-hosts). ### What happens at runtime When you trigger an agent, Warp follows this process: 1. **Warp receives the trigger.** Warp captures the message content (Slack thread, Linear issue) and any linked context. 2. **Warp creates an execution environment.** Warp spins up an isolated execution context from the Docker image defined in your environment. 3. **Repositories are cloned.** GitHub repositories associated with the environment are cloned into the container. 4. **Setup commands run.** Configured setup commands execute (installing dependencies, running builds, etc.) 5. **The agent workflow runs.** The agent executes the task using the provided context, tools, and permissions. 6. **Results are posted back.** Progress updates, summaries, and results post to the trigger source (Slack, Linear, etc.), or are available in the task transcript.. 7. **The container is destroyed.** After completion, the container is torn down. Each run starts from a clean, isolated environment. This process ensures every run starts from the same baseline, making results reproducible and debugging straightforward. ## When to use environments Use an environment when your run needs a predictable toolchain and repeatable setup, regardless of where it’s triggered from. * **Integrations and schedules** – Use an environment when runs start from Slack, Linear, GitHub Actions, schedules, or other integrations, and you need consistent behavior each time. * **CI and remote automation** – Use an environment when the host isn’t consistent (e.g., different runners, varying base images). * **Team standardization** – Use an environment when you want everyone’s automation runs to use the same image, repos, and setup steps. * **Toolchain-specific workflows** – Use an environment when the workflow depends on specific language versions, linters, build tools, or system packages. **When you can skip an environment** You often don’t need an environment for interactive local runs where you’re already in a working checkout and relying on your existing machine setup. **Decision checklist** Choose an environment if any of the following apply: * Runs must be consistent across triggers/hosts. The workflow should behave the same regardless of where it is triggered from. * The toolchain must be fixed. You need a known image and deterministic setup steps to avoid “it works on my machine” drift. * The workflow is shared across a team. Multiple people, or systems, will run the workflow and expect repeatable results. **Example:** If your team tags @Warp in Slack to fix a failing CI job, an environment ensures every run uses the same Docker image, clones the same repos, and runs the same setup commands. The fix the agent tests matches what runs in CI and what your teammates see when they review the PR. ### Where to configure environments You can create and configure environments with Warp’s guided setup, or through the CLI. Use the guided flow when you’re first getting started, and use the CLI when you want full control or need to automate environment creation. **Before you begin** Make sure you have: * One or more GitHub repositories that the agent should clone and work in. * A publicly-accessible Docker image that can build and run your code. Official images like [node](https://hub.docker.com/_/node), [python](https://hub.docker.com/_/python), or [rust](https://hub.docker.com/_/rust) work for many projects. {% hint style="info" %} Create one environment per codebase, then reuse it across triggers like Slack, Linear, and CLI runs. {% endhint %} ### Create an environment with guided setup (recommended) Use [`/create-environment`](warp://action/create_environment) when you want Warp to inspect your repos and recommend an environment configuration automatically. This is the fastest way to get started: Warp detects your languages, frameworks, and tools, then suggests appropriate images and setup commands. You can run the command inside a git repo directory with no argument, or with one or more repo paths or URLs. ```shellscript # Local file paths /create-environment ./warp-internal ./warp-server # owner/repo /create-environment warpdotdev/warp-internal warpdotdev/warp-server # GitHub URLs /create-environment https://github.com/warpdotdev/warp-internal.git ``` Warp will: * Detect the repositories you want the agent to work with and identify languages, frameworks, and tools * Look for an existing Dockerfile, recommend an official base image, or help build a custom image (if needed) * Suggest setup commands based on your scripts and package managers * Create the environment through the CLI and return an `environment ID` This produces a ready-to-use environment that can immediately be connected to integrations and Ambient Agents. ### Create an environment with the CLI Use the CLI when you already know how you want to configure your environment, you have a custom Docker image you want to use, or when you’re automating environment creation. ```docker warp environment create \ --name \ --docker-image \ --repo \ --repo \ --setup-command "" \ --setup-command "" ``` Required flags: * `--repo` : repo to clone (repeatable). * `--setup-command` : commands run in the order provided (repeatable). Optional flags: * `--name` : human-readable label for the environment. * `--docker-image` : image name on Docker Hub. ## Managing environments Once created, you can use the [Warp CLI](https://docs.warp.dev/reference/cli/) to inspect and update environments. **List environments** ```sh warp environment list ``` **View an environment’s configuration.** Replace \ with the ID of the environment you want to view. ```sh warp environment get ``` **Update an environment** Add/remove repos and setup commands without recreating the environment. Replace \ with the ID of the environment you want to modify. ```sh # Add a repo warp environment update --repo owner/repo # Remove a repo warp environment update --remove-repo owner/repo # Add a setup command warp environment update --setup-command "your command" # Remove a setup command (must match exactly) warp environment update --remove-setup-command "exact command" ``` **Delete an environment.** Replace \ with the ID of the environment you want to delete. ```sh warp environment delete ``` {% hint style="info" %} For end-to-end setup, see the [Integrations and Environments](https://docs.warp.dev/reference/cli/integrations-and-environments) guide. {% endhint %} ## Environment design and best practices A well-designed environment removes guesswork by giving every run the same starting conditions. When an agent opens a PR from Slack or fixes a failed CI job, the result matches what your team can reproduce locally and in CI. **Design guidelines**
* **Keep setup repeatable** – Write setup steps that are safe to rerun and that produce the same toolchain and workspace state for a given repo revision. This keeps agent runs reliable across triggers and hosts. * **Pin versions in the toolchain** – Prefer a Docker or base image that pins language runtimes and core tools, then use lockfiles (\`package-lock.json\`, etc.) for dependencies. * **Define a clear workspace boundary** – In multi-repo environments, explicitly state which repos are cloned and where setup commands run so the agent doesn’t “guess” the working directory. * **Make prerequisites explicit** – If the agent must run a build step, generate code, or install system packages before it can do meaningful work, encode that as setup. **Example setup commands** ```sh # Safer patterns (repeatable and stable) mkdir -p .cache npm ci # Less safe patterns (can fail on rerun or drift over time) mkdir .cache npm install ``` {% hint style="info" %} If your setup commands depend on secrets or credentials, configure them through Warp’s [secrets mechanism](https://docs.warp.dev/agent-platform/ambient-agents/agent-secrets) rather than hardcoding tokens. This keeps credentials secure and makes runs fully automated. {% endhint %} ### Common issues * **Setup assumes previous state** – Steps that rely on leftover caches, existing directories, or already-cloned repos can make runs unreliable. * Solution: Write idempotent setup commands that work on a fresh container. * **Missing credentials or secrets** – Builds fail when private repos, package registries, or external services require authorization. * Solution: Configure credentials with [Agent Secrets](https://docs.warp.dev/agent-platform/ambient-agents/agent-secrets). * **Repo access and GitHub authorization issues** – Runs fail when GitHub doesn’t have repo access or the triggering user lacks permissions. * Solution: See [Integrations and Environments](https://docs.warp.dev/reference/cli/integrations-and-environments#how-github-authorization-works) for GitHub authorization setup. --- # Source: https://docs.warp.dev/university/mcp-servers/figma-remote-mcp-create-a-website-from-a-figma-file-from-scratch.md # Figma Remote MCP: Create a Website from a Figma File from Scratch Learn how to connect Warp to Figma’s remote MCP server to generate code directly from your design files — complete with screenshots, metadata, and design system context. {% embed url="" %} *** ## Overview This guide covers how to: * Connect Warp to the **remote Figma MCP server** * Log in securely using OAuth * Use the server to pull live context (components, variables, and assets) from your Figma designs * Generate front-end code based on your UI files * Iterate and refine output directly in Warp *** {% stepper %} {% step %} **What Is a Remote MCP Server?** A **remote MCP server** runs outside your local machine — Warp connects to it through a secure network call.\ \ This means you don’t have to manage processes, ports, or tokens manually. Warp handles setup, authentication, and communication for you. {% endstep %} {% step %} **Connect Figma MCP to Warp** * Copy the Figma MCP configuration JSON ``` { "Figma": { "url": "https://mcp.figma.com/mcp" } } ``` * In Warp, paste the JSON — Warp will automatically open an OAuth login window. * Log in once with your **Figma account** credentials. {% hint style="info" %} You will need a Figma Dev account for this to work. {% endhint %} {% endstep %} {% step %} **What the Figma MCP Server Provides** Once connected, the server enables Warp’s AI to understand your design context by fetching: | Type | Description | | -------------------------------- | -------------------------------------------------------------------- | | **`get_screenshot`** | Helps the AI visualize layout and relationships between elements. | | **`create_design_system_rules`** | Components, variables, and styles for consistent, reusable code. | | **`get_code`** | Extracts code from your Figma design for direct use in projects. | | **`get_metadata`** | Includes text, images, and layer names for more realistic mock data. | | {% endstep %} | | {% step %} **Generate a Website from a Figma File** Basic flow: * Copy your **Figma file link**: * Right-click → *Copy / Paste As → Copy Link to Selection* * In Warp, paste a prompt to create a website based on that design. Prompt: {% code title="Prompt" %} ``` Create a website from this Figma file: Follow the design layout and use these guidelines: - Match spacing and typography from the design - Use Tailwind CSS and TypeScript - Make components reusable ``` {% endcode %} Warp uses the Figma MCP server to pull all necessary context and begin generating code diffs. {% endstep %} {% step %} **Iterating on Output** * In under five minutes, Warp generates a working site structure based on the Figma layout. * Missing assets (e.g., logos or images) are automatically referenced in an `assets/` folder. * Warp prompts you to add any missing files before continuing. {% endstep %} {% step %} **Persistent Input Feature** Warp’s **persistent input** allows mid-process updates.\ If you forget an image (e.g., the Misho logo), simply upload it and notify Warp: ``` I’ve uploaded the Misho logo to the assets folder. ``` Warp will automatically detect and use it during the same generation session. {% endstep %} {% step %} **Recap** * Warp now supports **remote MCP servers** for Figma (and others like GitHub, Sentry, and Linear). * OAuth login streamlines setup and removes manual token handling. * The Figma MCP integration enables rapid, context-aware code generation. * Persistent input and real-time iteration make design-to-code workflows seamless. {% hint style="success" %} In under 20 minutes, you can go from Figma design to a functioning website — all powered by Warp’s AI coding environment. {% endhint %} {% endstep %} {% endstepper %} --- # Source: https://docs.warp.dev/code/code-editor/file-tree.md # File Tree (Project Explorer)
Warp includes a **native file tree** that makes it easy to explore and manage project files. The file tree is available whenever in any directory and it automatically reflects your project structure as files are added, removed, or changed. ### Opening the file tree You can open the file tree from the tools panel on the left hand side: * **Tools panel**: Click the Tools sidebar button, then open the File Tree tab (first tab in the panel). * Press `CMD + \` to open the left panel, then assign your own shortcut for File Tree (and Warp Drive) in `Settings > Keyboard Shortcuts`.
{% hint style="info" %} Warp supports icons for common file types. If a file type is missing an icon, please [file a GitHub issue](https://github.com/warpdotdev/Warp/issues) so we can review and add support. {% endhint %} ### Browsing and opening files Clicking on a file opens it directly in Warp’s [**native Code Editor**](https://docs.warp.dev/code/code-editor), where you can view and edit code in a separate pane or tab. ## File and Folder Actions Right-clicking any **file** opens a context menu with several useful options: * **Open in new pane**: Open the file in a side-by-side pane. * **Open in new tab**: Open the file in a new tab. * **Attach as context**: Insert the file into an agent prompt so the Agent can analyze or reference it. * **Copy path**: Copy the absolute file path. * **Copy relative path**: Copy the path relative to your current working directory.

Right-click context menu on a folder in the file tree.

Right-clicking any **folder** opens a context menu with the following options: * **Create new file**: Add a new file directly from the tree.
* **Attach as context**: Insert the selected file into your agent prompt so the Agent can analyze or reference it. * **Copy path**: Copy the absolute file path to your clipboard. * **Copy relative path**: Copy the path relative to your current working directory. --- # Source: https://docs.warp.dev/terminal/more-features/files-and-links.md # Files, Links, & Scripts ## Files & Links Warp supports opening files, folders, and URL links that are within Blocks. Multiple URL protocols are supported e.g. `https`, `ftp`, `file`, etc. Warp can open files and folders in a variety of editors and opens web links directly in your default browser. Warp can also open markdown files directly with a [Markdown Viewer](https://docs.warp.dev/terminal/more-features/markdown-viewer). {% hint style="info" %} Warp also supports iTerm2 and Kitty Image protocols on macOS and Linux. You will need to use a cli tool to view images, in some cases the tools expect `$TERM=kitty`, so you may need to workaround this by setting `TERM=kitty` before the command. We're working on updating the popular tools to recognize Warp natively. {% endhint %} Warp parses relative and absolute file paths. Warp also tries to capture line and column numbers attached to the file path, supported formats include: * `file_name:line_num` * `file_name:line_num:column_num` * `file_name[line_num, column_num]` * `file_name(line_num, column_num)` * `file_name, line: line_num, column: column_num` * `file_name, line: line_num, in` {% tabs %} {% tab title="macOS" %} 1. After hovering over a link, open it directly by holding down `CMD` while clicking it. 2. Clicking a link normally will open a clickable tooltip that says “Open File/Folder/Link”. 3. Right-clicking a link will open a context menu that supports copying the absolute file path or URL to the clipboard. {% endtab %} {% tab title="Windows" %} 1. After hovering over a link, open it directly by holding down `CTRL` while clicking it. 2. Clicking a link normally will open a clickable tooltip that says “Open File/Folder/Link”. 3. Right-clicking a link will open a context menu that supports copying the absolute file path or URL to the clipboard. {% endtab %} {% tab title="Linux" %} 1. After hovering over a link, open it directly by holding down `CTRL` while clicking it. 2. Clicking a link normally will open a clickable tooltip that says “Open File/Folder/Link”. 3. Right-clicking a link will open a context menu that supports copying the absolute file path or URL to the clipboard. {% endtab %} {% endtabs %} * You can also Drag and drop a folder or file onto the Warp dock icon to open a new tab in this directory. * You can also right-click on a folder or file in Finder, then select Services, and "Open new Warp Tab | Window here". * Configure the default editor to open files by navigating to `Settings > Features > Choose an editor to open file links`. * Selecting "Default App" uses your system's default application for the file type. #### List of supported editors Non exhaustive list of editors, please submit new ones on our GitHub, see [Sending Feedback](https://docs.warp.dev/support-and-community/troubleshooting-and-support/sending-us-feedback#sending-warp-feedback). 1. `$EDITOR` 2. Visual Studio Code 3. JetBrains IDEs * WebStorm * PhpStorm * GoLand * PyCharm * DataGrip * DataSpell * Rider * RubyMine 4. Zed and Zed Preview 5. Cursor 6. Windsurf 7. Sublime Text 8. Android Studio

Files & Links Demo

## Scripts Warp can open `.command` and Unix Executable files from the finder directly. 1. Find a `.command` or Shell script you'd like to open in Finder. 2. Right-click and open the script with Warp. {% hint style="warning" %} Make sure the file has the appropriate executable permissions before you can run it in Warp. (e.g. `chmod +x script.command`) {% endhint %}

Scripts Demo

--- # Source: https://docs.warp.dev/code/code-editor/find-and-replace.md # Find and Replace ## Find Press `CMD-F` on macOS or `CTRL-SHIFT-F` on Windows and Linux to open the find menu. As you type, all matches in the file are highlighted, and the match closest to your cursor is selected. * Press `ENTER` or use the down arrow to jump to the next match * Press `SHIFT-ENTER` or use the up arrow to go to the previous match * Click "Select All" to highlight all matches and close the menu You can toggle regex and case-sensitive search options directly in the query editor.
using find in the code editor

Using the find menu in Warp's Code Editor

## Replace Click the dropdown to the left of the find menu to open the replace options. * Press Enter to replace the currently selected match * Use Replace All to replace all matches Toggle Preserve Case to keep the original casing of replaced text. Case is preserved in text that contains PascalCase, camelCase, hyphens, and underscores. For example: * Replacing “old” with “new” will turn “Old” into “New” and “OLD” into “NEW” * Replacing “oldValue” with “NewValue” will result in “newValue” * Replacing “OldValue” with “newValue” will result in “NewValue” * Replacing “my-Old-VALUE” with “my-new-value” will result in “my-New-VALUE”
using replace in the code editor

Using the replace menu in Warp's Code Editor

--- # Source: https://docs.warp.dev/terminal/blocks/find.md # Block Find ## What is it Find searches for matches in all your Blocks from the bottom up and can even be isolated to a specific Block. {% hint style="info" %} Since command outputs are contained within Blocks, you can still use the input editor when invoking find. {% endhint %} ## How to access it {% tabs %} {% tab title="macOS" %} 1. Hitting `CMD-F` opens the find view which searches across the terminal (scoped within the current pane). 2. Within the find modal, you can also enable the regex toggle, find on a selected Block, and or toggle case sensitive search. {% endtab %} {% tab title="Windows" %} 1. Hitting `CTRL-SHIFT-F` opens the find view which searches across the terminal (scoped within the current pane). 2. Within the find modal, you can also enable the regex toggle, find on a selected Block, and or toggle case sensitive search. {% endtab %} {% tab title="Linux" %} 1. Hitting `CTRL-SHIFT-F` opens the find view which searches across the terminal (scoped within the current pane). 2. Within the find modal, you can also enable the regex toggle, find on a selected Block, and or toggle case sensitive search. {% endtab %} {% endtabs %} ## How it works ![Find](https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-ae6ed470ebb4a9eb546165e6d92267a8098734a5%2Ffind.gif?alt=media) --- # Source: https://docs.warp.dev/university/developer-workflows/frontend-ui.md # Frontend / UI Explore Warp workflows tailored for frontend engineers. Learn how to use agents to debug UI issues, generate components, optimize assets, or connect to design tools through MCP servers. These examples focus on speeding up front-end iteration while keeping code clean and consistent. ### Jump right in
how-to-actually-code-ui-that-matches-your-mockup-react-+-tailwindWarp Drive UI Mockup.png
how-to-replace-a-ui-element-in-warp-rust-codebaseWarp Drive Workflows UI.jpg
--- # Source: https://docs.warp.dev/terminal/more-features/full-screen-apps.md # Full-screen Apps ## Mouse and Scroll Reporting Warp supports configuring how to handle mouse and scroll events. They can be sent to the currently running app, e.g. `vim`, or kept and handled by Warp. {% hint style="info" %} Mouse reporting must be enabled to also toggle scroll reporting. {% endhint %} Once mouse reporting is enabled, Warp will use ANSI escape sequences to communicate mouse events to the running app. {% hint style="info" %} If you want a mouse event to go to Warp instead (for example, for text selection) without disabling mouse reporting, you can hold the `SHIFT` key. {% endhint %} ### How to access it * From the Settings panel, `Settings > Features > Enable Mouse Reporting` * Scroll Reporting can be enabled after toggling `Enable Mouse Reporting` * From the [Command Palette](https://docs.warp.dev/terminal/command-palette), search for "Toggle Mouse Reporting" * From the macOS Menu, `View > Toggle Mouse Reporting` ### How it works {% embed url="" %} Mouse and Scroll Reporting Demo {% endembed %} ## Padding Warp supports configuring how much padding surrounds full-screen apps. The default is 0 pixel padding, but this can be changed to a custom padding amount or to match the padding in the Blocklist. {% hint style="info" %} Warp allows you to scale your terminal by fractions of a cell width | height. When your terminal size is not perfectly aligned to a cell width | height, the extra space appears as padding on the right | bottom. {% endhint %} ### How to access it * Go to `Settings > Appearance > Full Screen Apps` or from the [Command Palette](https://docs.warp.dev/terminal/command-palette) search for "Appearance" * `Use custom padding in alt-screen` is enabled by default, you can disable it to match the Blocklist padding * Set the desired uniform padding (px) pixels, which is set to 0px by default {% hint style="warning" %} Some full-screen applications don't behave well when resizing. If you are experiencing rendering issues with full screen apps, try turning this setting off. This will ensure that full-screen apps don't need to resize when starting up. {% endhint %}
alt-screen padding setting

Alt-screen padding setting

--- # Source: https://docs.warp.dev/agent-platform/agent/full-terminal-use.md # Full Terminal Use Full Terminal Use lets Warp's agent operate directly inside interactive terminal applications, such as database shells, debuggers, text editors, long-running servers, and more. The agent can see the live terminal buffer (terminal state), write to the PTY to run commands, respond to prompts, and continue working inside the running process while you stay in control. {% embed url="" %} ## Overview With Full Terminal Use, Warp’s agent can attach to interactive tools like `psql`, `vim`, `python`, `gdb`, `top`, or your dev server, read the terminal output as it changes, and interact with the application as if you were typing. You can either ask the agent to start an interactive program, or you can start it yourself and then tag the agent in once the tool is already running. In both cases, the agent sees the same terminal buffer (and PTY session) you do and can act on it. ## How Full Terminal Use works #### Start an interactive command You can either ask the agent to run an interactive command, or start one manually and then tag the agent in: * **Ask the agent to start an interactive tool** * Example: * “Open a Postgres shell and help me inspect the orders table.” * “Start the dev server and debug this 500 error.” * **Or start the command yourself, then tag the agent in** * Example: * If you’ve already launched an interactive tool (for example `psql` or `npm run dev`), you can bring the agent into the running session using the "Use Agent" button in the terminal footer or via `CMD + I` . * Once the agent is tagged in, you can follow up with natural-language requests such as: “Watch this process and help debug the error on the /session endpoint.” * Warp then attaches the agent to the active PTY so it can see the current terminal buffer and propose actions inside the session. {% embed url="" %} Tagging in the agent. {% endembed %}
Warp attaches the agent to the running command so it can see and control the terminal buffer. #### Agents propose actions inside the session Once attached, you can continue using natural language and the agent turns your requests into concrete terminal actions. For example, in a Postgres shell: * You: “Show me all the tables and describe the orders table.” * Agent: proposes running commands like: `\dt` --> `\d+ orders` In the UI, you’ll see a request to: * Run a specific command * Optionally enable auto-approval for similar commands in this session #### Switching control between user and the agent You can swap control at any time. **Take over** * Use the Takeover control to stop the agent from typing or performing any actions. * The shell stays open, and you can type directly into the same session.

Option to take over from agent in the footer.

**Hand back control** * When you’re ready for the agent to continue, click the control again. * The agent resumes where you left off, with full access to the current terminal state.

Option to hand-off to the agent in the conversation footer.

This makes it easy to: * Let the agent do mechanical work (paging output, trying variants of a command) * Step in for delicate or security-sensitive actions * Then let the agent continue once the critical step is done #### Showing and hiding agent responses Warp gives you control over how much agent output appears in Full Terminal Use. **Toggle visibility** Use the `Hide responses` or `Show responses` button or `CMD + G` in the interactive command footer to switch between showing all agent output or hiding it from the terminal view. Note that this only affects the agent's messages and proposals; your terminal state and command output remain unchanged. **Behavior when hidden** * When agent responses are hidden, your own agent requests automatically dismiss after **4 seconds** to keep the terminal clear. * You can also manually dismiss any user query at any time by hovering over it and clicking the X. {% embed url="" %} *** ### Configuring agent permissions and autonomy You control how much autonomy the agent has when interacting with the terminal. #### Session-level approvals Each time the agent wants to take an action inside an interactive shell, you’ll see the agent’s reasoning, a brief explanation, and the proposed command. From there you can: * Allow the command once (for example by approving it or pressing `ENTER`). * Turn on auto-approval for similar commands in this session (for example with `CMD + SHIFT + I`). * Refine the request with `CTRL + C`, which clears the proposed action and lets you follow up with a different query. * Take over manually with `CMD + I`, which stops the agent from issuing any further PTY writes until you hand control back.

Allow, Refine, or Take over an agent response.

Ability to accept or auto-approve future interactions.

This lets you tighten or loosen control for the current task: * For exploratory work, you might Always allow to reduce friction. * For production systems or sensitive operations, you might Allow once and review each step. #### Global permission settings You can configure global defaults from your [Agent Profiles & Permissions](https://docs.warp.dev/agent-platform/agent/using-agents/agent-profiles-permissions) settings: * **Ask on first write**: The first write to a shell process requires approval. After that, all subsequent writes for that specific process/command will be approved. * **Always ask**: Every write to the shell process from the agent requires your explicit approval. * **Always allow**: The agent can write to the shell process without prompting you each time. These settings apply to every session that uses Full Terminal Use. You can still override them on a per-session basis when prompted. For example, you can enable **auto-approval** for similar commands in the current session using the fast-forward control, or switch to a **different AI profile** with its own permission settings for that conversation. {% hint style="info" %} **Note**: All [Secret Redaction](https://docs.warp.dev/support-and-community/privacy-and-security/secret-redaction) features still apply during Full Terminal Use, so sensitive values in your environment or output remain protected. {% endhint %} ### AI credits usage All AI interactions from Full Terminal Use consume [AI Credits](https://docs.warp.dev/support-and-community/plans-and-billing/ai-credits), including understanding your natural language requests Credits are consumed in a similar way as other Warp AI actions that use the same model and a similar context size. **Interactive sessions can consume more credits if:** * The agent runs many commands in an interactive shell on your behalf. * There is a significant amount of terminal output to read and summarize. **To manage credit usage:** * Use tighter scopes: * “Describe just the orders table.” instead of “Explain the entire database.” * Pause autonomy for high-volume tasks with copius terminal output: * Take over manual control when running large batches or long logs. * Use stricter permissions: * Set global permissions to "Ask on first write" or "Always ask", then approve only what you need. {% hint style="info" %} To learn more about what goes into a credit and how to get more value from AI usage in Warp, see: [*Getting the most out of AI credits in Warp*](https://www.warp.dev/blog/warp-ai-requests). {% endhint %} ## Example workflows Here’s a demo from one of our engineers, Maggie, that walks through a couple of Full Terminal Use examples. {% embed url="" %} Below are some common interactive tools where Full Terminal Use is particularly useful: database shells (Postgres, MySQL, SQLite), debuggers such as gdb, language-specific REPLs like python or node, text editors and file explorers, and long-running dev servers or monitoring tools such as top and htop.
ToolExample tasksAgents can...
Database shells (REPLs)

e.g. psql, mysql, sqlite, etc.
  • “List all tables and describe the users and orders tables.”
  • “Create a new table to store archived user sessions.”
  • “Show me all rows in orders from the last 30 days, grouped by status.”
  • “Generate and run a query that finds the top 10 customers by revenue.”
  • Navigate \d, \dt, DESCRIBE, etc.
  • Write and execute SQL queries
  • Summarize results in plain language
Text editors

e.g. vim, nano, etc.
  • “Open this file in vim and add a Markdown header and a boilerplate section.”
  • “Insert a docstring above this function explaining what it does.”
  • “Generate a CSS utility class block and insert it in this file.”
  • Navigate within the editor using keystrokes
  • Insert, edit, and delete text
  • Save and quit when done
Python REPLs

e.g. python, ipython
  • “Start a Python REPL and define a function that calculates a moving average.”
  • “Write a unit test for this function and run it.”
  • “Plot x from 0 to 10 and y = sin(x).”
  • Import modules
  • Define functions and classes
  • Run tests and small scripts
  • Print or summarize results back to you
Debuggers

e.g. gdb, lldb, language-specific debuggers
  • “Start gdb for this binary and set a breakpoint on handle_request.”
  • “Run until the breakpoint, then show the stack and local variables.”
  • “Inspect this pointer and tell me if it looks invalid.”
  • Issue debugger commands (break, run, next, continue, bt, etc.)
  • Walk through execution step by step
  • Summarize relevant state so you don’t have to remember every command
Long-running servers and services

e.g. npm run dev, uvicorn, Rails servers, etc
  • “Run the dev server and debug the internal server error on /session.”
  • “Send a sample request to this endpoint and explain the failure.”
  • “Kill the server once you identify the error and propose a code diff.”
  • Watch server logs in real time
  • Notice new errors as they appear
  • Stop the server when appropriate
  • Propose code changes (for example, via a diff) based on what it observes
Version control workflows

e.g. git rebase -i, complex git commands
  • “Interactively rebase master onto feature-branch to squash these commits into one.”
  • “Resolve these merge conflicts and ensure tests pass.”
  • Navigate interactive rebase prompts
  • Edit commit messages
  • Apply conflict resolutions you approve
Cloud provider CLIs

e.g. gcloud, aws, az, etc.
  • “Use gcloud to create a new Kubernetes cluster with these settings.”
  • “Provision a new RDS instance for staging and show me the connection details.”
  • Walk through multi-step CLI workflows
  • Handle prompts and confirmations
  • Summarize the resulting resources
--- # Source: https://docs.warp.dev/agent-platform/agent/generate.md # Generate (Legacy) ## What is Generate? Generate helps turn natural language queries into precise commands as terminal input or contextual suggestions inside interactive commands and programs, whether you're using psql, gdb, git, mysql, or any other CLI tool. Generate is backed by Large Language Models from API providers like OpenAI and Anthropic, and are completely opt-in. {% hint style="info" %} Currently, you need to be online to use this feature. If this feature doesn't work, your ISP or firewall may be blocking the calls to `app.warp.dev` {% endhint %} ## Ways to Generate with AI ### Generate commands as command line input Type `#` on the command line input to generate command suggestions.

Typing '#' on the command line opens the suggestions interface

{% embed url="" %} Generating commands as command line input demo {% endembed %} 1. Press `` CTRL-` `` or type `#` into the text input editor to search using natural language. 2. Type in the input box what you'd like to do. For example, "replace a string in a file." 3. Results are generated in real-time, and you can keep the current prompt or modify the prompt to generate new commands. 4. When you've found the command you want to execute, it can be run or saved as a Workflow onto Warp Drive to easily recall it in the future. ### \[Legacy] Generate text and contextual suggestions in interactive CLIs {% hint style="warning" %} **Our legacy Generate feature which works in interactive CLIs has been replaced by** [Full Terminal Use](https://docs.warp.dev/agent-platform/agent/full-terminal-use)**, where Warp’s agent can now run and control long-running or full-screen terminal applications**. This includes debuggers, database shells, installers, and system monitors.\ \ The agent can provide input when prompted, navigate interactive screens, and continue execution without stalling. {% endhint %} In interactive CLI applications, you can generate input using natural language.

Generate a SQL query

Generate Vim input

{% tabs %} {% tab title="macOS" %} 1. Inside a long-running, interactive command, press `CMD-I` when you see the hint text appear. 2. Type what you would like to generate in the input box. For example, "show me all tables in my Postgres database" or in Vim, "generate a recursive Fibonacci function and save it to the file." 3. Results are generated in real time using the [LLM of your choice](#supported-interactive-cli-models). 4. To refine or follow up on your query, press `CMD-Y`. You can then either edit your last message by pressing `UP ↑` or add a follow-up by typing in new text. 5. When you've found the text you want to add or execute, press `Enter` or click the Accept button. {% endtab %} {% tab title="Windows" %} 1. Inside a long-running, interactive command, press `CTRL-SHIFT-I` when you see the hint text appear. 2. Type what you would like to generate in the input box. For example, "show me all tables in my Postgres database" or in Vim, "generate a recursive Fibonacci function and save it to the file." 3. Results are generated in real time using the [LLM of your choice](#supported-interactive-cli-models) 4. To refine or follow up on your query, press `CTRL-SHIFT-Y`. You can then either edit your last message by pressing `UP ↑` or add a follow-up by typing in new text. 5. When you've found the text you want to add or execute, press `Enter` or click the Accept button. {% endtab %} {% tab title="Linux" %} 1. Inside a long-running, interactive command, press `CTRL-SHIFT-I` when you see the hint text appear. 2. Type what you would like to generate in the input box. For example, "show me all tables in my Postgres database" or in Vim, "generate a recursive Fibonacci function and save it to the file." 3. Results are generated in real time using the [LLM of your choice](#supported-interactive-cli-models) 4. To refine or follow up on your query, press `CTRL-SHIFT-Y`. You can then either edit your last message by pressing `UP ↑` or add a follow-up by typing in new text. 5. When you've found the text you want to add or execute, press `Enter` or click the Accept button. {% endtab %} {% endtabs %} A couple of other examples of interactive CLIs where you can invoke Generate: * **Database REPL** (e.g. `psql`, `mysql`, `sqlite`): Generate SQL queries such as "create a table to store user data" or "show me all the rows in orders for the last month" * **Text editors** (e.g. `vim`, `nano`): Quickly generate text such as a markdown header, a code block comment, or a boilerplate CSS class. * **Python REPL** (e.g. `ipython`, `python`): Quickly generate Python snippets such as "create a simple plot of x" or "write a unit test for this function" * **Debugger tools** (e.g. `gdb`, `lldb`): Get commands for setting breakpoints or inspecting memory * **Version control** (e.g. `git rebase -i`): Speed up complex git commands by describing your goal such as "interactively rebase master onto feature-branch" * **Cloud provider shells** (e.g. `gcloud`, `aws cli`): faster setup or resource management such as "create a new Kubernetes cluster" or "provision a new RDS instance" {% hint style="warning" %} If you experience any issues with Generate, please visit known issues for [troubleshooting steps](https://docs.warp.dev/support-and-community/troubleshooting-and-support/known-issues#online-features-dont-work). {% endhint %} --- # Source: https://docs.warp.dev/university/getting-started.md # Getting Started Warp University has lessons that show how professional developers are using Warp’s agentic platform in real-world projects — from automating code reviews and managing cloud deployments to building custom MCP servers and integrating Warp into production pipelines. Each module walks through an end-to-end example, with real code, real prompts, and reproducible results. Whether you’re a senior engineer exploring agentic workflows or a team lead looking to scale automation across your org, Warp University helps you turn concepts into production-grade practices. ### Developer Workflows
Cover image
how-to-write-sql-commands-inside-a-postgres-replWarp Drive Workflows Postgres.jpg
how-to-generate-unit-and-security-tests-to-debug-fasterWarp Drive Prompts Debugging App.png
how-to-create-priority-matrix-for-database-optimizationWarp Edu Prompts Matrix.png
how-to-configure-yolo-and-strategic-agent-profilesWarp-Edu-Agent-Profiles.jpg
how-to-analyze-cloud-run-logs-gcloudWarp-Edu-Workflows-run-logs-Email.png
how-to-explain-your-codebase-using-warp-rust-codebaseWarp Drive Workflows Codebase.jpg
how-to-sync-your-monoreposWarp Drive Edu Rules (1).jpg
how-to-review-prs-like-a-senior-devWarp Drive Prompts Senior Dev.png
how-to-set-coding-best-practicesWarp Drive Edu Rules Preferences (1).jpg
how-to-run-3-agents-in-parallel-summarize-logs-+-analyze-pr-+-modify-uiWarp Drive Workflows.jpg
how-to-prevent-secrets-from-leakingWarp Drive Edu Rules.jpg
how-to-create-a-production-ready-docker-setupWarp Drive Docker Setup.png
### MCP Servers
Cover image
linear-mcp-retrieve-issue-dataWarp Drive Linear.jpg
figma-remote-mcp-create-a-website-from-a-figma-file-from-scratchWarp Drive Remote Figma.jpg
puppeteer-mcp-scraping-amazon-web-reviewsWarp Drive Puppeteer.jpg
sentry-mcp-fix-sentry-error-in-empower-websiteWarp Drive Edu Sentry.jpg
context7-mcp-update-astro-project-with-best-practicesWarp Drive Context 7.jpg
--- # Source: https://docs.warp.dev/agent-platform/integrations/github-actions.md # Github Actions Warp’s GitHub Actions integration lets you run Warp agents directly inside your CI workflows. Using the `warp-agent-action` Github Action, you can delegate tasks such as code review, issue triage, bug fixing, or automated maintenance to the agent as part of a standard Actions pipeline. The agent runs inside your workflow, uses your repository context, and can open pull requests or comment on issues using your GitHub permissions. {% hint style="info" %} For more detailed setup instructions, please refer to the [Warp Agent Actions](https://github.com/warpdotdev/warp-agent-action) repo. {% endhint %} This page explains what the integration does, how to use it in workflows, and common patterns for automating development tasks with Warp. {% embed url="" %} In this demo * Automated PR reviews with both summary feedback and inline suggestions * One-click batching and committing of agent suggestions directly from the GitHub UI * Automatically fixing failing CI checks by opening a suggested PR * Suggesting fixes for small review comments (“nits”) without checking out code locally *** ### What the GitHub Actions integration does The `warp-agent-action` is a GitHub Action that wraps the Warp CLI and: * Runs a Warp agent inside an Actions job * Caches package installation for faster builds * Captures the agent’s output for use in subsequent workflow steps * Lets you pass workflow context, event data, and previous step outputs into the agent prompt * Allows the agent to comment on PRs, post results, or open branches via the GitHub CLI * Supports inline code suggestions that can be batched and committed directly from the GitHub pull request UI ### Requirements To use Warp agents in GitHub Actions, you need: * A [**Warp API Key**](https://docs.warp.dev/reference/cli/cli#generating-api-keys) stored as a [GitHub secret](https://docs.github.com/en/actions/concepts/security/secrets) * A workflow with permissions that match your intended actions (for example, write access to PRs if the agent should commit or comment) * The `warp-agent-action` step added to your workflow * Familiarity with GitHub Actions concepts — see the official docs for [GitHub Actions](https://docs.github.com/en/actions) The agent runs using your GitHub account’s permissions for the workflow run. ### Quickstart *For detailed setup instructions, please refer to the* [*Warp Agent Actions*](https://github.com/warpdotdev/warp-agent-action) *repo.* To run Warp agents from GitHub Actions, **you must store your Warp API Key as a GitHub Actions secret**. This allows your workflow to authenticate with Warp securely. #### Add your Warp API Key to GitHub Secrets 1. Go to your repository on GitHub. 2. Navigate to: **Settings > Secrets and variables > Actions** 3. Select **New repository secret** 4. Set the secret name to `WARP_API_KEY` 5. Paste your Warp API Key into the **Secret** field 6. Click **Add secret** Your secret will now appear in the list of available Actions secrets: #### Add the Warp Agent Action to your workflow Once your `WARP_API_KEY` secret is set, add a step to your workflow: ```yaml - name: Review code changes in Warp uses: warpdotdev/warp-agent-action@main with: prompt: | Review the code changes on this branch: 1. Use the `git` command to identify changes from the base branch. 2. Analyze the diff for style, security, or correctness issues. 3. If you have suggestions, use the `gh` command to comment on the PR. warp_api_key: ${{ secrets.WARP_API_KEY }} ``` The agent will run inside your workflow and return its output to subsequent steps. #### Working with agent output The action sets the following output: ``` steps..outputs.agent_output ``` Use `output_format: json` for structured, machine-readable results: ```yaml with: output_format: json ``` This allows downstream steps to branch, format messages, or post results programmatically. {% hint style="info" %} Because the agent is fully prompt-driven, you can insert it anywhere in a GitHub Actions workflow, pass in files or event context, and control whether the output is human-readable comments or structured JSON for downstream automation. {% endhint %} #### Debugging and session sharing For debugging workflows, you can enable session sharing so teammates can open a live interactive agent session: ```yaml with: share: true ``` This posts an [Ambient Agents Session Sharing link](https://docs.warp.dev/knowledge-and-collaboration/session-sharing/ambient-agents-session-sharing) to the job logs. Anyone with the link can inspect the agent's execution directly. The session sharing option also accepts multi-line configuration for the recipients of the share link. ``` with: share: | jane@example.com | john@example.com ``` *** ## Common use cases The `warp-agent-action` supports several automation patterns commonly used in CI. ### 1. Responding to comments with @ mentions * **File**: [`examples/respond-to-comment.yml`](https://github.com/warpdotdev/warp-agent-action/blob/main/examples/respond-to-comment.yml) * **Use case**: Add “@warpdotdev fix this typo” or similar comments to a PR or Issue. What it does: * Listens for comments containing a trigger phrase * Sends the comment and thread context into the agent * Agent replies directly to the comment * If code changes are requested, the agent commits fixes to the PR branch **When to use:** * Interactive coding assistance during review or issue triage. ### 2. Automated pull request review * **File**: [`examples/review-pr.yml`](https://github.com/warpdotdev/warp-agent-action/blob/main/examples/review-pr.yml) * **Use case**: Provide automated agent feedback when a PR is opened or marked ready for review. What it does: * Automatically runs when PRs open or switch to “ready for review” * Agent inspects changed files, analyzes the diff, and comments inline * Optionally posts a summary comment **When to use:** * Fast initial review before human reviewers step in. ### 3. Automatically fix issues * **File**: [`examples/auto-fix-issue.yml`](https://github.com/warpdotdev/warp-agent-action/blob/main/examples/auto-fix-issue.yml) * **Use case**: Apply the `warp-agent` label on an Issue to trigger automated fixes. What it does: * Detects when the label is added * Agent analyzes the issue description and repo context * Creates a PR with a fix (fix/issue-NUMBER) * Or comments explaining why automation wasn’t possible **When to use:** * Automating bug fixes, small features, or maintenance tasks. ### 4. Daily issue summaries * **File**: [`examples/daily-issue-summary.yml`](https://github.com/warpdotdev/warp-agent-action/blob/main/examples/daily-issue-summary.yml) * **Use case**: Scheduled summaries of newly opened issues. What it does: * Runs daily at 09:00 UTC * Fetches issues created in the past 24 hours * Generates a categorized summary * Sends the summary to Slack via webhook **When to use:** * Daily visibility into new work across your repositories. ### 5. Fixing failing CI checks * **File**: [`examples/fix-failing-checks.yml`](https://github.com/warpdotdev/warp-agent-action/blob/main/examples/fix-failing-checks.yml) * **Use case**: Automatically attempt fixes when a workflow or test suite fails. What it does: * Triggers when specified CI workflows fail * Pulls failure logs * Attempts to diagnose and fix the root cause * Opens a PR with the fix and comments with a link **When to use:** * Reducing downtime from failing builds or flaky tests. ### 6. Suggest fixes for review comments * **File**: [`examples/suggest-review-fixes.yml`](https://github.com/warpdotdev/warp-agent-action/blob/main/examples/suggest-review-fixes.yml) * Use cases: Automatically propose code suggestions for small, actionable review comments such as typos, naming tweaks, and minor refactors. **What it does:** * Triggers when a pull request review is submitted * Fetches review comments and stores them in review\_comments.json * Sends comments and context to a Warp agent to decide which ones are simple, actionable fixes * Generates `responses.json` with explanations and suggestion blocks for each fixable comment * Replies inline to the original review comments with the generated suggestions **When to use:** * Quickly addressing straightforward review feedback such as typos, naming tweaks, style nits, and small refactors. --- # Source: https://docs.warp.dev/university/mcp-servers/github-mcp-summarizing-open-prs-and-creating-gh-issues.md # Github MCP: Summarizing Open PRs & Creating GH Issues {% embed url="" %} The GitHub MCP Server lets Warp agents read, write, and automate tasks in your GitHub repositories directly — no manual tab-switching required. *** ### 2. Setup #### Step 1. Get a GitHub Personal Access Token 1. Go to **GitHub → Settings → Developer Settings → Personal Access Tokens** 2. Create a new token and enable: * ✅ `repo` * ✅ `read:user` *** #### Step 2. Add the Server in Warp 1. Open the **MCP Panel** via Command Palette (`Cmd + P`) 2. Click **Add Server** 3. Paste in your JSON config and the access token 4. Save — and you’ll see the available endpoints immediately *** ### 3. Workflow 1 — Summarize All Open PRs Use Warp’s agent to summarize pull requests: Behind the scenes, the MCP server: * Lists PRs * Fetches comments and reviews * Compiles summaries with clickable links Perfect for daily PR triage or stand-ups. *** ### 4. Workflow 2 — Create GitHub Issues from TODOs Use a saved prompt to automate issue creation. Warp: 1. Scans your codebase for TODO comments 2. Calls `create_issue` for each one via MCP 3. Generates a linked list of new issues This turns scattered notes into trackable tickets instantly. *** ### 5. Why It’s Useful * Save 20–30 minutes per session * Keep repos synchronized automatically * Enable PR summaries, issue tracking, and automation — all inside Warp. --- # Source: https://docs.warp.dev/terminal/windows/global-hotkey.md # Global Hotkey {% hint style="info" %} On macOS, [system keyboard shortcuts](https://support.apple.com/en-us/HT201236) like `CMD-ESC`, `CMD-BACKTICK`, `CMD-TAB`, `CMD-PERIOD`, and `CMD-TILDE` need to be [unbound](https://support.apple.com/guide/mac-help/keyboard-shortcuts-mchlp2262/mac) before you can use them in Warp. {% endhint %} {% hint style="warning" %} On Linux, the Global Hotkey may not work for some X11 window managers that do not implement [Extended Window Manager Hints](https://en.wikipedia.org/wiki/Extended_Window_Manager_Hints). Some examples include: [sowm](https://github.com/dylanaraps/sowm), [catwm](https://github.com/pyknite/catwm), [Fvwm](https://www.fvwm.org/), [dwm](https://dwm.suckless.org/), [2bWM](https://github.com/venam/2bwm), [monsterwm](https://github.com/c00kiemon5ter/monsterwm), [TinyWM](https://github.com/mackstann/tinywm), [x11fs](https://github.com/sdhand/x11fs), [XMonad](https://xmonad.org/) {% endhint %} ## How to access it ### Dedicated Window Dedicated Window allows you to customize the windows' pinned position and its width and height ratio relative to your active screen size (also known as Quake Mode). 1. Open `Settings > Features > Keys` and select "Dedicated hotkey window" from the Global Hotkey dropdown to enable the feature. 2. Configure the keybinding, the windows position, screen, and relative size or uncheck "Autohides on the loss of keyboard focus" which will cause the dedicated Hotkey Window to stay on top when triggered regardless of mouse or keyboard focus. {% hint style="warning" %} On Linux and Windows, Warp does not support the "Autohides on the loss of keyboard focus" feature. {% endhint %} ### Show/Hide All Windows Show/Hide All Windows allows you to configure a shortcut to show/hide all Warp windows. 1. Open `Settings > Features > Keys` and select "Show/hide all windows" from the Global Hotkey dropdown to enable the feature. 2. Configure your preferred keybinding. {% hint style="warning" %} On Linux, hidden windows may not appear in your `ALT-TAB` window switcher menu. Furthermore, the ordering of windows beyond the top window may change after toggling. {% endhint %} ## How it works

Global Hotkey - Dedicated Window Demo

Global Hotkey - Show/Hide All Windows Demo

## Troubleshooting Hotkey Dedicated Window Review platform-specific instructions for troubleshooting the global hotkey below {% tabs %} {% tab title="macOS" %} If the keybinding doesn't work, check under `System Preferences > Security & Privacy > Accessibility` and tick the checkbox to grant Warp access. {% endtab %} {% tab title="Windows" %} On Windows, there are no known issues with Global Hotkey Dedicated Window. If you find an issue, please [send feedback](https://docs.warp.dev/support-and-community/troubleshooting-and-support/sending-us-feedback) to let us know. {% endtab %} {% tab title="Linux" %} The hotkey window may appear on the incorrect monitor under certain window sizes. For example, with GNOME, if the hotkey window is supposed to show on a monitor having the taskbar (GNOME Panel), and the window height is 100%, causing an overlap, the hotkey window may fallback to showing on an external monitor if you have one. Try working around this by setting a window height to a lesser percentage, e.g. 90%. {% endtab %} {% endtabs %} --- # Source: https://docs.warp.dev/university/developer-workflows/frontend-ui/how-to-actually-code-ui-that-matches-your-mockup-react-+-tailwind.md # How To: Actually Code UI That Matches Your Mockup (React + Tailwind) Learn how to prompt Warp’s AI to produce accurate, design-faithful UI code using your preferred framework. {% embed url="" %} *** ## Intro This tutorial walks you through generating pixel-perfect front-end code using Warp.\ \ By treating the AI like a **UI engineer**, you can get closer to real implementation fidelity — especially when working from design mockups. Although this example uses **React** and **Tailwind**, the same method applies to **Vue**, **Next.js**, or **Svelte**. *** {% stepper %} {% step %} **The Problem** When designing UI with AI, your intended design often gets lost in translation.\ AI struggles with visual fidelity — but structured prompts can help fix that. {% endstep %} {% step %} **The Prompt** Step — Generate full specifications: ``` Analyze this web design mockup as a senior UI engineer would. Create a complete technical specification: 1. DESIGN SYSTEM TOKENS: - Extract the color palette with semantic naming (primary, secondary, surface, text) - Identify the type scale (heading levels, body text sizes) - Document the spacing scale pattern (4px, 8px, 16px, etc.) - List border radius values used consistently 2. LAYOUT ARCHITECTURE: - Describe the overall page structure using semantic HTML5 elements - Identify CSS Grid vs Flexbox usage for each section 3. COMPONENT SPECIFICATIONS: For each unique component, provide: - Semantic HTML structure - CSS layout method - All visual states (default, hover, focus, active, disabled) - Exact dimensions and spacing - Animation/transition properties 4. RESPONSIVE BEHAVIOR: - Describe how the layout adapts (even if only desktop is shown) - Note which elements stack, hide, or resize - Identify touch targets that need enlarging on mobile 5. ACCESSIBILITY REQUIREMENTS: - Color contrast ratios for text/background combinations - Interactive element sizes (minimum 44x44px touch targets) - Focus indicator styles - Screen reader considerations for decorative elements Format as a structured spec that includes both the visual description AND implementation notes. Flag any ambiguous design decisions that need clarification. ``` Next, give Warp the right prompt to start the code implementation: ``` Using this design specification, build a responsive React component with Tailwind CSS: Requirements: - Create reusable components for each element in the spec - Use CSS variables for the design tokens - Implement all interactive states - Ensure mobile-first responsive design - Add proper semantic HTML and ARIA labels - Include Framer Motion for any animations mentioned - Match the spacing system exactly using Tailwind's spacing scale Create a pixel-perfect implementation that matches the original design. ``` {% endstep %} {% step %} **Validate and Iterate** Warp outputs component files and layout structure.\ You can review spacing, font weights, and responsive behavior directly in preview. If details feel off, prompt again with clarifications like: ``` Tighten vertical spacing between header and subtext. ``` {% endstep %} {% step %} **Recap** You’ve learned how to: * Prompt AI for structured UI specs * Generate React + Tailwind implementations * Iterate visually for design parity > Treating the AI like a teammate — not a tool — yields interfaces that finally match your vision. > {% endstep %} > {% endstepper %} --- # Source: https://docs.warp.dev/university/developer-workflows/devops/how-to-analyze-cloud-run-logs-gcloud.md # How to: Analyze Cloud Run Logs (gcloud) Learn how to use Warp to retrieve, organize, and analyze production logs from your cloud servers — all with natural language prompts. {% embed url="" %} {% stepper %} {% step %} **Setting the Context** Open Warp and enable **voice input** (optional) for hands-free prompting. {% hint style="info" %} Voice input is optional — only enable it if you prefer hands-free prompting. {% endhint %} **Prompt** ``` Use the warp-server-staging gcloud project and pull logs for the last 10 minutes from the warp-server Cloud Run instance. Organize them by info, warning, and error levels. Create a histogram across message types, and highlight the most concerning errors to investigate. ``` {% endstep %} {% step %} **Warp’s Agent in Action** After you hit Enter: * Warp detects the command as an **Agent Mode** request. * It gathers project context (`warp-server-staging`). * Executes the necessary `gcloud` logging queries automatically. * Writes retrieved data to a temporary file for processing. {% endstep %} {% step %} **Automated Analysis** Warp’s agent generates a **Python script** on the fly to: * Parse logs * Count messages by severity * Output summary metrics Example output: ``` 1,000 log entries total 980 info 11 warning 9 errors ``` You can view or fast-forward execution, or stop the process at any point. {% endstep %} {% step %} **Reviewing Results** Warp outputs a readable histogram and highlights anomalies.\ For example: > “Gemini AI error messages detected — worth reviewing.” You can expand each log group interactively or inspect the temporary Python code for debugging. {% endstep %} {% endstepper %} --- # Source: https://docs.warp.dev/university/developer-workflows/power-user/how-to-configure-yolo-and-strategic-agent-profiles.md # How To: Configure YOLO and Strategic Agent Profiles {% hint style="info" %} This tutorial explains how **Agent Profiles** in Warp influence behavior, autonomy, and planning when coding with AI — demonstrated through the NFL Predictor app example. {% endhint %} {% embed url="" %} {% stepper %} {% step %} **Define the Project** I want to create an app that scrapes **NFL data** from the past decade, processes stats like team scores and player performance, and predicts future wins. The prompt specifies: * Data sources and constraints * Dependencies and CLI commands * Implementation details and deliverables {% code overflow="wrap" %} ``` Role & Goal You are my AI coding copilot inside Warp. Create a production-ready Python project that ingests 2015–2025 NFL data to power future win projections. Specifically: acquire week-level player and team stats, acquire game schedules + final scores (to determine weekly winners), and assemble a clean analytics dataset I can build models on later. Prefer stable/public data sources over brittle HTML scraping. Where scraping is unavoidable, respect robots.txt, add rate-limiting, and make scraping pluggable/optional. Primary data sources: nflverse/nflreadr static files for weekly player stats and schedules (CSV/Parquet over HTTPS). Tech constraints: Python 3.11+, no notebooks in the main flow. Deterministic, idempotent pipelines. Strong typing (pydantic) + docstrings. Parquet as the storage format; small sample CSVs for quick checks. CLI via Typer (warp run … friendly). Logging (structlog), retry/backoff (tenacity), polite rate-limits. Zero secrets required for core pipeline. Deliverables: A fully initialized repo with the scaffold above. Implemented CLI + modules to download/ingest 2015–2025 data, compute/normalize fantasy PPR, produce winners by week, and write Parquet outputs. One sample run in the README showing commands and example output counts. If successful, run full 2015–2025. Print a summary table (by season: games, players, weeks) at the end. ``` {% endcode %} {% endstep %} {% step %} **Configure the Strategic Agent** **Base Model:** GPT‑5 (for reasoning)\ **Planning Model:** Claude 4 Opus (for detailed breakdowns) | Action | Permission | | ---------------- | ------------- | | Apply code diffs | Agent decides | | Read files | Agent decides | | Create plans | Always allow | | Execute commands | Always ask | Behavior: * The agent starts by asking clarifying questions: > “Do you want me to scrape both player stats and schedules or just one first?”\ > “Where should raw data be stored — locally or in a database?” * It builds a **14-step plan** covering setup, dependencies, validation modules, and pipelines. * When the agent requests NFL schedule URLs, the chosen source returns 404 errors. * Execution halts — showing that the **Strategic** profile prioritizes verification over progress. {% endstep %} {% step %} **Configure the YOLO Agent** **Permissions:** | Action | Permission | | ------------------------ | ------------ | | Apply diffs / read files | Always allow | | Create plans | Never | | Execute commands | Always allow | Behavior: * The YOLO agent skips detailed planning. * It produces a **10-step plan** that covers essentials only: * Initialize project * Build CLI * Ingest player data * Compute scores and transformations * Instead of using unstable schedule URLs, it focuses on reliable player endpoints — completing a functional data pipeline. {% endstep %} {% step %} **Compare Outcomes** {% endstep %} {% endstepper %} | Aspect | Strategic Agent | YOLO Agent | | ----------- | ----------------------- | -------------------------------------- | | Planning | Detailed (14 steps) | Minimal (10 steps) | | Interaction | Clarifications required | Autonomous | | Speed | Slower due to checks | Faster iteration | | Output | Stalled on invalid URLs | Working player dataset + summary table | --- # Source: https://docs.warp.dev/university/developer-workflows/devops/how-to-create-a-production-ready-docker-setup.md # How To: Create a Production Ready Docker Setup Learn how to use Warp’s AI to automatically build a clean, multi-stage Docker setup for both development and production. {% embed url="" %} This tutorial shows how to create a **complete Docker environment** in minutes using Warp.\ Warp’s AI can analyze your entire codebase, generate **Dockerfiles**, **.dockerignore**, and **docker-compose.yml** — all optimized for small image size and multi-service orchestration. Although this example uses a generic web app, the same pattern applies to **Python**, **Node.js**, **Go**, and other ecosystems. {% stepper %} {% step %} **The Challenge** You’ve built your app and suddenly realize — it should have been containerized from the start.\ Manually configuring Docker files, image sizes, and environment variables takes time and breaks flow. {% endstep %} {% step %} **The Prompt** Use this prompt inside Warp’s AI input: {% code overflow="wrap" %} ``` "Analyze my entire project directory structure, package files, and configuration to generate a complete production-ready Docker setup. I need: A multi-stage Dockerfile optimized for my specific language/framework with proper layer caching, security best practices, and minimal image size A docker-compose.yml for both development and production environments with all necessary services, networks, volumes, and environment variable handling A comprehensive .dockerignore file that excludes unnecessary files but keeps what's needed for the build Startup scripts and health check configurations Documentation explaining each Docker command and why specific choices were made Please detect my project type automatically and configure everything accordingly. Include comments explaining the optimization decisions." ``` {% endcode %} Warp will detect frameworks, infer services, and produce a ready-to-run setup. {% endstep %} {% step %} **Review and Customize** Warp outputs: * Optimized base images * Cached build layers * Correct dependency stages * Unified environment management You can easily adjust service names or ports in the generated compose file. {% endstep %} {% endstepper %} --- # Source: https://docs.warp.dev/university/developer-workflows/backend/how-to-create-priority-matrix-for-database-optimization.md # How To: Create Priority Matrix for Database Optimization Learn how to generate a data-driven optimization matrix that ranks database issues by impact, risk, and effort. {% embed url="" %} {% stepper %} {% step %} **Intro** This tutorial teaches you how to prompt Warp to audit and optimize your **database performance** automatically. It analyzes SQL queries, identifies common inefficiencies, and generates a **priority matrix** for improvements. {% endstep %} {% step %} **The Problem** When you tell AI to “optimize a query,” that could mean *anything* — faster, safer, or simpler.\ Instead, use Warp to clarify intent and return measurable outcomes. {% endstep %} {% step %} **The Prompt** Paste this into Warp’s AI input: {% code title="Warp prompt" %} ```` # **Comprehensive Database Query Analysis and Optimization Guide** This guide provides a structured, repeatable approach for analyzing, profiling, and optimizing database performance within your application. --- ## **PHASE 1: Query Discovery & Cataloging** ### **Step 1 — Identify All Queries** Scan the entire codebase and locate every SQL or ORM-based query. This includes: - All **raw SQL queries**, including stored procedures - **ORM-generated queries** (capture the actual SQL being produced) - **Dynamic query builders** and their permutations - **Background job queries** that may run at scale - **Admin or reporting queries** that could lock tables ### **Step 2 — Document Key Details** For each query discovered, record the following: - **File location and function name** - **Frequency of execution** (per request, batch job, or cron schedule) - **Typical data volume processed** --- ## **PHASE 2: Performance Analysis** For each identified query, generate and analyze a detailed **execution plan**. ### **Execution Plan Commands** ```sql -- PostgreSQL EXPLAIN (ANALYZE, BUFFERS, FORMAT JSON); -- MySQL EXPLAIN FORMAT=JSON; ``` ### **Extract the Following Metrics** - Total execution time - Rows examined vs. rows returned ratio - Index usage (full table scans, index scans, seeks) - Join methods (nested loop, hash, merge) - Memory usage and temporary file creation - Buffer pool hit ratio --- ## **PHASE 3: Identify Specific Problems** ### **1. N+1 Query Detection** **Problem:** Loading users and their posts separately **Found in:** `/api/users/controller.js:45` **Impact:** 100 queries for 100 users instead of one batched query #### **Current Implementation** ```js const users = await db.query('SELECT * FROM users'); for (const user of users) { user.posts = await db.query('SELECT * FROM posts WHERE user_id = ?', [user.id]); } ``` #### **Optimized Version** ```js const usersWithPosts = await db.query(` SELECT u.*, COALESCE(json_agg(p.*) FILTER (WHERE p.id IS NOT NULL), '[]') AS posts FROM users u LEFT JOIN posts p ON p.user_id = u.id GROUP BY u.id; `); ``` --- ### **2. Missing Index Analysis** **Finding:** Full table scan on `orders` table (2M rows) **Query:** ```sql SELECT * FROM orders WHERE status = 'pending' AND created_at > ?; ``` **Recommendation:** ```sql CREATE INDEX idx_orders_status_created ON orders(status, created_at); ``` **Impact:** Query time reduced from **3.2s → 0.045s** --- ### **3. Inefficient JOIN Patterns** **Problem:** Queries join through unnecessary intermediate tables. **Solution:** Simplify relationships using direct joins or indexed subqueries where possible. --- ### **4. Subquery Optimization** **Inefficient Query:** ```sql SELECT * FROM products WHERE price > (SELECT AVG(price) FROM products WHERE category_id = p.category_id); ``` **Optimized (Using Window Function):** ```sql WITH product_stats AS ( SELECT *, AVG(price) OVER (PARTITION BY category_id) AS avg_category_price FROM products ) SELECT * FROM product_stats WHERE price > avg_category_price; ``` --- ## **PHASE 4: Advanced Optimizations** ### **Caching Strategies** Use caching for: - User-specific data with low update frequency - Expensive aggregations that can be pre-computed #### **Implementation** ```js // Add caching layer with TTL const getCachedOrQuery = async (key, query, ttl = 3600) => { const cached = await redis.get(key); if (cached) return JSON.parse(cached); const result = await db.query(query); await redis.setex(key, ttl, JSON.stringify(result)); return result; }; ``` --- ### **Recommended Connection Configuration** ```json { "connectionLimit": 50, "queueLimit": 100, "acquireTimeout": 30000, "waitForConnections": true, "idleTimeout": 300000, "enableKeepAlive": true, "keepAliveInitialDelay": 10 } ``` --- ### **Batch Operation Optimization** **Problem:** Records are inserted one by one **Found in:** `/jobs/import-data.js` **Current Implementation:** 1000 individual `INSERT` statements **Optimized:** ```sql INSERT INTO users (name, email, created_at) VALUES ($1, $2, $3), ($4, $5, $6), ... -- batch in groups of 1000 ``` --- ### **Pagination Optimization** ```sql SELECT * FROM posts WHERE created_at < $cursor ORDER BY created_at DESC LIMIT 20; ``` --- ## **PHASE 5: Monitoring & Maintenance** ### **1. Slow Query Logging Setup** #### **PostgreSQL** ```sql ALTER SYSTEM SET log_min_duration_statement = '1000'; -- Log queries over 1s ALTER SYSTEM SET log_statement = 'all'; ALTER SYSTEM SET log_duration = on; ``` #### **MySQL** ```sql SET GLOBAL slow_query_log = 'ON'; SET GLOBAL long_query_time = 1; SET GLOBAL log_output = 'TABLE'; ``` --- ### **2. Query Performance Testing** ```js describe('Query Performance', () => { test('User listing should complete under 100ms', async () => { const start = Date.now(); await db.query('SELECT * FROM users LIMIT 1000'); expect(Date.now() - start).toBeLessThan(100); }); }); ``` --- ## **PHASE 6: Deliverables** ### **Deliverable Outputs** - **Optimization Script:** A single SQL file with all index creations, ordered by performance impact. - **Code Changes PR:** Includes all query optimizations with before/after comparison results. ### **Performance Report** - Baseline metrics vs. optimized metrics - Expected resource savings (CPU, memory, I/O) - Risk assessment for each change ### **Monitoring Dashboard** Define recurring queries to track query performance over time. --- ## **PRIORITY MATRIX** Rank each optimization by: - **Impact:** Query frequency × time saved - **Risk:** Low / Medium / High - **Effort:** Quick fix / Moderate / Complex refactor > Focus on **high-impact**, **low-risk**, **low-effort** items first. --- ### **Summary** This workflow ensures the AI: 1. Systematically identifies all queries 2. Analyzes them using database-specific profiling tools 3. Provides **actionable, tested solutions** 4. Considers the full application context 5. Delivers **implementation-ready optimizations** ```` {% endcode %} Warp will locate all SQL usage, test each query, and score them using explain-plan data. {% endstep %} {% step %} **Review the Matrix** The output includes: * Query locations * Performance metrics * Recommended fixes * A **graph** mapping impact vs effort {% endstep %} {% endstepper %} {% hint style="warning" %} A well-tuned database is the heart of your web stack — don’t skip it. {% endhint %} --- # Source: https://docs.warp.dev/university/developer-workflows/beginner/how-to-create-project-rules-for-an-existing-project-astro-+-typescript-+-tailwind.md # How To: Create Project Rules for an Existing Project (Astro + Typescript + Tailwind) {% hint style="info" %} This educational module is built **only** from the transcript. It shows how to create and maintain a `Warp.md` file so Warp agents always understand your project’s setup, commands, architecture, and structure. {% endhint %} {% embed url="" %} *** ## What Project Rules Are A **Project Rules** file (`Warp.md`) acts as your project’s AI onboarding guide. Instead of re‑explaining your setup on every prompt, you document it once and Warp will always have that context. The transcript demo walks through creating the file, opening it in a side editor, and organizing it with standard Markdown headings for clear sections. *** ## Generate `Warp.md` Run the following **verbatim** prompts in Warp to create and verify your rules file, then open it in the editor: ``` /init ``` ``` /open-project-rules ``` * `/init` generates a starter `Warp.md` in your project root. * `/open project rules` opens it in a side editor where you can scroll and edit the content. You'll get something that looks like this: ````markdown # WARP.md This file provides guidance to WARP (warp.dev) when working with code in this repository. ## Project Overview Share Your Brewfiles is an Astro-based website that allows developers to share and discover their Homebrew package lists (Brewfiles). The platform generates personality profiles based on package usage patterns and provides a leaderboard of popular packages. ## Core Architecture * **Frontend**: Astro 4 with React 18 components, TypeScript, and Tailwind CSS * **Backend**: Astro API routes with Firebase integration * **Database**: Firebase Firestore for storing brewfiles, user data, and personality summaries * **Deployment**: Vercel with serverless functions * **Styling**: Custom Tailwind configuration with dark theme and gradient animations ## Key Components ### API Routes (`src/pages/api/`) * `getBrewfiles.json.ts` - Retrieves all brewfiles or a specific brewfile by ID, triggers personality generation * `uploadBrewfile.ts` - Handles brewfile uploads with GitHub OAuth integration * `getRankedPackages.json.ts` - Generates leaderboard data for popular packages * `updatePersonality.ts` - Updates personality summaries for users * `exchangeCodeForAccessToken.ts` - GitHub OAuth token exchange * `logSearch.json.ts` - Analytics for search functionality ### Core Library Functions (`src/lib/`) * `generatePersonality.ts` - Complex algorithm that analyzes brewfile packages and assigns personality types (15 different personalities) * `personalityBuckets.ts` - Defines personality type metadata and descriptions * `validateBrewfileData.ts` - Data validation for brewfile uploads * `totalBrewData.ts` - Aggregates package statistics for leaderboards ### Type System (`src/types/`) * `brews.ts` - Main data structures for brewfiles, users, and entries * `personality.ts` - Personality analysis types and enums * `packageEntry.ts` - Package metadata structures ## Development Commands ### Setup ```bash # Install dependencies npm install # Set up environment (Firebase config is public but consider security) # No additional env setup needed for development # Development server npm run dev ``` ### Development Workflow ```bash # Start development server with Astro npm run dev # Build for production npm run build # Preview production build npm run preview # Run Astro CLI commands npm run astro ``` ### Testing API Endpoints ```bash # Test brewfile retrieval curl "http://localhost:4321/api/getBrewfiles.json" # Test specific brewfile by ID curl "http://localhost:4321/api/getBrewfiles.json?id=DOCUMENT_ID" # Test package rankings curl "http://localhost:4321/api/getRankedPackages.json" ``` ## Architecture Notes ### Personality Generation System The core feature analyzes brewfile packages against a curated dictionary (`labelledBrewfiles.ts`) that categorizes packages by: - Developer type (Backend, Frontend, DevOps, Security, Data, General) - Package characteristics (AI tools, organization tools, customization, popularity rank) - Legacy/modern status The system calculates percentage distributions and applies complex rules to assign one of 15 personality types (Minimalist, Golden Retriever, Pragmatist, Trendy, AI, Architect, Artist, Traditionalist, Retro, Bob the Builder, Marie Kondo, Crazy Scientist, Trailblazer, Security, Wallflower). ### Firebase Integration - Uses Firestore for data persistence - Collection: `brewfiles` stores user brewfiles with personality summaries - Real-time personality generation happens asynchronously after uploads - GitHub OAuth integration for user authentication ### Path Alias System Uses TypeScript path mapping with `@/*` pointing to `./src/*` for clean imports. ### Astro Configuration - Server-side rendering with Vercel adapter - React integration for interactive components - Sitemap generation for SEO - Prefetch enabled for performance ## Development Environment Setup ### Prerequisites - Node.js (version compatible with Astro 4) - Access to Firebase project (config is in source but consider security implications) - GitHub OAuth app for testing upload functionality ### Local Development Notes - The site uses server-side rendering so API routes work in development - Firebase config is currently in source code - be aware of security implications - GitHub OAuth integration requires valid access tokens for uploads - Personality generation is computationally expensive with large datasets ### Custom Tailwind Configuration - Dark theme with custom color palette (`bkg: #111111`) - Custom accent colors (teal, orange, green, pink, blue variants) - Marquee animations for scrolling elements - Responsive typography with fluid scaling - Container queries support ## File Structure Navigation ``` src/ ├── pages/ │ ├── api/ # Astro API routes (serverless functions) │ ├── index.astro # Homepage with hero and marquee │ ├── brewfiles.astro # Search and browse brewfiles │ └── leaderboard.astro # Package popularity rankings ├── components/ # Astro and React components ├── lib/ # Core business logic and utilities ├── types/ # TypeScript type definitions ├── data/ # Static data and package dictionaries └── firebase/ # Firebase configuration ``` ## Common Development Tasks ### Adding New Personality Types 1. Update `DeveloperPersonalityType` enum in `src/types/personality.ts` 2. Add detection function in `src/lib/generatePersonality.ts` 3. Update `personalityBuckets.ts` with new personality metadata 4. Add corresponding image to `public/images/` ### Modifying Package Analysis - Update `labelledBrewfiles.ts` to modify package categorization - Adjust percentage thresholds in personality detection functions - Test with different brewfile compositions ### API Route Development - All routes in `src/pages/api/` become serverless functions on Vercel - Use `export const prerender = false;` for dynamic routes - Handle errors consistently with try/catch blocks ```` *** ## Keep the File Lean and Intentional {% stepper %} {% step %} **Start Lean** Everything in `warp.md` is **prepended to your prompt**. A longer file consumes more tokens and can increase compute cost. Keep only what truly matters. {% endstep %} {% step %} **Iterate and Maintain** Start with `/init` boilerplate, then treat the file as a **living document**. Add the rules that help your team ship faster (e.g., branching, PR guidelines) and prune anything redundant. {% endstep %} {% endstepper %} {% hint style="warning" %} If the file grows large (e.g., **500+ lines**), run it through a **prompt optimizer** to catch duplication, remove overlaps, and slim it down — exactly as advised in the transcript. {% endhint %} *** ## Use Sub‑directory Rules for Monorepos For large repos, you can generate localized rule files in sub‑trees. Navigate into a subfolder and run `/init` again to create a **directory‑scoped `Warp.md`** tailored to that area: {% hint style="success" %} Going forward, when you give Warp a task, it will carry this context automatically — no re‑explaining needed. {% endhint %} --- # Source: https://docs.warp.dev/university/developer-workflows/beginner/how-to-customize-warps-appearance.md # How to: Customize Warp's Appearance {% embed url="" %} Warp is highly customizable — from appearance and keyboard shortcuts to agent behavior and autonomy.\ \ Here’s a quick walkthrough of how to make Warp feel like *your* development environment. *** ### 1. Changing Themes Open the **Command Palette** with: * `Cmd + P` (Mac) * `Ctrl + Shift + P` (Windows/Linux) Type **“themes”** to open the theme picker. You can preview and apply any theme instantly — for example, switching from the default theme to *Phenomenon*. *** ### 2. Adjusting Input Placement Warp’s **input bar** can live in three different positions: 1. **Bottom-pinned** — chat-style; commands flow upward. 2. **Scrolling input** — traditional terminal style; input stays near the bottom as output moves up. 3. **Top-pinned** *(Warp-exclusive)* — input stays fixed at the top; results appear below. *** ### 3. Managing AI & Agent Settings Open **Settings → AI** to control: * Which **model** Warp uses (e.g., Claude 3.5 for code generation, GPT-4o for planning). * How much **autonomy** agents have for: * Reading files * Generating diffs * Running commands * Planning tasks You can also whitelist or block specific commands that always require confirmation. *** ### 4. Indexing Your Codebases Warp prompts you to index your codebase the first time you `cd` into it.\ Indexing enables faster: * Code navigation * Summaries and searches * Refactors and bug fixes You can also manually re-index a folder from the sidebar anytime. *** ### 5. Team Collaboration In the Teams tab, you can: * Invite teammates * Share Warp Drive assets like prompts, templates, and environment variables This makes Warp a shared, contextual workspace — not just an individual tool. *** ### 6. Look & Feel Under Appearance, you can tweak: * Fonts * App icons * Padding and editor density * VIM mode for command editing * Custom key bindings --- # Source: https://docs.warp.dev/university/developer-workflows/power-user/how-to-edit-agent-code-in-warp.md # How to: Edit Agent Code in Warp Warp lets you see, edit, and refine AI-generated code diffs directly within the app.\ This makes debugging and bug-fix workflows fast, transparent, and interactive. {% embed url="" %} *** ### 1. Starting an Agent Task When you start an agent task, Warp: 1. Uses your prompt and context 2. Builds a task list 3. Searches across your codebase using tools like: * Grep * Codebase embeddings * Semantic search Warp shows progress step-by-step, including what it’s searching and which files are being modified. *** ### 2. Reviewing Diffs Warp generates diffs for every proposed change.\ You can: * Accept changes * Refine them with a follow-up prompt (`Cmd + R`) * Or directly edit the code in the inline editor view This editor view works like a lightweight IDE — perfect for quick corrections before applying. *** ### 3. Applying or Skipping Changes Once you’re happy with a diff: * Click Apply Changes to accept it * Or Fast-Forward to let Warp automatically continue the rest of the fix sequence You can control this level of autonomy globally in Settings → AI → Autonomy. *** ### 4. Compiling and Verifying Fixes After applying changes, you can immediately test your build, like: ```bash cargo run ``` Warp monitors compilation, verifies results, and runs post-checks automatically. *** ### 5. Visual Verification In this example, the bug involved a checkbox not being honored in the UI.\ \ After the agent’s fix: * The checkbox logic now works as intended * The model picker toggles correctly * The UI behaves as expected --- # Source: https://docs.warp.dev/university/developer-workflows/beginner/how-to-explain-your-codebase-using-warp-rust-codebase.md # How to: Explain Your Codebase Using Warp (Rust Codebase) Learn how to use Warp’s AI agent to explore and understand large, unfamiliar codebases — using semantic and symbol-level search. {% embed url="" %} *** ## Overview This walkthrough shows: * How Warp explains unknown sections of code * How it combines semantic and keyword searches * How to use these insights to modify UI components *** {% stepper %} {% step %} **Prompt** {% code title="prompt.txt" %} ``` Please explain how the agent popup code is structured, where it lives in the codebase, and how it is rendered and called. I want to understand the full data flow and structure so I can add a new agent button to it. ``` {% endcode %} {% endstep %} {% step %} **How Warp’s Agent Searches** Warp begins by using **semantic (vectorized) search** to locate relevant files.\ Once it finds probable matches (e.g., `agent_management_popup.rs`), it switches to **symbolic search** (`grep` and direct code reads). Warp intelligently reads large files (splitting them into smaller chunks) to extract relevant definitions and render logic. {% endstep %} {% step %} **Generated Explanation** Warp returns a full breakdown: * File paths where the popup is defined * How it’s rendered within the workspace * Which actions and UI components trigger it * A step-by-step view of data flow through the popup component {% endstep %} {% endstepper %} --- # Source: https://docs.warp.dev/university/developer-workflows/testing-and-security/how-to-generate-unit-and-security-tests-to-debug-faster.md # How to: Generate Unit and Security Tests to Debug Faster Learn how to prompt Warp’s AI to generate useful unit and security tests — helping you debug faster and deploy with confidence. {% embed url="" %} *** {% stepper %} {% step %} **The Problem** Building REST APIs involves a lot of overhead: validation, testing, and security.\ Most “auto-generated tests” from AI end up generic and incomplete — leaving gaps in reliability. To solve this, Warp lets you run **precise, context-aware test generation** using better-structured prompts. {% endstep %} {% step %} **The Prompt** Paste this into Warp’s AI input:
After implementing this API code, generate comprehensive unit tests and security tests to verify everything works correctly and securely:

1. Unit tests for each function / method

Core functionality
- Happy path with valid inputs -> expected output
- Each edge case (empty inputs, nulls, boundary values)
- Error handling for invalid inputs
- Return value types and structure
- Edge cases: empty strings, null/undefined, max values, special characters

2. SECURITY TESTS FOR EACH ENDPOINT

For every API endpoint, create security tests that check:

Input validation
Test with these malicious payloads in every user input field:

SQL Injection: " ' OR '1' = '1', "1; DROP TABLE users--", "admin'--"
NoSQL Injection: {"$gt": ""}, {"$ne": null}
Command Injection: "; ls -la", "| whoami", "$(cat /etc/passwd)"
Path Traversal: "../../../etc/passwd", "..\..\..\windows\system32"
XSS: "<script>alert('XSS')</script>", "javascript:alert(1)"
XXE (for XML): "<!DOCTYPE foo [<!ENTITY xxe SYSTEM 'file:///etc/passwd'>]>"

**Authentication Tests:**
- No token/credentials → Must return 401
- Invalid token → Must return 401
- Expired token → Must return 401
- Valid token for wrong user → Must return 403
- Token with insufficient permissions → Must return 403

**Authorization Tests:**
- User A trying to access User B's data → 403
- Regular user accessing admin endpoints → 403
- Deleted/disabled user token → 401
- Verify all role-based access controls work

**Additional Security Checks:**
- Rate limiting works (spam 100 requests → 429 response)
- Large payloads are rejected (>1MB unless specified)
- Sensitive data not exposed in errors
- Headers don't leak server info
- CORS properly configured

3 After running all tests, ensure:
✓ All unit tests pass
✓ 100% of functions have tests
✓ All security tests pass
✓ No SQL/NoSQL injection vulnerabilities
✓ Authentication is properly enforced
✓ Authorization rules are working
✓ Input validation catches malicious data
✓ Error messages don't expose sensitive info

4. Output Format

Generate 2 test files:
1. Unit_tests.[ext] - all functional tests
2. security_tests.[ext] - all security tests

Use simple assertions that clearly show:
- What is being tested
- What the expected behavior is
- Why this test matters

Keep these tests simple and focused - each test should verify ONE thing


{% endstep %} {% step %} **Add to Rules File** Once you’ve validated the prompt, add it to your Warp Rules file so Warp can automatically reuse it. ``` Name: Run tests after writing Rule: run pytest mapp/tests to validate if the code you inserted works ``` Warp will then run these tests as a source of truth — deciding whether new AI-generated code is safe to merge or deploy. {% endstep %} {% step %} **Recap** {% hint style="success" %} You’ve learned how to: * Prompt for **specific test coverage** * Automate your **unit and security tests** * Use Warp’s **Rules** feature for validation Small change in prompt structure — big jump in reliability. {% endhint %} {% endstep %} {% endstepper %} --- # Source: https://docs.warp.dev/university/developer-workflows/beginner/how-to-make-warps-ui-more-minimal.md # How to Make Warp’s UI More Minimal {% embed url="" %} ### 1. Start with the Command Palette Open the Command Palette: * Mac: `Cmd + P` * Windows/Linux: `Ctrl + Shift + P` From here, type “Disable” to see a full list of UI toggles.\ Warp will surface options that let you quickly hide features and visual elements. *** ### 2. Key UI Toggles to Disable #### Inline & AI Features * Disable Auto Suggestions → removes inline code hints. * Disable Active AI → hides the ghost prompt that suggests agent queries. * Disable Completion Menu → prevents popup completions from appearing. * Disable Voice Input → hides the microphone icon. #### Interface & Layout * Disable Block Dividers → removes the horizontal lines between commands. * Disable Tab Indicators → hides the colored status markers across your tab bar. * Disable Dimming Inactive Panes → keeps all split panes at equal brightness. * Disable VIM Status Bar → removes the VIM indicator if you’re not using VIM mode. *** ### 3. Choose a Simpler Theme Visual noise can come from colors too.\ Try switching to a calmer theme from the Command Palette: 1. Open the palette again (`Cmd + P`) 2. Type “Theme” 3. Pick one with softer tones — for example: * Adeberry → calm, gray, minimal aesthetic * Classic Dark → familiar and focused A consistent neutral palette makes Warp feel lighter and easier on the eyes. *** ### 4. Switch to the Classic Prompt Warp’s Universal Prompt is great for AI workflows — it supports: * Slash commands * Voice input * Image context * Agent Mode But if you just want a terminal that behaves like a classic shell, switch to the Classic Prompt: 1. Open the Command Palette → search “Prompt” 2. Choose Classic Prompt 3. (Optional) Open the Prompt Customizer to toggle chips: * Keep only what you need (e.g., file path) * Hide everything else (branch name, context icons, etc.) This instantly gives Warp a retro, text-first look — no clutter, no distractions. *** ### 5. Reduce Tab Bar Visibility You can make the tab bar appear only when you hover: * Open the Settings → Appearance * Enable “Show Tabs on Hover” This keeps your workspace focused while still letting you access tabs when needed. --- # Source: https://docs.warp.dev/university/developer-workflows/beginner/how-to-master-warps-code-review-panel.md # How To Master Warp's Code Review Panel {% embed url="" %} ### 1. Why Use the Code Review Panel Warp’s Code Review Panel helps you stay focused while coding by showing all active file diffs, additions, and deletions — without leaving your workspace. *** ### 2. Start with a Coding Task The app has a UI issue: the hover text is black on dark gray, making it unreadable. Warp’s agent generates diffs with proposed fixes — but for larger projects, scrolling through them is inefficient. *** ### 3. Opening the Code Review Panel Click: * View Changes (top-left), or * The Dirty Chip in your input bar This opens the Code Review Panel — available only when inside a Git repo. The panel shows: * Changed files * Lines added/deleted * File-by-file diff summaries *** ### 4. Editing and Reviewing Code You can open any file directly from the panel in Warp’s **built-in editor**: * Syntax highlighting * Find & replace * Inline editing Save changes — and they’ll reflect instantly in the diff view. *** ### 5. Componentizing Changes Want that same hover fix across the app?\ Prompt Warp to componentize the hover style. Attach the recent diff as context so Warp can generalize it.\ The agent then creates a `Tooltip` component that reuses your schema everywhere. *** ### 6. Reviewing and Committing Once the fix looks correct: * Review in the code panel * Commit directly from Warp * Watch the panel reset to its “no changes” state You can also click to compare your branch against `main` instantly. --- # Source: https://docs.warp.dev/university/developer-workflows/testing-and-security/how-to-prevent-secrets-from-leaking.md # How To: Prevent Secrets from Leaking Learn how to safeguard credentials and sensitive data using Warp’s secret-reduction and Rule system. {% embed url="" %} This tutorial shows how to use Warp’s **Rules** to prevent AI agents or collaborators from exposing sensitive information while coding or sharing output. Whether you’re pair-programming, streaming, or reviewing code, Warp can automatically redact secrets before they’re ever seen by an agent. {% stepper %} {% step %} **The Problem** AI assistants often echo API keys, tokens, or credentials in generated code blocks.\ When collaborating or screen-sharing, that can expose secrets publicly. {% endstep %} {% step %} **The Rule Setup** Define a simple Rule in Warp that instructs the agent to **never display secrets** in outputs or commands. {% code title="Example Rule" %} ``` Rule: Protect Secrets Behavior: - Never include or reveal secrets when generating code or commands. - Automatically redact sensitive strings before showing output. ``` {% endcode %} {% hint style="info" %} Enable Warp’s built-in Secret Reduction: Settings → AI → Enable Secret Reduction This automatically masks sensitive values before the agent or output logs can access them. {% endhint %} {% endstep %} {% step %} **Benefits** * Protects API keys and credentials from exposure * Keeps live streams and demos safe * Works seamlessly with pair-programming or AI debugging {% endstep %} {% endstepper %} --- # Source: https://docs.warp.dev/university/developer-workflows/frontend-ui/how-to-replace-a-ui-element-in-warp-rust-codebase.md # How To: Replace A UI Element in Warp (Rust Codebase) Learn how to use Warp’s AI coding features to make live code changes — in this example, replacing an icon throughout Warp’s massive Rust codebase using an agentic workflow. {% embed url="" %} {% hint style="info" %} This demo showcases Warp’s ability to safely make intelligent code changes within a multi-million-line codebase by providing structured prompts, reviewing diffs in real time, and letting the agent compile and self-correct. {% endhint %} {% stepper %} {% step %} **Define the Task** The goal here is to replace all instances of the **sparkle icon** with the new **agent icon**, especially within the history menu. Open your project in Warp and start by prompting the agent directly (either by typing or speaking): ``` Please create a new branch for me according to the format in the attached Linear URL. I’ve attached screenshots of what the agent mode and sparkle icons look like. I would like you to understand those icons, search for their use in the code, and wherever we’re using sparkles, replace them with the agent mode icon. Specifically, make sure this happens in the history menu. Please give me a plan before making any coding changes. ``` Attach any relevant Linear issue links or screenshots to help the agent identify assets accurately. {% endstep %} {% step %} **Review the Plan** Warp’s agent parses your request and generates a plan for code edits.\ It identifies files and functions where the sparkle icon is used. If the plan looks correct, approve it to proceed. Follow-up prompt example: ``` Yes, proceed — and please rename the function from renderAISparklesIcon to something like renderAgentModeIcon. ``` Warp automatically updates function names, asset references, and component usage. {% endstep %} {% step %} **View AI Diffs in Real Time** Warp lets you view live diffs as the agent edits your files. * Diffs show changes to both render logic and function naming. * You can choose to auto-accept or manually review diffs. * These settings can be adjusted under AI Settings → Apply Changes Automatically. {% hint style="info" %} Note: The demo runs with “auto-accept” enabled, allowing Warp to apply diffs as soon as they’re validated. {% endhint %} {% endstep %} {% step %} **Compilation and Fixes** After editing, Warp’s agent runs: ```bash cargo check ``` to verify compilation. If compilation fails (e.g., missing imports), the agent automatically corrects and retries — mimicking a human debugging process. {% endstep %} {% step %} **Testing the Change** Once compiled: * Run your project locally to confirm visual changes. * Check that the agent icon now replaces the sparkle icon in all targeted locations. {% endstep %} {% step %} **Recap** Warp’s agent completed the full flow: 1. Understood a Linear ticket and visual context 2. Created a new branch 3. Planned and executed the icon replacement 4. Auto-fixed compile issues 5. Verified the final result in-app {% endstep %} {% endstepper %} --- # Source: https://docs.warp.dev/university/developer-workflows/power-user/how-to-review-prs-like-a-senior-dev.md # How To: Review PRs Like A Senior Dev Learn how to prompt Warp’s AI to review pull requests like an experienced engineer — focusing on structure, red flags, and clarity {% embed url="" %} *** {% stepper %} {% step %} **Intro** This tutorial teaches you how to use Warp to make **pull-request reviews faster and smarter**.\ Instead of relying on AI summaries, you’ll prompt Warp to generate an **index and priority list**, guiding your review order while flagging risky sections. Although this example focuses on large PRs, the same workflow applies to **code reviews**, **design docs**, or **feature diffs**. {% endstep %} {% step %} **The Problem** Large PRs are difficult to parse.\ AI summaries gloss over nuance and may miss subtle issues — you need structured, prioritized insight instead. {% endstep %} {% step %} **The Prompt** Use this in Warp’s AI input: {% code title="Prompt" %} ``` ## Prompt: Structured PR Review Format > Review this pull request and format your response for rapid scanning by a busy maintainer. Follow the structure below. --- ### 1. 🚨 Risk Assessment **Overall Risk:** 🔴 HIGH | 🟠 MEDIUM | 🟢 LOW **Complexity:** [Simple | Moderate | Complex | Very Complex] **Blast Radius:** [Isolated | Module-wide | System-wide | External APIs affected] **Requires Immediate Review:** [YES / NO – why] --- ### 2. 🔍 Critical Issues _If none, write “None found” and skip to the next section._ #### 1. [CRITICAL ISSUE TITLE] **File:** `path/to/file.js:L125` **Impact:** Data loss / Security hole / System crash **Fix:** // Quick code fix example here --- ### 3. ⚠️ Concerns _Should discuss or fix before merge. If none, write “None found.”_ **Examples:** - [PERFORMANCE] Unindexed query on large table - [SECURITY] Missing input sanitization in login form --- ### 4. 🎯 Maintainer Decision Guide **Merge confidence:** [0–100]% - □ Safe to merge after fixing blockers - □ Needs architecture discussion first - □ Requires performance testing - □ Get security team review - □ Author should split into smaller PRs **Time to properly review:** ~[X] minutes **Recommended reviewer expertise:** [Backend | Security | Database | Frontend] --- ### 5. 🧭 Formatting Rules - Use emoji headers for instant visual recognition - Keep sections short; if empty, say “None found” - Blockers get full detail, everything else stays concise - Include code examples only for blockers - Bold key impact/risk words - Use consistent prefixes like [SECURITY], [PERFORMANCE], [LOGIC] for easy scanning - If PR is genuinely fine, end with: ✅ “This PR is safe to merge as-is.” ``` {% endcode %} {% endstep %} {% endstepper %} --- # Source: https://docs.warp.dev/university/developer-workflows/power-user/how-to-run-3-agents-in-parallel-summarize-logs-+-analyze-pr-+-modify-ui.md # How To: Run 3 Agents in Parallel (Summarize Logs + Analyze PR + Modify UI) {% hint style="info" %} This educational module demonstrates Warp’s multi‑threading features — running coding, debugging, and analysis tasks simultaneously in multiple agent tabs. {% endhint %} {% embed url="" %} *** ### 🧠 Overview Warp allows you to launch several agents at once, each focused on a separate task.\ In the demo, we run three parallel workflows: * Modify UI behavior * Analyze team code reviews * Summarize logs from production {% stepper %} {% step %} **Launch Agents in Parallel** Each agent runs in its own tab. {% tabs %} {% tab title="UI Fix" %} Remove the background and border from unfocused input panes. {% code overflow="wrap" %} ``` I'd like to make a coding change. Please create a new branch to do this. What i want to do is for the Universal Developer Input, remove the border and background if it's being rendered in the same pane that is not focused. Please look at the reference file and at the attached screenshot. In the screenshot, you'll see what it looks like right now - there are two equally prominent input areas, even though one is focused and one is not. What I want to do is make the non-focused one not have a border and not have a background. Please check out this linear issue for more information. Also, give me a plan before you make any changes. ``` {% endcode %} {% endtab %} {% tab title="Code Review Check" %} Analyze how many pull requests a team member has assigned. {% code overflow="wrap" %} ``` Use the Github CLI tool to summarize all open PRs for review that are assigned to user. I'd like to see who is the author of the PR, when was it opened, how long has it been open for, which repo is it in, are there open an dunaddressed commens on it, and is it ready for review? ``` {% endcode %} {% endtab %} {% tab title="Log Analysis" %} Summarize Cloud Run logs by error severity. {% code overflow="wrap" %} ``` Use the gcloud tool to list all my open projects. Once you've done that, let me select a project. Once I've selected a project, we will want to see all the Cloud Run instances that are available. Then once I've picked a Cloud Run instance, I'd like to get a sumary of the last 2000 logs from that Cloud Run instance to see the history histogram of different types of logging on info, warning, and error levels. ``` {% endcode %} {% endtab %} {% endtabs %} {% endstep %} {% step %} **Monitor All Agents** The **task pane** in Warp shows all running agents.\ You can view plans, progress, and results live without interrupting other tasks. {% endstep %} {% step %} **Review Results** * **Coding Agent:** Implements UI fixes accurately. * **Code Review Agent:** Reports 26 open PRs (identifies bottlenecks). * **Log Agent:** Analyzes 1,000 log entries, categorizing errors and flagging Gemini API issues. {% endstep %} {% step %} **Why This Matters** Warp multi‑agent execution allows you to: * Run multiple tasks without context switching. * Keep coding, debugging, and ops visible simultaneously. * Use AI assistants collaboratively for faster iteration. {% hint style="success" %} Multi‑agent workflows let you debug, code, and analyze in parallel — boosting throughput without leaving the terminal. {% endhint %} {% endstep %} {% endstepper %} --- # Source: https://docs.warp.dev/university/developer-workflows/power-user/how-to-set-coding-best-practices.md # How To: Set Coding Best Practices Learn how to use Warp’s Rules to enforce coding style, documentation quality, and consistency across projects. {% embed url="" %} *** ## Intro This tutorial teaches you how to create coding Rules that make AI follow your team’s **best practices** automatically.\ \ By specifying formatting, style preferences, and documentation standards, Warp ensures consistent, high-quality code across your repositories. *** {% stepper %} {% step %} **The Problem** Developers often have different habits — formatting styles, TypeScript conventions, or comment quality.\ Without clear rules, AI-generated code can be inconsistent or hard to maintain. {% endstep %} {% step %} **The Rule Setup** Define Rules that enforce formatting, type preferences, and doc quality. **Example Rule** ``` Rule: Code Authoring Standards - Always format and check work before returning results. - Prefer `types` over `interfaces` in TypeScript. - Apply concise, human-readable JS Docs using the Hemingway test. ``` {% hint style="info" %} The **Hemingway test** ensures code comments are simple and clear — short sentences, active voice, and no unnecessary complexity. {% endhint %} {% endstep %} {% step %} **Benefits** * Encourages readable, maintainable code * Improves documentation clarity * Prevents style drift across AI contributions {% endstep %} {% endstepper %} --- # Source: https://docs.warp.dev/university/developer-workflows/power-user/how-to-set-coding-preferences-with-rules.md # How To: Set Coding Preferences with Rules Learn how to use Warp’s Rules feature to define your personal environment and tool preferences for every coding session. {% embed url="" %} This tutorial teaches you how to customize your development setup using **Warp’s Rules** — ensuring the AI agent always works in your preferred environment. Instead of constantly reminding it which package manager or environment to use, you can **store those preferences as persistent Rules** that apply automatically across projects. {% stepper %} {% step %} **The Problem** When using AI tools to write or modify code, they often default to outdated or undesired tools.\ For example, many agents still use **npm** instead of **pnpm** — or **pip** instead of **miniconda**. Warp fixes this by letting you define your preferences once, and then applying them automatically whenever your agent runs commands. {% endstep %} {% step %} **The Rule Setup** You can set Rules for how you want the AI to handle environments, dependencies, and commands. **Example Rule** {% code title="Example Rule" %} ``` Rule: Environment Preferences - Always use pnpm for Node.js projects unless the project already uses npm. - Default to miniconda for Python environments. - Use the Tauri CLI when building desktop apps. ``` {% endcode %} This ensures the agent automatically chooses the right package manager or environment — no extra prompts required. {% endstep %} {% step %} **Supported Use Cases** You can apply Rules to: * Package managers (e.g., npm → pnpm) * Environment tools (e.g., virtualenv → miniconda) * Framework defaults (e.g., Next.js over React) * CLI utilities or custom build tools {% endstep %} {% endstepper %} --- # Source: https://docs.warp.dev/university/developer-workflows/power-user/how-to-set-tech-stack-preferences-with-rules.md # How To: Set Tech Stack Preferences with Rules Learn how to guide Warp’s AI to use your favorite tech stack when scaffolding new apps or generating code. {% embed url="" %} *** ## Intro This tutorial walks you through teaching Warp’s AI your **preferred technologies** so it consistently uses the frameworks and stacks you care about. By setting up tech stack Rules, you make sure every new project follows your conventions — whether you prefer **Astro**, **SvelteKit**, **Next.js**, or something else. *** ## The Problem When you ask AI to scaffold a new web app, it often defaults to **React** and **Express**, or other older stacks.\ This creates friction when your workflow is based on modern tools or opinionated frameworks. Warp solves this by letting you **store your stack preferences** directly as Rules. *** ## The Rule Setup Create a simple Rule that defines your favorite frameworks for each project type. ### Example Rule ``` Rule: Tech Stack Preferences - Use Astro for websites. - Use SvelteKit for desktop apps. - Prefer Vite for build tooling. - Avoid legacy stacks like Create React App or Express. ``` Once added, Warp’s AI automatically applies these defaults when generating new projects or updating existing ones. {% hint style="info" %} Think of it like setting a default coding personality for your agent. {% endhint %} *** ## Why It Matters {% hint style="success" %} Defining your stack preferences helps the AI: * Generate **consistent boilerplates** * Follow your **current tech standards** * Skip outdated or irrelevant dependencies {% endhint %} --- # Source: https://docs.warp.dev/university/integrations/how-to-set-up-ollama.md # How To Set Up Ollama Running AI models locally just got easier — and faster — with Ollama.\ \ In this guide, we’ll walk through how to use Warp to install, profile, and integrate Ollama into your local setup. {% embed url="" %} *** ### 1. Check Your System Specs Before running large language models (LLMs) locally, confirm your hardware can handle them. Example setups: * Mac: 64GB unified memory — good for larger models but with lower throughput. * Windows (NVIDIA RTX 5090): 32GB VRAM — excellent performance, but limited by VRAM capacity. > 🧠 Rule of thumb: You’ll need roughly 1GB of VRAM per billion parameters. *** ### 2. Run Your First Model Run a model locally: > ollama run gpt-oss For example: * Try GPT-OSS 20B (requires ≥16GB VRAM, supports tool calling). * Then try Mistral 8B for a faster, smaller alternative. Compare their performance and quality side-by-side.\ Use Warp to easily monitor GPU usage and model response time. *** ### 3. Understanding Model Terms Here’s a quick glossary for choosing the right local model: | Term | Meaning | | ---------------- | ------------------------------------------------------------------ | | **Thinking** | The model “thinks” before answering; better for complex reasoning. | | **Tools** | Models can use external utilities (e.g., web search). | | **Vision** | Can process and respond to images. | | **Embedding** | Converts text to numeric form for search or RAG pipelines. | | **Quantization** | Reduces memory use by lowering precision (e.g., 4-bit). | *** ### 4. Integrate Ollama into Your App Most apps use OpenAI-compatible APIs, so integration is simple. 1. Open your app’s code in Warp. 2. Locate the OpenAI client initialization. 3. Replace the base URL with Ollama's 4. Update your API key and model name. Warp helps you quickly locate, edit, and test the integration directly from the terminal. *** ### 6. Customize Model Behavior Pull and modify a model. Then save it as a custom model with new settings like temperature or system prompt. Use Warp to generate a model file automatically. This adds a structured system prompt for that task — ready to use instantly. --- # Source: https://docs.warp.dev/university/developer-workflows/power-user/how-to-sync-your-monorepos.md # How To: Sync Your Monorepos Learn how to use Warp’s Rules system to connect interrelated repositories and automate type updates across your stack. {% embed url="" %} *** ## Intro This tutorial teaches you how to define **global Rules** in Warp so your coding agent understands how your projects relate to one another. By linking monorepos (e.g., server, client, and shared API schemas), Warp automatically updates types and schemas across repos when you make a change in one place. Although this example uses Warp’s internal repos, the same workflow applies to any multi-repo setup. *** ## The Problem When projects are split into multiple repos — like backend, client, and shared schema — developers often forget to synchronize type changes manually. That’s error-prone and time-consuming. Warp solves this by teaching your **agent** the relationships between your repos through a global Rule. *** ## The Rule Setup Describe each repository and its connection to the others. ### Example Rule {% code overflow="wrap" %} ``` We have three inter-related projects in ~/Repos: warp-internal (client-side application) warp-server (server application) warp-proto-apis (shared API schemas for each) When you update the schema types, push to git and update the installed types in the server and client by the commit hash. ``` {% endcode %} Once defined, Warp automatically follows these instructions when a schema file is changed. {% stepper %} {% step %} **When the schema updates — update server types** `cd` into the server repository and run the appropriate commands to regenerate/update server-side types based on the changed schema. {% endstep %} {% step %} **When the schema updates — update client types** `cd` into the client repository and run the appropriate commands to regenerate/update client-side types so the client stays in sync with the schema changes. {% endstep %} {% endstepper %} *** {% hint style="success" %} Benefits * Keeps your **schema, server, and client** perfectly in sync * Reduces merge conflicts and version drift * Saves manual steps when committing or deploying {% endhint %} --- # Source: https://docs.warp.dev/university/developer-workflows/power-user/how-to-use-agent-profiles-efficiently.md # How To: Use Agent Profiles Efficiently Agent Profiles control how your coding agents behave in different contexts.\ They define what the agent can read, plan, or execute — and how much autonomy it has. To show how profiles change workflow, we’ll build an NFL Predictor App using two profiles: * Strategic Agent * YOLO Agent {% embed url="" %} *** ### Strategic Agent Base Model: GPT-5\ Planning Model: Claude 4 Opus Configuration: * Apply code diffs → *agent decides* * Read files → *always allow* * Create plans → *always allow* * Execute commands → *ask first* When run: 1. The agent asks clarifying questions (e.g., *Do you want to scrape players and schedules?*) 2. Builds a detailed 14-step plan 3. Requests user input for environment variables It’s thorough and safe — but pauses often if you miss setup details. *** ### YOLO Agent Configuration: * Apply code diffs → *always allow* * Read files → *always allow* * Create plans → *never* * Execute commands → *always allow* This agent skips long planning.\ It builds the project quickly, skipping over optional validation and focusing on essentials: * Data ingestion * Player stats * Scoring calculation It avoids brittle endpoints and produces a working dataset fast — though with fewer checks. *** ### Comparing the Two | Trait | Strategic Agent | YOLO Agent | | --------- | ------------------- | ------------------ | | Planning | Detailed (14 steps) | Minimal (10 steps) | | Safety | High | Low | | Speed | Moderate | Very fast | | Ideal For | Production projects | Quick prototypes | --- # Source: https://docs.warp.dev/university/developer-workflows/backend/how-to-write-sql-commands-inside-a-postgres-repl.md # How To: Write SQL Commands inside a Postgres REPL {% hint style="info" %} This tutorial teaches you how to use **Warp’s AI input** to run natural-language prompts inside an interactive **Postgres REPL**, turning plain English into SQL commands.\ \ Although the example uses **PostgreSQL**, the same workflow applies to **Node.js**, **Python**, **MySQL**, and other interactive shells. {% endhint %} {% embed url="" %} *** ### 🧠 Overview You’ll learn how to: * Start a Postgres REPL in Warp. * Use **Command + I** (or **Ctrl + I**) to open Warp’s AI input. * Speak or type natural-language requests and let Warp translate them into SQL. * Run the generated queries directly inside your REPL session. {% stepper %} {% step %} **Open a Postgres REPL in Warp** Open Warp and connect to your Postgres database (or a test instance): ```bash psql -U postgres -d my_database ``` You’ll enter the interactive `psql` prompt, where you normally type SQL commands. {% endstep %} {% step %} **Invoke Warp’s AI Input** Inside the running REPL, press: ``` Command + I (macOS) Ctrl + I (Windows/Linux) ``` This opens the **Generate Input** box. You can **type or speak** in plain English — Warp will translate your request into valid SQL or shell syntax, depending on the REPL you’re in. {% endstep %} {% step %} **Ask Warp in Natural Language** Start with a simple request: ``` Show me all tables. ``` Warp translates this to the Postgres command: ```sql \dt ``` Then try a more specific query, as shown in the video: ``` Show me our users table and our teams table. ``` Warp generates: ```sql SELECT * FROM users; SELECT * FROM teams; ``` You can run both within your REPL to display the tables. {% endstep %} {% step %} **Observe How Warp Learns from Context** As you continue issuing prompts, Warp’s AI agent **learns the structure of your database** by observing what’s printed in the REPL output. This means you can ask progressively more complex questions, and Warp will tailor the SQL accordingly. ``` Show me all of the users who have joined Warp in the last 90 days from public email accounts (like Gmail, Yahoo, Hotmail) and are on teams of more than two people. ``` Warp generates a multi-clause SQL query such as: ```sql SELECT * FROM users WHERE email LIKE '%gmail.com%' OR email LIKE '%yahoo.com%' OR email LIKE '%hotmail.com%' AND joined_at > NOW() - INTERVAL '90 days' AND team_size > 2; ``` Running this query in `psql` filters users accordingly. {% endstep %} {% step %} **Apply the Same Workflow to Other REPLs** This feature works **not just in Postgres** but also in: * Node.js * Python * MySQL * GDB (GNU Debugger) For any of these environments: 1. Launch the REPL inside Warp. 2. Press **Command + I** to bring up AI input. 3. Describe what you want in natural language. 4. Warp translates it into the correct syntax for that environment. {% hint style="info" %} Warp automatically detects the active REPL, so you don’t need to specify “SQL” or “Python” — it knows which language to generate. {% endhint %} {% endstep %} {% step %} **Experiment and Iterate** Try varying your natural-language prompts: ``` List all databases. ``` ```sql \l ``` ``` Count how many users signed up this month. ``` ```sql SELECT COUNT(*) FROM users WHERE joined_at > date_trunc('month', NOW()); ``` The more you experiment, the more context Warp gathers, improving its translations. {% endstep %} {% endstepper %} *** ### 🏁 Key Takeaways * **Command + I** activates Warp’s AI input within any interactive shell. * Warp understands natural language and produces valid commands for the current REPL. * It **learns from context** — subsequent prompts become more accurate. * Works beyond Postgres: Node, Python, MySQL, and others. * A fast way to query or explore systems without memorizing syntax. {% hint style="success" %} Next time you’re stuck remembering a command in Postgres or Python, hit **Command + I** and just ask Warp in plain English. {% endhint %} --- # Source: https://docs.warp.dev/agent-platform/agent/using-agents/agent-context/images-as-context.md # Images as Context ## **Attaching images as context** To provide visual context, you can attach images directly to an agent prompt. This is useful for including screenshots, diagrams, or other visual references alongside your query. You can attach images in the following ways: * Using the **image upload button** found on the toolbelt (either on the bottom left or right), depending on which input mode you're using:

Attaching 5 images on the new "Universal" input (bottom left toolbelt)

Attaching 4 images on the "Classic" input (bottom right)

* Copy and paste images directly (e.g. right-click an image > "Copy image" or copy from a file manager) into Warp. * Drag and drop images, such as from a file manager or screenshot utility. {% hint style="info" %} Warp accepts the following image formats: `.jpg` , `.jpeg` , `.png` , `.gif` , and .`webp` . {% endhint %} You can attach up to **5 images per request**, and up to **20 images across a single conversation**. Each image is sent to the model provider and immediately discarded — nothing is stored on Warp's servers. ### Model behavior and image handling All supported models listed in [Model Choice](https://docs.warp.dev/agent-platform/agent/using-agents/model-choice) can interpret image input. Attaching images will consume additional requests, proportional to the number of images added. To stay within model limits, Warp will intelligently resize images before passing it as context, minimizing token usage and respecting the model's maximum image dimensions. --- # Source: https://docs.warp.dev/university/terminal-command-line-tips/improve-your-kubernetes-workflow-kubectl-+-helm.md # Improve Your Kubernetes Workflow (kubectl + helm) Discover how Warp’s modern terminal features streamline Kubernetes workflows through AI assistance, automation, and intuitive design. {% embed url="" %} ## Overview This guide covers 6 key Warp features that enhance Kubernetes productivity: {% stepper %} {% step %} **AI Integration in the Terminal** Warp’s **Agent Mode** (`Cmd + I`) lets you run complex Kubernetes operations with plain-English prompts. **Examples** ``` When does my wildcard TLS certificate expire? ``` Warp auto-detects namespaces, runs `kubectl` commands, and outputs expiration details. ``` Generate a command to identify all pods running as root across all namespaces. ``` Warp builds and runs the corresponding `kubectl` + `grep` query, returning a security report. {% hint style="info" %} Ideal for on-the-fly debugging or compliance checks without leaving your terminal. {% endhint %} {% endstep %} {% step %} **Building AI-Aided Context** You can attach any command’s output as context for follow-up prompts.\ For instance, right-click log output → “Attach as Agent Context,” then run: ``` I’m sending anonymous usage data in Traefik. How can I disable it? ``` Warp detects the Helm chart and outputs the required YAML config to disable stats reporting. {% endstep %} {% step %} **Active AI Suggestions** Warp automatically suggests next actions.\ Examples of suggested actions: * After `kubectl describe pod` it might propose: > “Check the logs of this pod.” * When running `sudo apt update` it detects available upgrades and offers: > “Run sudo apt upgrade to update packages.” > {% endstep %} {% step %} **Custom Workflows** Create reusable, parameterized commands for common operations like: {% code title="Example workflow" %} ```bash helm upgrade --namespace -f ``` {% endcode %} Accessible from the **Command Palette (`Cmd + P`)**, workflows make repetitive Kubernetes tasks fast and standardized. {% endstep %} {% step %} **Synchronized Panes and Tabs** Link multiple terminal panes or tabs (e.g., master + worker nodes).\ When synchronization is active, running: ```bash sudo apt update ``` executes simultaneously across all linked sessions. {% endstep %} {% step %} **Modern Text Editing** Warp supports **click-to-edit** for commands — no more arrow key gymnastics.\ Hovering shows inline **tooltips** explaining flags and subcommands (e.g., Helm, kubectl, etc.), with autocompletions for 400+ CLI tools. {% endstep %} {% endstepper %} --- # Source: https://docs.warp.dev/terminal/appearance/input-position.md # Input Position You can select from three different input positions, which each have different modes of behavior for the flow of input/output Blocks.
Input positionBehavior
Start at the top (Classic mode)When you select “start at the top,” the prompt with input will initiate at the top of the view and move down in the view as you enter commands. Blocks of input/output will stack above the prompt and command input. You can scroll up or navigate up to visit past commands. You can enter CTRL-L or the clear command at any time to return the input to the top of the screen while still maintaining your scroll history.
Pin to the top (Reverse mode)When you select “pin to the top,” the prompt with input will display pinned to the top of your terminal view. Blocks of grouped input/output will flow down the view in reverse order with your latest results at the top. You can scroll down or navigate down to visit past commands. For long-running commands, you can also click "Lock scrolling at bottom of block" to continue to follow the stdout.
Pin to the bottom (Warp mode)Warp mode starts with input pinned to the bottom of your terminal view. Blocks of grouped input/output flow up and out of view. You can scroll up or navigate up to visit past commands.
## How to access it * You can configure your input position by navigating to `Settings > Appearance > Input`. * You can also choose and set modes from the [Command Palette](https://docs.warp.dev/terminal/command-palette). {% hint style="info" %} Changes to the Input position take place immediately and apply to all open panes. {% endhint %} ### Related commands {% tabs %} {% tab title="macOS" %} * `CMD-K` will clear the entire list of input/output blocks for a clean view * `CTRL-L` will move the list of input/output blocks outside of the view and past the scroll so you have a clean view and the ability to easily visit past commands * For long Blocks, you can press `SHIFT-CMD-UP`/`SHIFT-CMD-DOWN` to Scroll to the top/bottom the selected block. {% endtab %} {% tab title="Windows" %} * `CTRL-SHIFT-K` will clear the entire list of input/output blocks for a clean view * `CTRL-L` will move the list of input/output blocks outside of the view and past the scroll so you have a clear view and the ability to easily visit past commands * For long Blocks, you can press `CTRL-SHIFT-UP`/`CTRL-SHIFT-DOWN` to Scroll to the top/bottom of the selected block. {% endtab %} {% tab title="Linux" %} * `CTRL-SHIFT-K` will clear the entire list of input/output blocks for a clean view * `CTRL-L` will move the list of input/output blocks outside of the view and past the scroll so you have a clear view and the ability to easily visit past commands * For long Blocks, you can press `CTRL-SHIFT-UP`/`CTRL-SHIFT-DOWN` to Scroll to the top/bottom of the selected block. {% endtab %} {% endtabs %} ## How it works {% embed url="" %} Input Position Demo {% endembed %} --- # Source: https://docs.warp.dev/getting-started/readme/installation-and-setup.md # Installation and setup {% hint style="info" %} **Platform support:** Warp is supported on macOS (Intel and Mac Silicon), Windows (x86\_64 and ARM64), and Linux (x86\_64 and ARM64). {% endhint %} ## Install Warp {% hint style="warning" %} **Visit** [Known Issues](https://docs.warp.dev/support-and-community/troubleshooting-and-support/known-issues) **to get more details on setting up and troubleshooting Warp.** {% endhint %} {% tabs %} {% tab title="macOS" %} {% hint style="info" %} **Minimum requirements:** Intel or Apple silicon macOS 10.14 or above and hardware that supports [Metal](https://support.apple.com/en-us/HT205073). {% endhint %} **Download Warp and drag into your Applications folder** {% embed url="" %} Download Warp {% endembed %} **Install using Homebrew by running the command below** ```bash brew install --cask warp ``` After installation, you can find Warp in your Applications folder. {% endtab %} {% tab title="Windows" %} {% hint style="info" %} **Minimum requirements:** Warp requires Windows 10 version 1809 (build 17763) or later, Windows Server 2019 (build 17763) and Windows Server 2022 (build 20348) or later. This is a requirement for [Windows Pseudo Console (ConPTY)](https://devblogs.microsoft.com/commandline/windows-command-line-introducing-the-windows-pseudo-console-conpty/). {% endhint %} **Download Warp, then open and run the installer** {% embed url="" %} Download Warp {% endembed %} **Install using WinGet by running the command below** ```powershell winget install Warp.Warp ``` After installation, you can find Warp in the Start menu. {% endtab %} {% tab title="Linux" %} {% hint style="info" %} **Minimum requirements:** Linux distribution with glibc >= 2.31 (released Feb. 2020) and support for *either* [OpenGL ES 3.0+ or Vulkan](https://github.com/gfx-rs/wgpu?tab=readme-ov-file#supported-platforms). This includes (but is not limited to) the following: * Ubuntu 20.04 * Debian 11 ("bullseye") * Fedora 32 * Arch Linux {% endhint %} **Visit the Warp download page for the full list of Linux installation options** {% embed url="" %} Download Warp {% endembed %} **Debian- and Ubuntu-based distributions** The easiest way to install Warp is to download [x64 .deb package](https://app.warp.dev/download?package=deb) or [ARM64 deb package](https://app.warp.dev/download?package=deb_arm64). After downloading, you can install the package with: ``` sudo apt install ./.deb ``` Installing the .deb package will automatically set up the Warp apt repository and signing key needed to automatically update Warp and verify the integrity of the downloaded packages. Alternatively, you can manually configure the Warp apt repository and install Warp by running the following commands: ``` sudo apt-get install wget gpg wget -qO- https://releases.warp.dev/linux/keys/warp.asc | gpg --dearmor > warpdotdev.gpg sudo install -D -o root -g root -m 644 warpdotdev.gpg /etc/apt/keyrings/warpdotdev.gpg sudo sh -c 'echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/warpdotdev.gpg] https://releases.warp.dev/linux/deb stable main" > /etc/apt/sources.list.d/warpdotdev.list' rm warpdotdev.gpg sudo apt update && sudo apt install warp-terminal ``` **RHEL-, Fedora-, and CentOS-based distributions** The easiest way to install Warp is to download the [x64 .rpm package](https://app.warp.dev/download?package=rpm) or [ARM64 .rpm package](https://app.warp.dev/download?package=rpm_arm64). After downloading, you can install the package with: ```bash sudo dnf install ./.rpm ``` Installing the .rpm package will automatically set up the Warp yum repository. On first update, `dnf` will retrieve the signing key needed to verify the integrity of the downloaded packages. Alternatively, you can manually configure the Warp yum repository and install Warp by running the following commands: ```bash sudo rpm --import https://releases.warp.dev/linux/keys/warp.asc sudo sh -c 'echo -e "[warpdotdev]\nname=warpdotdev\nbaseurl=https://releases.warp.dev/linux/rpm/stable\nenabled=1\ngpgcheck=1\ngpgkey=https://releases.warp.dev/linux/keys/warp.asc" > /etc/yum.repos.d/warpdotdev.repo' sudo dnf install warp-terminal ``` **Arch Linux-based distributions** The easiest way to install Warp is to download the [x64 .pkg.tar.zst package](https://app.warp.dev/download?package=pacman) or [ARM64 pacman package](https://app.warp.dev/download?package=pacman_arm64). After downloading, you can install the package with: ```bash sudo pacman -U ./.pkg.tar.zst ``` The first time you update Warp through the app, it will guide you through setting up the Warp pacman repository and signing key. Alternatively, you can manually configure the Warp pacman repository and install Warp by running the following commands: ```bash sudo sh -c "echo -e '\n[warpdotdev]\nServer = https://releases.warp.dev/linux/pacman/\$repo/\$arch' >> /etc/pacman.conf" sudo pacman-key -r "linux-maintainers@warp.dev" sudo pacman-key --lsign-key "linux-maintainers@warp.dev" sudo pacman -Sy warp-terminal ``` **OpenSUSE- and SLE-based distributions** The Warp yum repository also works for OpenSUSE- and SLE-based systems. Download the [x64 .rpm package](https://app.warp.dev/download?package=rpm) or [ARM64 .rpm package](https://app.warp.dev/download?package=rpm_arm64). After downloading, you can install the package with: ```bash sudo zypper install ./.rpm ``` Installing the .rpm package will automatically set up the Warp yum repository. On first update, `zypper` will retrieve the signing key needed to verify the integrity of the downloaded packages. Alternatively, you can manually configure the Warp yum repository and install Warp by running the following commands: ```bash sudo rpm --import https://releases.warp.dev/linux/keys/warp.asc sudo sh -c 'echo -e "[warpdotdev]\nname=warpdotdev\ntype=rpm-md\nbaseurl=https://releases.warp.dev/linux/rpm/stable\nenabled=1\nautorefresh=1\ngpgcheck=1\ngpgkey=https://releases.warp.dev/linux/keys/warp.asc\nkeeppackages=0" > /etc/zypp/repos.d/warpdotdev.repo' sudo zypper install warp-terminal ``` **AppImage** We also provide an [AppImage](https://appimage.org), a single-file executable version of Warp. Installing Warp via a package manager is recommended, as it will ensure your system has all necessary dependencies installed. You can download the Warp AppImage with the following commands: ```bash # On x64 systems curl -L "https://app.warp.dev/download?package=appimage" -o Warp-x64.AppImage chmod +x Warp-x64.AppImage ``` ```bash # On ARM64 systems curl -L "https://app.warp.dev/download?package=appimage_arm64" -o Warp-ARM64.AppImage chmod +x Warp-ARM64.AppImage ``` **Running Warp on Linux** If you installed a package, find Warp in your desktop manager or run `warp-terminal` on your terminal. If you're using the AppImage, you can launch it by navigating to the directory where the AppImage is located and running `./Warp-*.AppImage`. {% endtab %} {% endtabs %} {% hint style="info" %} Want to try our newest features? [Warp Preview](https://docs.warp.dev/support-and-community/community/warp-preview-and-alpha-program) is available on all platforms and architectures (macOS, Windows, Linux) for early access to experimental features. {% endhint %} ## Initial Setup ### Log in to Warp (Optional) After installation, you have the option to create a Warp account thru the "Sign up" bottom on the top right or in `Settings > Account > Sign up`. You have the option to skip this step. If you're having issues logging in, you can check out the [Login Troubleshooting](https://docs.warp.dev/support-and-community/troubleshooting-and-support/troubleshooting-login-issues) page. {% hint style="info" %} If you sign up using Google or GitHub, Warp only gets access to the associated email address. Visit the [Privacy](https://docs.warp.dev/support-and-community/privacy-and-security/privacy) page for more details on Warp's approach to privacy. {% endhint %} ### Use Warp offline You will only need an active internet connection when you open the Warp app for the first time. Once opened, [Warp is able to run with no internet connection](https://docs.warp.dev/support-and-community/troubleshooting-and-support/using-warp-offline), although certain features that require an internet connection like AI and real-time collaboration features will be unavailable. ### Import your settings If you are migrating to Warp from a terminal like iTerm2, you can easily import your settings, such as keyboard shortcuts and color themes. For more details, visit the [Migrate to Warp](https://docs.warp.dev/getting-started/migrate-to-warp) docs. ### Set up your Warp default shell Warp tries to load your login shell by default. Currently, Warp supports bash, fish, zsh, and PowerShell (pwsh). If your login shell is set to something else (for example, Nushell) Warp will load zsh by default. Zsh is the default login and interactive shell on macOS (starting with macOS Catalina in 2019), replacing the bash shell. For most Linux distributions, the default shell is bash. You can change your default shell by going to `Settings > Features > Session`. In the Startup shell for new sessions section, you can choose which shell you want Warp to use. --- # Source: https://docs.warp.dev/reference/cli/integrations-and-environments.md # Integrations and Environments This article describes the environment and integration setup that is required before you can trigger Warp agents from external tools, like Slack or Linear. You will learn how to: * Create and configure the environment needed to run agents * Connect that environment to your team * Trigger Warp agents using Slack or Linear {% hint style="info" %} **You only need to complete this setup once per Warp team**. After an integration exists, anyone on the team can use it. For example, the first time a teammate triggers an agent from Slack or Linear, they’ll be prompted to authorize GitHub with their own account in order for the agent to write back to repos. {% endhint %} {% hint style="info" %} For a quick start guide to Warp integrations, please see the [Integrations Overview](https://docs.warp.dev/agent-platform/integrations/integrations-overview). {% endhint %} ## How integrations and environments work Warp integrations connect external tools, like Slack or Linear, to agents that run your code in the background. There are three main components to know: * **Triggers** provide the context that tells Warp *what* to run. A trigger could be a Slack message where you tag @Warp, or a Linear issue or comment. * [**Integrations**](https://docs.warp.dev/agent-platform/integrations/integrations-overview) are what connect the trigger surface (Slack, Linear) to Warp. An integration links the trigger to your [Warp team](https://docs.warp.dev/knowledge-and-collaboration/teams) and handles posting results to the original tool, for example, replying in Slack. * **Environments** define how and where agents run your code. When an agent is triggered, Warp uses the environment to spin up a container, clone repositories, and execute the agent's workflow. {% code title="Diagram of Warp integration components" %} ``` Slack or Linear (trigger) → Warp Integration (connects tools to Warp) → Environment (Docker image + repos + setup) → Warp Agent (runs workflow, opens PRs, posts results) ``` {% endcode %} Setting up an integration consists of three steps. 1. **Create an environment** for the agent to run your code. 2. **Authorize GitHub** so Warp can clone repositories, write code, debug issues, open pull requests, and more. 3. **Configure** the Warp app with an integration. *** ## Step 1: Creating an environment Before you can trigger agents from Slack or Linear, you need an environment. The environment defines how and where Warp runs your code. At a minimum, an environment includes: * A Docker image * One or more GitHub repositories * Optional setup commands Typically, you'll create **one environment per codebase** (or closely related set of repos) and reuse it across integrations. You can create environments using a guided Agent flow, or directly through the CLI. #### Before you begin Make sure you have: * A GitHub repository (or repositories) that the agent can work in. * A publicly-accessible Docker image that can build and run your code. Official images like `node`, `python`, or `rust` work for many projects. {% hint style="info" %} You only need to create an environment once. It can be reused across Slack, Linear, and terminal triggers. {% endhint %} ### Option 1: Guided environment setup (recommended) The fastest way to get started is to use the guided environment setup. Use the `/create-environment` [slash command](https://docs.warp.dev/agent-platform/agents/slash-commands) if you want Warp to analyze your repos and suggest an environment configuration. You can run the command inside a git repo directory with no argument, or with one or more repo paths or URLs. For example, from Warp: ```bash # File paths /create-environment ./warp-internal ./warp-server # owner/repo /create-environment warpdotdev/warp-internal warpdotdev/warp-server # GitHub URLs /create-environment https://github.com/warpdotdev/warp-internal.git ``` The guided flow will: 1. Detect the repositories you want the agent to work with and identify languages, frameworks, and tools 2. Look for an existing Dockerfile, recommend an official base image, or help build a custom image (if needed) 3. Suggest setup commands based on your scripts and package managers 4. Create the environment through the CLI and return an environment ID This produces a ready-to-use environment that can immediately be connected to [Slack](https://docs.warp.dev/agent-platform/integrations/slack) or [Linear](https://docs.warp.dev/agent-platform/integrations/linear). ### Option 2: Create an environment with the CLI If you already know how you want to configure your environment, you can create it directly with the CLI. **Use this approach when:** * You already have a custom Docker image * You want full control over repos and setup commands * You’re scripting or automating environment creation From Warp: ```sh warp environment create \ --name \ --docker-image \ --repo \ --repo \ --setup-command "" \ --setup-command "" ``` Key flags: * `--name` – human-readable label for the environment. * `--docker-image` – image name on Docker Hub. * `--repo` – can be repeated for each repo. * `--setup-command` – can be repeated; commands run in the order provided. You can inspect existing environments with `warp environment list` . For more details about environment configuration, see the [Slack](https://docs.warp.dev/agent-platform/integrations/slack) and [Linear](https://docs.warp.dev/agent-platform/integrations/linear) articles. #### Example environments
Project typeDocker imageReposExample setup commands
Web dev projectnode:20-bullseyeyour-org/frontend-react

your-org/backend-api

npm install -g pnpm


cd frontend-react && pnpm install


cd backend-api && pnpm install

Python projectCustom image based on python:3.11your-org/cool_python_projectcd cool_python_project && pip install -r requirements.txt
*** ## Step 2: Authorizing GitHub Warp needs GitHub access so agents can clone your repositories and, when permitted, write code and open pull requests. #### How GitHub Authorization works When you create an environment or integration, Warp will prompt you to: * Install or update the Warp GitHub app * Grant access to the repositories in your environment This authorization enables agents to clone repositories into the environment, create branches and commits, and open pull requests. **Public vs private repos** * **Public repos:** Agents can read code without authorization, but cannot write or open PRs. * **Private repos:** The Warp GitHub App must have access and the triggering user must have write permissions. #### Ongoing permissions Depending on how the GitHub app is installed in your organization: * You may need to grant access to new repositories over time * An organization admin may need to update the app’s permissions You typically only need to handle this once per team, unless your repo access changes. *** ## Step 3: Setting up an integration Once you have set up at least one environment, you can create integrations that connect it to Slack or Linear. For example, run the following command where `` is your environment ID: ```bash warp integration create slack --environment # or warp integration create linear --environment ``` {% hint style="info" %} If you omit `--environment`, the CLI will show a list of environments and prompt you to choose one. {% endhint %} The CLI then: 1. Links the integration to your Warp team and environment. 2. Opens a browser flow to install the Warp app into your Slack workspace or Linear workspace. 3. Generates an **integration ID** you can later list or delete. Optionally, you can attach a custom prompt that is applied to all runs for that integration: ```bash warp integration create slack \ --environment \ --prompt "Always prefix PR titles with [WARP-AGENT] and add detailed test steps." ``` {% hint style="info" %} For more details, see the dedicated pages for [Slack](https://docs.warp.dev/agent-platform/integrations/slack) and [Linear](https://docs.warp.dev/agent-platform/integrations/linear) integrations. {% endhint %} ## How are environments used at runtime? When you trigger an agent from Slack or Linear, Warp follows a consistent, repeatable execution process using your environment. At a high level, each run works like this: 1. **Warp receives the trigger**\ Warp captures the message content (for example, a Slack thread or Linear issue), along with any linked context. 2. **Warp creates an execution container**\ Warp spins up a fresh container from the Docker image defined in your environment. 3. **Repositories are cloned**\ The GitHub repositories associated with the environment are cloned into the container. 4. **Setup commands are run**\ Any setup commands you configured, like installing dependencies, are executed. 5. **The agent workflow runs**\ The agent executes the task using the provided context, tools, and permissions. 6. **Results are posted back**\ Progress updates, summaries, and results are posted back to Slack or Linear. 7. **The container is destroyed**\ After the run completes, the container is torn down. Each run starts from a clean, isolated environment. ## Next steps You now have everything needed to trigger Warp agents from your team’s tools. From here, you might want to: * Add or adjust setup commands * Switch to a custom Docker image * Include additional repositories * Add custom prompts for consistent agent behavior * Create separate environments for different workflows or teams **Additional reading** * [Ambient Agents Overview](https://docs.warp.dev/agent-platform/ambient-agents/ambient-agents-overview) * [Warp Platform](https://docs.warp.dev/agent-platform/platform/warp-platform) * [Slack](https://docs.warp.dev/agent-platform/integrations/slack), [Linear](https://docs.warp.dev/agent-platform/integrations/linear), and [GitHub Actions](https://docs.warp.dev/agent-platform/integrations/github-actions/README) integrations * [Troubleshooting](https://docs.warp.dev/reference/cli/troubleshooting) --- # Source: https://docs.warp.dev/terminal/integrations-and-plugins.md # Terminal Integrations ## Docker {% hint style="info" %} Currently, the Docker extension is only available on macOS. {% endhint %} [Warp’s Docker extension](https://hub.docker.com/extensions/warpdotdev/warp) makes it more convenient to open Docker containers in Warp. With the extension, you can click to open any Docker container in a [Warpified subshell](https://docs.warp.dev/terminal/warpify/subshells), without manually running `docker exec` or typing out lengthy container IDs. Select a container from the list and specify a shell type. Note, that only `bash|zsh|fish` are supported shells for docker containers. Then, select a user (optional) and finally click “Open in Warp” to run commands within the Docker container.

Warp's extension for Docker lists available containers

## Raycast {% hint style="info" %} Currently, the Raycast extension is only available on macOS. {% endhint %} Warp + Raycast extension helps you open new windows, tabs, or Launch Configurations with [ease](https://twitter.com/warpdotdev/status/1678432353461637121). {% embed url="" %} Warp + Raycast Extension Link {% endembed %} {% hint style="info" %} **Terminal Tip**\ Within `Raycast Settings > Extensions > Apps` search for Warp and assign the alias "terminal" so that it will show up on a search. {% endhint %}

Raycast Terminal Tip

## VSCode {% tabs %} {% tab title="macOS" %} Press `SHIFT-CMD-C` while in [VSCode](https://code.visualstudio.com/docs/terminal/basics) to open a new session in Warp. ![VSCode New Session Shortcut](https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-453d61e19a9ee3f466a4e9f363f24518a05343c1%2Fvscode_new_session.gif?alt=media) To configure this, navigate to Settings in VSCode and search for `Terminal › External: Osx Exec`.\ \ Change this to `Warp.app` if you've installed Warp in the default location. Otherwise, put in the full path to the executable. {% endtab %} {% tab title="Windows" %} Press `CTRL-SHIFT-C` while in [VSCode](https://code.visualstudio.com/docs/terminal/basics) to open a new session in Warp. To configure this, navigate to Settings in VSCode and search for `Terminal › External: Windows Exec`.\ \ Change this to `%LOCALAPPDATA%\Programs\Warp\warp.exe` if you've installed Warp in the default location for a single user or `%PROGRAMFILES%\Warp\warp.exe` if you've installed Warp in the default location for all users. Otherwise, put in the full path to the executable. {% endtab %} {% tab title="Linux" %} Press `CTRL-SHIFT-C` while in [VSCode](https://code.visualstudio.com/docs/terminal/basics) to open a new session in Warp. To configure this, navigate to Settings in VSCode and search for `Terminal › External: Linux Exec`.\ \ Change this to `warp-terminal` if you've installed Warp with your distribution's package manager. Otherwise, put in the full path to the executable (e.g. if it is an AppImage). {% endtab %} {% endtabs %} ## JetBrains IDEs {% hint style="info" %} Currently, the JetBrains IDE configuration is only available on macOS. {% endhint %} Press a keyboard shortcut of choice while in a JetBrains IDE to open a new session in Warp. To configure this, use the Apple Menu. Click on `Preferences`, go to `External Tools` , and click `Add`. In this menu, put the following information: * *Name*: Open Warp * *Program*: `/Applications/Warp.app` * *Arguments*: `$ProjectFileDir$` * *Working Directory*: `/Applications` Then press `Ok`. Now you will be able to `Open Warp` from the Apple Menu under `Tools` -> `External Tools`. ![JetBrains New Session Shortcut](https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-aab1bcc9d3fcea88ca8461a6d02289776f118e15%2Fjetbrains_external_terminal_config.gif?alt=media) To attach this configuration to a keyboard shortcut, you must go to the Apple Menu -> `Preferences`. Then go to `Keymap` -> `External Tools`. You will find `Open Warp`. Right-click on it, and select `Add Keyboard Shortcut`. Type your desired shortcut and click save! You're ready to open Warp with a keyboard shortcut. ![JetBrains Configure Keyboard Shortcut](https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-92cd0abc478f47ba9505df4ae2abdc067dbba72f%2Fjetbrains_external_window_keymap_config.gif?alt=media) --- # Source: https://docs.warp.dev/agent-platform/integrations/integrations-overview.md # Integrations Overview Warp integrations let your team trigger Warp agents directly from the terminal, or from first-party tools like [Slack](https://docs.warp.dev/agent-platform/integrations/slack) and [Linear](https://docs.warp.dev/agent-platform/integrations/linear). Once everything is set up, agents can: * Read conversation or issue context * Run code inside your codebase in a remote environment * Open pull requests and perform other multi-step agent workflows on your behalf {% hint style="info" %} For a full walkthrough of Warp's integrations and configurable environments, please refer to [Integrations and Environments](https://docs.warp.dev/reference/cli/integrations-and-environments). {% endhint %} All of this is powered by the [Warp CLI](https://docs.warp.dev/reference/cli/README). *** ## Quickstart The fastest way to get Warp agents running from Slack or Linear is to create an environment with the guided flow. An **environment** defines everything the agent needs to run your code remotely, including your Docker image, repos, and setup commands. {% embed url="" %} #### 1. Run /create-environment From Warp (in command mode), run: ``` /create-environment ``` You can run it inside any repo, or point it at multiple repos: ``` /create-environment ./frontend ./backend /create-environment your-org/repo-name /create-environment https://github.com/your-org/api.git ``` The guided flow will: * Detect which repos you want the agent to work with * Identify languages, frameworks, and tools * Suggest a Docker image (or build/push one if needed) * The Docker image can be your own custom image, an official base image (e.g. node, python), or one of Warp’s prebuilt dev images (see [repo](https://github.com/warpdotdev/warp-dev-environments)). * Recommend setup commands * Create the environment and return an environment ID This produces a ready-to-use environment that Warp can use across Slack, Linear, and terminal triggers. #### 2. Authorize GitHub Warp will prompt you to install or update the Warp GitHub app so the agent can read and write to the repos you included. You only need to do this once. Teammates will authorize on their first run as needed. #### 3. Create an integration For Slack: ``` warp integration create slack --environment ``` For Linear: ``` warp integration create linear --environment ``` The CLI opens an authorization page where you install Warp into your Slack workspace or Linear team. Once installed, everyone on your Warp team can trigger agents. #### 4. Start using agents In Slack: * Tag **@Warp** in a message or thread * Or DM the bot In Linear: * Tag Warp on an issue Warp will read the thread/issue, spin up your environment, run the workflow in the cloud, and post progress + PRs back into the same conversation. *** For more details on configuring integrations and environments in Warp, please refer to [Integrations and Environments](https://docs.warp.dev/reference/cli/integrations-and-environments). --- # Source: https://docs.warp.dev/code/code-review/interactive-code-review.md # Interactive Code Review ### Overview Interactive Code Review lets you review, annotate, and refine code generated by Warp's agents. Instead of relying on an AI to review another AI's output, Warp keeps the developer in control. You can inspect diffs, leave inline comments, batch feedback, and send all requested changes back to the agent in a single pass. {% embed url="" %} **Interactive Code Review builds on Warp's existing** [Code Review](https://docs.warp.dev/code/code-review) **panel.** For details on diff views, reverting hunks, opening files, and all available entry points, see the Code Review documentation. {% hint style="info" %} Note that both the [Code Review](https://docs.warp.dev/code/code-review) panel and Interactive Code Review require working in a Git-indexed directory. {% endhint %} *** When an agent modifies files, Warp automatically gathers those edits into a diff. Opening the Code Review panel shows you every change the agent made. From there, you can leave comments on specific lines or blocks, review your comment list, and submit all feedback to the agent at once. The agent applies the requested updates and returns an updated diff for further review. This gives you a familiar pull-request style workflow inside Warp without switching editors or tools. ### Leave inline comments Select any changed line or block and add a comment describing what you want adjusted. Warp anchors each comment to the relevant file and line so the agent understands exactly what to fix.
### Batch comments and submit once Add as many comments as you need before submitting them. The agent receives your entire batch of feedback, applies the changes in one iteration, and returns an updated diff for verification.
### Example demo In the example from Kevin on the Warp team, you’ll see how to: * open the Code Review panel after an agent produces changes * browse the diffs for each edited file * add multiple inline comments * review all comments in the list view * send those comments to the agent for resolution * inspect the updated diffs once the agent applies the changes This workflow can be repeated until the code matches your expectations. {% embed url="" %} --- # Source: https://docs.warp.dev/getting-started/keyboard-shortcuts.md # Keyboard Shortcuts Warp opens with a shortcut screen showing some of the most commonly used keyboard shortcuts. Hide the shortcut screen by clicking the x button. Quickly view keyboard shortcuts via the [Command Palette](https://docs.warp.dev/terminal/command-palette) or the Resource Center keyboard shortcut sidebar. ## Custom Keyboard Shortcuts Set custom, clear, or default keyboard shortcuts by navigating to `Settings > Keyboard Shortcuts`. Search through the re-mappable actions or existing shortcuts using the search bar. Remap the keyboard shortcuts using a file. See our [keysets repository](https://github.com/warpdotdev/keysets/tree/main) for instructions. {% hint style="info" %} On macOS, [system keyboard shortcuts](https://support.apple.com/en-us/HT201236) like `CMD-ESC`, `CMD-BACKTICK`, `CMD-TAB`, `CMD-PERIOD`, and `CMD-TILDE` need to be [unbound](https://support.apple.com/guide/mac-help/keyboard-shortcuts-mchlp2262/mac) before you can use them in Warp. {% endhint %} {% hint style="warning" %} Keybinds that conflict with others are highlighted with an orange border. {% endhint %}
keybinds that conflict with others are highlighted in orange

Keybind Conflict Example

## All Available Shortcuts {% tabs %} {% tab title="macOS" %} **Warp Essentials** | Shortcut | Command | Action | | -------------- | ---------------------------- | ---------------------------------------------- | | `CMD-D` | Split Pane Right | `pane_group:add_right` | | `CTRL-CMD-L` | Launch Configuration Palette | `workspace:toggle_launch_config_palette` | | `CTRL-CMD-T` | Open Theme Picker | `workspace:show_theme_chooser` | | `CTRL-R` | Command Search | `workspace:show_command_search` | | `CTRL-SHIFT-R` | Workflows | `input:toggle_workflows` | | `` CTRL-` `` | Generate | `input:toggle_natural_language_command_search` | | `CMD-L` | Focus Terminal Input | `terminal:focus_input` | | `CTRL-I` | Warpify Subshell | `terminal:trigger_subshell_bootstrap` | | `CMD-\` | Warp Drive | `terminal:toggle_warp_drive` | | `CMD-O` | File search | | | `CMD-P` | Open command pallette | | **Blocks** | Shortcut | Command | Action | | ----------------- | --------------------------------- | ------------------------------------------------------ | | `ALT-DOWN` | Select the Closest Bookmark Down | `terminal:select_bookmark_down` | | `ALT-SHIFT-CMD-C` | Copy Command Output | `terminal:copy_outputs` | | `ALT-UP` | Select the Closest Bookmark Up | `terminal:select_bookmark_up` | | `CMD-A` | Select All Blocks | `terminal:select_all_blocks` | | `CMD-K` | Clear Blocks | `terminal:clear_blocks` | | `CMD-B` | Bookmark Selected Block | `terminal:bookmark_selected_block` | | `CMD-DOWN` | Select Next Block | `terminal:select_next_block` | | `CMD-I` | Reinput Selected Commands | `terminal:reinput_commands` | | `CMD-UP` | Select Previous Block | `terminal:select_previous_block` | | `CTRL-M` | Open Block Context Menu | `terminal:open_block_list_context_menu_via_keybinding` | | `SHIFT-CMD-C` | Copy Command | `terminal:copy_commands` | | `SHIFT-CMD-I` | Reinput Selected Commands as Root | `terminal:reinput_commands_with_sudo` | | `SHIFT-CMD-S` | Share Selected Block | `terminal:open_share_modal` | | `SHIFT-DOWN` | Expand Selected Blocks Below | `terminal:expand_block_selection_below` | | `SHIFT-UP` | Expand Selected Blocks Above | `terminal:expand_block_selection_above` | **Input Editor** | Shortcut | Command | Action | | ----------------- | ----------------------------------------- | ------------------------------------------ | | `ALT-BACKSPACE` | Delete Word Left | `editor:delete_word_left` | | `ALT-CMD-F` | Fold Selected Ranges | `editor_view:fold_selected_ranges` | | `ALT-CMD-[` | Fold | `editor_view:fold` | | `ALT-CMD-]` | Unfold | `editor_view:unfold` | | `ALT-DELETE` | Delete Word Right | `editor:delete_word_right` | | `CMD-A` | Select All | `editor_view:select_all` | | `CMD-BACKSPACE` | Delete All Left | `editor_view:delete_all_left` | | `CMD-DELETE` | Delete All Right | `editor_view:delete_all_right` | | `CMD-DOWN` | Move Cursor to the Bottom | `editor_view:cmd_down` | | `CMD-I` | Inspect Command | `editor_view:cmd_i` | | `CMD-LEFT` | Home | `editor_view:home` | | `CMD-RIGHT` | End | `editor_view:end` | | `CTRL-A` | Move to Start of Line | `editor_view:move_to_line_start` | | `CTRL-B` | Move Cursor Left | `editor_view:left` | | `CTRL-C` | Clear Command Editor | `editor_view:clear_buffer` | | `CTRL-D` | Delete | `editor_view:delete` | | `CTRL-E` | Move to End of Line | `editor_view:move_to_line_end` | | `CTRL-F` | Move Cursor Right / Accept Autosuggestion | `editor_view:right` | | `CTRL-G` | Add Selection for Next Occurrence | `editor_view:add_next_occurrence` | | `CTRL-H` | Remove the Previous Character | `editor_view:backspace` | | `CTRL-J` | Insert Newline | `editor_view:insert_newline` | | `CTRL-K` | Cut All Right | `editor_view:cut_all_right` | | `CTRL-L` | Clear Screen | `input:clear_screen` | | `CTRL-N` | Move Cursor Down | `editor_view:down` | | `CTRL-P` | Move Cursor Up | `editor_view:up` | | `CTRL-SHIFT-A` | Select to Start of Line | `editor_view:select_to_line_start` | | `CTRL-SHIFT-B` | Select One Character to the Left | `editor_view:select_left` | | `CTRL-SHIFT-DOWN` | Add Cursor Below | `editor_view:add_cursor_below` | | `CTRL-SHIFT-E` | Select to End of Line | `editor:select_to_line_end` | | `CMD-Z` | Undo | `editor:undo` | | `CMD-SHIFT-Z` | Redo | `editor:redo` | | `CTRL-SHIFT-F` | Select One Character to the Right | `editor:select_right` | | `CTRL-SHIFT-N` | Select Down | `editor_view:select_down` | | `CTRL-SHIFT-P` | Select Up | `editor_view:select_up` | | `CTRL-SHIFT-UP` | Add Cursor Above | `editor_view:add_cursor_above` | | `CTRL-U` | Copy and Clear Selected Lines | `editor_view:clear_and_copy_lines` | | `CTRL-W` | Cut Word Left | `editor_view:cut_word_left` | | `META-.` | Insert Last Word of Previous Command | `editor:insert_last_word_previous_command` | | `META-A` | Move to the Start of the Paragraph | `editor_view:move_to_paragraph_start` | | `META-B` | Move Backward One Word | `editor_view:move_backward_one_word` | | `META-D` | Cut Word Right | `editor_view:cut_word_right` | | `META-E` | Move to the End of the Paragraph | `editor_view:move_to_paragraph_end` | | `META-F` | Move Forward One Word | `editor_view:move_forward_one_word` | | `CTRL-OPT-LEFT` | Move Backward One Subword | `editor_view:move_backward_one_subword` | | `CTRL-OPT-RIGHT` | Move Forward One Subword | `editor_view:move_forward_one_subword` | | `SHIFT-CMD-K` | Clear Selected Lines | `editor_view:clear_lines` | | `SHIFT-META-<` | Move to the Start of the Buffer | `editor_view:move_to_buffer_start` | | `SHIFT-META->` | Move to the End of the Buffer | `editor_view:move_to_buffer_end` | | `SHIFT-META-B` | Select One Word to the Left | `editor_view:select_left_by_word` | | `SHIFT-META-F` | Select One Word to the Right | `editor_view:select_right_by_word` | **Terminal** | Shortcut | Command | Action | | ----------------- | ------------------------------------------------- | -------------------------------------------- | | `ALT-CMD-DOWN` | Switch Panes Down | `pane_group:navigate_down` | | `ALT-CMD-LEFT` | Switch Panes Left | `pane_group:navigate_left` | | `ALT-CMD-RIGHT` | Switch Panes Right | `pane_group:navigate_right` | | `ALT-CMD-UP` | Switch Panes Up | `pane_group:navigate_up` | | `ALT-CMD-V` | \[a11y] Set Concise Accessibility Announcements | `workspace:set_a11y_concise_verbosity_level` | | `ALT-CMD-V` | \[a11y] Set Verbose Accessibility Announcements | `workspace:set_a11y_verbose_verbosity_level` | | `CMD-,` | Open Settings | `workspace:show_settings_modal` | | `CMD-,` | Open Settings: Account | `workspace:show_settings_account_page` | | `CMD-G` | Find the Next Occurrence of Your Search Query | `find:find_next_occurrence` | | `CMD-P` | Toggle Command Palette | `workspace:toggle_command_palette` | | | Toggle Mouse Reporting | `workspace:toggle_mouse_reporting` | | `CMD-[` | Activate Previous Pane | `pane_group:navigate_prev` | | `CMD-]` | Activate Next Pane | `pane_group:navigate_next` | | `CTRL-CMD-DOWN` | Resize Pane > Move Divider Down | `pane_group:resize_down` | | `CTRL-CMD-K` | Open Keybindings Editor | `workspace:show_keybinding_settings` | | `CTRL-CMD-LEFT` | Resize Pane > Move Divider Left | `pane_group:resize_left` | | `CTRL-CMD-RIGHT` | Resize Pane > Move Divider Right | `pane_group:resize_right` | | `CTRL-CMD-UP` | Resize Pane > Move Divider Up | `pane_group:resize_up` | | `CTRL-SHIFT-?` | Open Resource Center | `workspace:toggle_resource_center` | | `SHIFT-CMD-D` | Split Pane Down | `pane_group:add_down` | | `SHIFT-CMD-ENTER` | Toggle Maximize Active Pane | `pane_group:toggle_maximize_pane` | | `SHIFT-CMD-G` | Find the Previous Occurrence of Your Search Query | `find:find_prev_occurrence` | | `SHIFT-CMD-P` | Toggle Navigation Palette | `workspace:toggle_navigation_palette` | **Fundamentals** | Shortcut | Command | Action | | ------------------ | -------------------------- | -------------------------------- | | `CMD--` | Decrease Font Size | `workspace:decrease_font_size` | | `CMD-0` | Reset Font Size to Default | `workspace:reset_font_size` | | `CMD-1` | Switch to 1st Tab | `workspace:activate_first_tab` | | `CMD-2` | Switch to 2nd Tab | `workspace:activate_second_tab` | | `CMD-3` | Switch to 3rd Tab | `workspace:activate_third_tab` | | `CMD-4` | Switch to 4th Tab | `workspace:activate_fourth_tab` | | `CMD-5` | Switch to 5th Tab | `workspace:activate_fifth_tab` | | `CMD-6` | Switch to 6th Tab | `workspace:activate_sixth_tab` | | `CMD-7` | Switch to 7th Tab | `workspace:activate_seventh_tab` | | `CMD-8` | Switch to 8th Tab | `workspace:activate_eighth_tab` | | `CMD-9` | Switch to Last Tab | `workspace:activate_last_tab` | | `CMD-=` | Increase Font Size | `workspace:increase_font_size` | | `CMD-C` | Copy | `terminal:copy` | | `CMD-F` | Find | `terminal:find` | | `CMD-V` | Paste | `terminal:paste` | | `CMD-T` | Open New Tab | `workspace:open_new_tab` | | `SHIFT-CMD-T` | Reopen Closed Tab | `workspace:reopen_closed_tab` | | `CTRL-SHIFT-LEFT` | Move Tab Left | `workspace:move_tab_left` | | `CTRL-SHIFT-RIGHT` | Move Tab Right | `workspace:move_tab_right` | | `SHIFT-CMD-{` | Activate Previous Tab | `workspace:activate_prev_tab` | | `SHIFT-CMD-}` | Activate Next Tab | `workspace:activate_next_tab` | | {% endtab %} | | | {% tab title="Windows" %} **Warp Essentials** | Shortcut | Command | Action | | -------------- | ---------------------------- | ---------------------------------------------- | | `CTRL-SHIFT-D` | Split Pane Right | `pane_group:add_right` | | | Launch Configuration Palette | `workspace:toggle_launch_config_palette` | | | Open Theme Picker | `workspace:show_theme_chooser` | | `CTRL-R` | Command Search | `workspace:show_command_search` | | `CTRL-SHIFT-R` | Workflows | `input:toggle_workflows` | | `` CTRL-` `` | Generate | `input:toggle_natural_language_command_search` | | `CTRL-SHIFT-L` | Focus Terminal Input | `terminal:focus_input` | | `CTRL-I` | Warpify Subshell | `terminal:trigger_subshell_bootstrap` | | `CTRL-SHIFT-\` | Warp Drive | `terminal:toggle_warp_drive` | **Blocks** | Shortcut | Command | Action | | ------------------ | --------------------------------- | ------------------------------------------------------ | | `ALT-DOWN` | Select the Closest Bookmark Down | `terminal:select_bookmark_down` | | `CTRL-SHIFT-ALT-C` | Copy Command Output | `terminal:copy_outputs` | | `ALT-UP` | Select the Closest Bookmark Up | `terminal:select_bookmark_up` | | `CTRL-SHIFT-A` | Select All Blocks | `terminal:select_all_blocks` | | `CTRL-SHIFT-K` | Clear Blocks | `terminal:clear_blocks` | | `CTRL-SHIFT-B` | Bookmark Selected Block | `terminal:bookmark_selected_block` | | `CTRL-DOWN` | Select Next Block | `terminal:select_next_block` | | `CTRL-SHIFT-I` | Reinput Selected Commands | `terminal:reinput_commands` | | `CTRL-UP` | Select Previous Block | `terminal:select_previous_block` | | | Open Block Context Menu | `terminal:open_block_list_context_menu_via_keybinding` | | `CTRL-SHIFT-C` | Copy Command | `terminal:copy_commands` | | | Reinput Selected Commands as Root | `terminal:reinput_commands_with_sudo` | | `CTRL-SHIFT-S` | Share Selected Block | `terminal:open_share_modal` | | `SHIFT-DOWN` | Expand Selected Blocks Below | `terminal:expand_block_selection_below` | | `SHIFT-UP` | Expand Selected Blocks Above | `terminal:expand_block_selection_above` | **Input Editor** | Shortcut | Command | Action | | ------------------ | ----------------------------------------- | ------------------------------------------ | | `CTRL-BACKSPACE` | Delete Word Left | `editor:delete_word_left` | | `CTRL-ALT-F` | Fold Selected Ranges | `editor_view:fold_selected_ranges` | | `CTRL-ALT-[` | Fold | `editor_view:fold` | | `CTRL-ALT-]` | Unfold | `editor_view:unfold` | | `CTRL-DELETE` | Delete Word Right | `editor:delete_word_right` | | `CTRL-A` | Select All | `editor_view:select_all` | | `CTRL-Y` | Delete All Left | `editor_view:delete_all_left` | | | Delete All Right | `editor_view:delete_all_right` | | `CTRL-END` | Move Cursor to the Bottom | `editor_view:cmd_down` | | `CTRL-I` | Inspect Command | `editor_view:cmd_i` | | `HOME` | Home | `editor_view:home` | | `END` | End | `editor_view:end` | | `CTRL-A` | Move to Start of Line | `editor_view:move_to_line_start` | | `CTRL-B` | Move Cursor Left | `editor_view:left` | | `CTRL-C` | Clear Command Editor | `editor_view:clear_buffer` | | `CTRL-D` | Delete | `editor_view:delete` | | `CTRL-E` | Move to End of Line | `editor_view:move_to_line_end` | | `CTRL-F` | Move Cursor Right / Accept Autosuggestion | `editor_view:right` | | `CTRL-G` | Add Selection for Next Occurrence | `editor_view:add_next_occurrence` | | `CTRL-H` | Remove the Previous Character | `editor_view:backspace` | | `CTRL-J` | Insert Newline | `editor_view:insert_newline` | | `CTRL-K` | Cut All Right | `editor_view:cut_all_right` | | `CTRL-L` | Clear Screen | `input:clear_screen` | | `CTRL-N` | Move Cursor Down | `editor_view:down` | | `CTRL-P` | Move Cursor Up | `editor_view:up` | | | Select to Start of Line | `editor_view:select_to_line_start` | | `CTRL-SHIFT-B` | Select One Character to the Left | `editor_view:select_left` | | `CTRL-SHIFT-DOWN` | Add Cursor Below | `editor_view:add_cursor_below` | | | Select to End of Line | `editor:select_to_line_end` | | `CTRL-Z` | Undo | `editor:undo` | | `CTRL-SHIFT-Z` | Redo | `editor:redo` | | `CTRL-SHIFT-F` | Select One Character to the Right | `editor:select_right` | | | Select Down | `editor_view:select_down` | | `CTRL-SHIFT-P` | Select Up | `editor_view:select_up` | | `CTRL-SHIFT-UP` | Add Cursor Above | `editor_view:add_cursor_above` | | `CTRL-U` | Copy and Clear Selected Lines | `editor_view:clear_and_copy_lines` | | `CTRL-W` | Cut Word Left | `editor_view:cut_word_left` | | `META-.` | Insert Last Word of Previous Command | `editor:insert_last_word_previous_command` | | `META-A` | Move to the Start of the Paragraph | `editor_view:move_to_paragraph_start` | | `CTRL-LEFT` | Move Backward One Word | `editor_view:move_backward_one_word` | | `ALT-D` | Cut Word Right | `editor_view:cut_word_right` | | `META-E` | Move to the End of the Paragraph | `editor_view:move_to_paragraph_end` | | `CTRL-RIGHT` | Move Forward One Word | `editor_view:move_forward_one_word` | | `CTRL-ALT-LEFT` | Move Backward One Subword | `editor_view:move_backward_one_subword` | | `CTRL-ALT-RIGHT` | Move Forward One Subword | `editor_view:move_forward_one_subword` | | `SHIFT-META-<` | Move to the Start of the Buffer | `editor_view:move_to_buffer_start` | | `SHIFT-META->` | Move to the End of the Buffer | `editor_view:move_to_buffer_end` | | `CTRL-SHIFT-LEFT` | Select One Word to the Left | `editor_view:select_left_by_word` | | `CTRL-SHIFT-RIGHT` | Select One Word to the Right | `editor_view:select_right_by_word` | **Terminal** | Shortcut | Command | Action | | ------------------ | ------------------------------------------------- | -------------------------------------------- | | `CTRL-ALT-DOWN` | Switch Panes Down | `pane_group:navigate_down` | | `CTRL-ALT-LEFT` | Switch Panes Left | `pane_group:navigate_left` | | `CTRL-ALT-RIGHT` | Switch Panes Right | `pane_group:navigate_right` | | `CTRL-ALT-UP` | Switch Panes Up | `pane_group:navigate_up` | | `CTRL-ALT-V` | \[a11y] Set Concise Accessibility Announcements | `workspace:set_a11y_concise_verbosity_level` | | `CTRL-ALT-V` | \[a11y] Set Verbose Accessibility Announcements | `workspace:set_a11y_verbose_verbosity_level` | | `CTRL-,` | Open Settings | `workspace:show_settings_modal` | | `CTRL-,` | Open Settings: Account | `workspace:show_settings_account_page` | | `F3` | Find the Next Occurrence of Your Search Query | `find:find_next_occurrence` | | `CTRL-SHIFT-P` | Toggle Command Palette | `workspace:toggle_command_palette` | | | Toggle Mouse Reporting | `workspace:toggle_mouse_reporting` | | `CTRL-SHIFT-[` | Activate Previous Pane | `pane_group:navigate_prev` | | `CTRL-SHIFT-]` | Activate Next Pane | `pane_group:navigate_next` | | | Resize Pane > Move Divider Down | `pane_group:resize_down` | | `CTRL-CMD-K` | Open Keybindings Editor | `workspace:show_keybinding_settings` | | | Resize Pane > Move Divider Left | `pane_group:resize_left` | | | Resize Pane > Move Divider Right | `pane_group:resize_right` | | | Resize Pane > Move Divider Up | `pane_group:resize_up` | | `CTRL-SHIFT-/` | Open Resource Center | `workspace:toggle_resource_center` | | `CTRL-SHIFT-E` | Split Pane Down | `pane_group:add_down` | | `CTRL-SHIFT-ENTER` | Toggle Maximize Active Pane | `pane_group:toggle_maximize_pane` | | `SHIFT-F3` | Find the Previous Occurrence of Your Search Query | `find:find_prev_occurrence` | | | Toggle Navigation Palette | `workspace:toggle_navigation_palette` | **Fundamentals** | Shortcut | Command | Action | | ------------------ | -------------------------- | -------------------------------- | | `CTRL--` | Decrease Font Size | `workspace:decrease_font_size` | | `CTRL-0` | Reset Font Size to Default | `workspace:reset_font_size` | | `CTRL-1` | Switch to 1st Tab | `workspace:activate_first_tab` | | `CTRL-2` | Switch to 2nd Tab | `workspace:activate_second_tab` | | `CTRL-3` | Switch to 3rd Tab | `workspace:activate_third_tab` | | `CTRL-4` | Switch to 4th Tab | `workspace:activate_fourth_tab` | | `CTRL-5` | Switch to 5th Tab | `workspace:activate_fifth_tab` | | `CTRL-6` | Switch to 6th Tab | `workspace:activate_sixth_tab` | | `CTRL-7` | Switch to 7th Tab | `workspace:activate_seventh_tab` | | `CTRL-8` | Switch to 8th Tab | `workspace:activate_eighth_tab` | | `CTRL-9` | Switch to Last Tab | `workspace:activate_last_tab` | | `CTRL-=` | Increase Font Size | `workspace:increase_font_size` | | `CTRL-SHIFT-C` | Copy | `terminal:copy` | | `CTRL-SHIFT-F` | Find | `terminal:find` | | `CTRL-SHIFT-V` | Paste | `terminal:paste` | | `CTRL-SHIFT-T` | Open New Tab | `workspace:open_new_tab` | | `CTRL-ALT-T` | Reopen Closed Tab | `workspace:reopen_closed_tab` | | `CTRL-SHIFT-LEFT` | Move Tab Left | `workspace:move_tab_left` | | `CTRL-SHIFT-RIGHT` | Move Tab Right | `workspace:move_tab_right` | | `CTRL-PAGEUP` | Activate Previous Tab | `workspace:activate_prev_tab` | | `CTRL-PAGEDOWN` | Activate Next Tab | `workspace:activate_next_tab` | | {% endtab %} | | | {% tab title="Linux" %} **Warp Essentials** | Shortcut | Command | Action | | -------------- | ---------------------------- | ---------------------------------------------- | | `CTRL-SHIFT-D` | Split Pane Right | `pane_group:add_right` | | | Launch Configuration Palette | `workspace:toggle_launch_config_palette` | | | Open Theme Picker | `workspace:show_theme_chooser` | | `CTRL-R` | Command Search | `workspace:show_command_search` | | `CTRL-SHIFT-R` | Workflows | `input:toggle_workflows` | | `` CTRL-` `` | Generate | `input:toggle_natural_language_command_search` | | `CTRL-SHIFT-L` | Focus Terminal Input | `terminal:focus_input` | | `CTRL-I` | Warpify Subshell | `terminal:trigger_subshell_bootstrap` | | `CTRL-SHIFT-\` | Warp Drive | `terminal:toggle_warp_drive` | **Blocks** | Shortcut | Command | Action | | ------------------ | --------------------------------- | ------------------------------------------------------ | | `ALT-DOWN` | Select the Closest Bookmark Down | `terminal:select_bookmark_down` | | `CTRL-SHIFT-ALT-C` | Copy Command Output | `terminal:copy_outputs` | | `ALT-UP` | Select the Closest Bookmark Up | `terminal:select_bookmark_up` | | `CTRL-SHIFT-A` | Select All Blocks | `terminal:select_all_blocks` | | `CTRL-SHIFT-K` | Clear Blocks | `terminal:clear_blocks` | | `CTRL-SHIFT-B` | Bookmark Selected Block | `terminal:bookmark_selected_block` | | `CTRL-DOWN` | Select Next Block | `terminal:select_next_block` | | `CTRL-SHIFT-I` | Reinput Selected Commands | `terminal:reinput_commands` | | `CTRL-UP` | Select Previous Block | `terminal:select_previous_block` | | | Open Block Context Menu | `terminal:open_block_list_context_menu_via_keybinding` | | `CTRL-SHIFT-C` | Copy Command | `terminal:copy_commands` | | | Reinput Selected Commands as Root | `terminal:reinput_commands_with_sudo` | | `CTRL-SHIFT-S` | Share Selected Block | `terminal:open_share_modal` | | `SHIFT-DOWN` | Expand Selected Blocks Below | `terminal:expand_block_selection_below` | | `SHIFT-UP` | Expand Selected Blocks Above | `terminal:expand_block_selection_above` | **Input Editor** | Shortcut | Command | Action | | ------------------ | ----------------------------------------- | ------------------------------------------ | | `CTRL-BACKSPACE` | Delete Word Left | `editor:delete_word_left` | | `CTRL-ALT-F` | Fold Selected Ranges | `editor_view:fold_selected_ranges` | | `CTRL-ALT-[` | Fold | `editor_view:fold` | | `CTRL-ALT-]` | Unfold | `editor_view:unfold` | | `CTRL-DELETE` | Delete Word Right | `editor:delete_word_right` | | `CTRL-A` | Select All | `editor_view:select_all` | | `CTRL-Y` | Delete All Left | `editor_view:delete_all_left` | | | Delete All Right | `editor_view:delete_all_right` | | `CTRL-END` | Move Cursor to the Bottom | `editor_view:cmd_down` | | `CTRL-I` | Inspect Command | `editor_view:cmd_i` | | `HOME` | Home | `editor_view:home` | | `END` | End | `editor_view:end` | | `CTRL-A` | Move to Start of Line | `editor_view:move_to_line_start` | | `CTRL-B` | Move Cursor Left | `editor_view:left` | | `CTRL-C` | Clear Command Editor | `editor_view:clear_buffer` | | `CTRL-D` | Delete | `editor_view:delete` | | `CTRL-E` | Move to End of Line | `editor_view:move_to_line_end` | | `CTRL-F` | Move Cursor Right / Accept Autosuggestion | `editor_view:right` | | `CTRL-G` | Add Selection for Next Occurrence | `editor_view:add_next_occurrence` | | `CTRL-H` | Remove the Previous Character | `editor_view:backspace` | | `CTRL-J` | Insert Newline | `editor_view:insert_newline` | | `CTRL-K` | Cut All Right | `editor_view:cut_all_right` | | `CTRL-L` | Clear Screen | `input:clear_screen` | | `CTRL-N` | Move Cursor Down | `editor_view:down` | | `CTRL-P` | Move Cursor Up | `editor_view:up` | | | Select to Start of Line | `editor_view:select_to_line_start` | | `CTRL-SHIFT-B` | Select One Character to the Left | `editor_view:select_left` | | `CTRL-SHIFT-DOWN` | Add Cursor Below | `editor_view:add_cursor_below` | | | Select to End of Line | `editor:select_to_line_end` | | `CTRL-Z` | Undo | `editor:undo` | | `CTRL-SHIFT-Z` | Redo | `editor:redo` | | `CTRL-SHIFT-F` | Select One Character to the Right | `editor:select_right` | | | Select Down | `editor_view:select_down` | | `CTRL-SHIFT-P` | Select Up | `editor_view:select_up` | | `CTRL-SHIFT-UP` | Add Cursor Above | `editor_view:add_cursor_above` | | `CTRL-U` | Copy and Clear Selected Lines | `editor_view:clear_and_copy_lines` | | `CTRL-W` | Cut Word Left | `editor_view:cut_word_left` | | `META-.` | Insert Last Word of Previous Command | `editor:insert_last_word_previous_command` | | `META-A` | Move to the Start of the Paragraph | `editor_view:move_to_paragraph_start` | | `CTRL-LEFT` | Move Backward One Word | `editor_view:move_backward_one_word` | | `ALT-D` | Cut Word Right | `editor_view:cut_word_right` | | `META-E` | Move to the End of the Paragraph | `editor_view:move_to_paragraph_end` | | `CTRL-RIGHT` | Move Forward One Word | `editor_view:move_forward_one_word` | | `CTRL-ALT-LEFT` | Move Backward One Subword | `editor_view:move_backward_one_subword` | | `CTRL-ALT-RIGHT` | Move Forward One Subword | `editor_view:move_forward_one_subword` | | `SHIFT-META-<` | Move to the Start of the Buffer | `editor_view:move_to_buffer_start` | | `SHIFT-META->` | Move to the End of the Buffer | `editor_view:move_to_buffer_end` | | `CTRL-SHIFT-LEFT` | Select One Word to the Left | `editor_view:select_left_by_word` | | `CTRL-SHIFT-RIGHT` | Select One Word to the Right | `editor_view:select_right_by_word` | **Terminal** | Shortcut | Command | Action | | ------------------ | ------------------------------------------------- | -------------------------------------------- | | `CTRL-ALT-DOWN` | Switch Panes Down | `pane_group:navigate_down` | | `CTRL-ALT-LEFT` | Switch Panes Left | `pane_group:navigate_left` | | `CTRL-ALT-RIGHT` | Switch Panes Right | `pane_group:navigate_right` | | `CTRL-ALT-UP` | Switch Panes Up | `pane_group:navigate_up` | | `CTRL-ALT-V` | \[a11y] Set Concise Accessibility Announcements | `workspace:set_a11y_concise_verbosity_level` | | `CTRL-ALT-V` | \[a11y] Set Verbose Accessibility Announcements | `workspace:set_a11y_verbose_verbosity_level` | | `CTRL-,` | Open Settings | `workspace:show_settings_modal` | | `CTRL-,` | Open Settings: Account | `workspace:show_settings_account_page` | | `F3` | Find the Next Occurrence of Your Search Query | `find:find_next_occurrence` | | `CTRL-SHIFT-P` | Toggle Command Palette | `workspace:toggle_command_palette` | | | Toggle Mouse Reporting | `workspace:toggle_mouse_reporting` | | `CTRL-SHIFT-[` | Activate Previous Pane | `pane_group:navigate_prev` | | `CTRL-SHIFT-]` | Activate Next Pane | `pane_group:navigate_next` | | | Resize Pane > Move Divider Down | `pane_group:resize_down` | | `CTRL-CMD-K` | Open Keybindings Editor | `workspace:show_keybinding_settings` | | | Resize Pane > Move Divider Left | `pane_group:resize_left` | | | Resize Pane > Move Divider Right | `pane_group:resize_right` | | | Resize Pane > Move Divider Up | `pane_group:resize_up` | | `CTRL-SHIFT-/` | Open Resource Center | `workspace:toggle_resource_center` | | `CTRL-SHIFT-E` | Split Pane Down | `pane_group:add_down` | | `CTRL-SHIFT-ENTER` | Toggle Maximize Active Pane | `pane_group:toggle_maximize_pane` | | `SHIFT-F3` | Find the Previous Occurrence of Your Search Query | `find:find_prev_occurrence` | | | Toggle Navigation Palette | `workspace:toggle_navigation_palette` | **Fundamentals** | Shortcut | Command | Action | | ------------------ | -------------------------- | -------------------------------- | | `CTRL--` | Decrease Font Size | `workspace:decrease_font_size` | | `CTRL-0` | Reset Font Size to Default | `workspace:reset_font_size` | | `CTRL-1` | Switch to 1st Tab | `workspace:activate_first_tab` | | `CTRL-2` | Switch to 2nd Tab | `workspace:activate_second_tab` | | `CTRL-3` | Switch to 3rd Tab | `workspace:activate_third_tab` | | `CTRL-4` | Switch to 4th Tab | `workspace:activate_fourth_tab` | | `CTRL-5` | Switch to 5th Tab | `workspace:activate_fifth_tab` | | `CTRL-6` | Switch to 6th Tab | `workspace:activate_sixth_tab` | | `CTRL-7` | Switch to 7th Tab | `workspace:activate_seventh_tab` | | `CTRL-8` | Switch to 8th Tab | `workspace:activate_eighth_tab` | | `CTRL-9` | Switch to Last Tab | `workspace:activate_last_tab` | | `CTRL-=` | Increase Font Size | `workspace:increase_font_size` | | `CTRL-SHIFT-C` | Copy | `terminal:copy` | | `CTRL-SHIFT-F` | Find | `terminal:find` | | `CTRL-SHIFT-V` | Paste | `terminal:paste` | | `CTRL-SHIFT-T` | Open New Tab | `workspace:open_new_tab` | | `CTRL-ALT-T` | Reopen Closed Tab | `workspace:reopen_closed_tab` | | `CTRL-SHIFT-LEFT` | Move Tab Left | `workspace:move_tab_left` | | `CTRL-SHIFT-RIGHT` | Move Tab Right | `workspace:move_tab_right` | | `CTRL-PAGEUP` | Activate Previous Tab | `workspace:activate_prev_tab` | | `CTRL-PAGEDOWN` | Activate Next Tab | `workspace:activate_next_tab` | | {% endtab %} | | | | {% endtabs %} | | | --- # Source: https://docs.warp.dev/support-and-community/troubleshooting-and-support/known-issues.md # Known Issues {% hint style="info" %} To see a complete list of Warp issues and feature requests, please visit our [GitHub issues page](https://github.com/warpdotdev/Warp/issues?q=is%3Aissue+is%3Aopen+sort%3Acreated-desc). Please note that there are tools that are incompatible with Warp, as listed [below](#list-of-incompatible-tools). You can find debugging information in this [section](#debugging). {% endhint %} ## General ### SSH To enable Blocks over SSH, Warp uses an SSH Wrapper function; navigate to settings > features if you need to disable it. Please see [Troubleshooting Legacy SSH](https://docs.warp.dev/terminal/warpify/ssh-legacy#troubleshooting-ssh) for more info on workarounds to SSH issues, or see the [new SSH Page](https://docs.warp.dev/terminal/warpify/ssh) for more on the upcoming features. ### Online features don't work There is a known issue that can occur that causes online features to break ([Warp AI](https://docs.warp.dev/agent-platform/agent/agents-overview), [Generate](https://docs.warp.dev/agent-platform/agent/generate), [Block Sharing](https://docs.warp.dev/terminal/blocks/block-sharing), [Refer a Friend](https://docs.warp.dev/support-and-community/community/refer-a-friend) ). This is due to the login token going stale, typically due to a password change, and can be resolved by the following steps: {% tabs %} {% tab title="macOS" %} 1. Remove Warp user login with the following command: ```bash sudo security delete-generic-password -l "dev.warp.Warp-Stable" $HOME/Library/Keychains/login.keychain ``` 2. [Login to Warp](https://docs.warp.dev/support-and-community/troubleshooting-and-support/broken-reference) {% endtab %} {% tab title="Windows" %} 1. Remove any user files with the following command: ```powershell Remove-Item $env:LOCALAPPDATA\warp\Warp\data\*-User ``` 2. [Login to Warp](https://docs.warp.dev/support-and-community/troubleshooting-and-support/broken-reference) {% endtab %} {% tab title="Linux" %} 1. Remove Warp user login with your keychain manager (gnome-keyring, kwallet, etc.). Search for `dev.warp.Warp` and delete the `User` password/secret. 2. Remove any user files with the following command: ```bash rm -f ${XDG_STATE_HOME:-$HOME/.local/state}/warp-terminal/*-User ``` 3. [Login to Warp](https://docs.warp.dev/support-and-community/troubleshooting-and-support/broken-reference) {% endtab %} {% endtabs %} ### English-only UI Nov 2021: We have added character support for Chinese, Korean, and Japanese, but our UI currently only supports English. ### Abnormal rendering of Chinese characters If you notice issues with the terminal rendering Chinese characters (i.e. [#3366](https://github.com/warpdotdev/Warp/issues/3366)). Please try adding the following lines to your rc file. ``` export LC_ALL=zh_CN.UTF-8 export LANG=zh_CN.UTF-8 ``` ### Warp fails to render a window This can likely occur due to some corruption in the local sqlite db. You may see a similar error your [logs](https://github.com/warpdotdev/gitbook/blob/main/docs/README.md#gathering-warp-logs): {% code overflow="wrap" %} ``` [WARN] SQLite error 283 (A WAL mode database file was recovered): recovered 383 frames from WAL file /home/xxxxx/.local/state/warp-terminal/warp.sqlite-wal ``` {% endcode %} To try and resolve the issue of Warp not rendering a window, rename the SQLite database found in the [following locations](https://docs.warp.dev/terminal/sessions/session-restoration#session-restoration-database). ### Misc. * When you [SSH](#ssh), we start a bash shell on the remote host. We built a wrapper around SSH to make Warp features possible. * If your default shell is zsh, your aliases typically do not transfer over. Other shells are unsupported for now. * When you open a [non-shell-based subshell (REPL)](https://github.com/warpdotdev/Warp/issues/4082), Warp does not modify the environment — it behaves like a standard terminal session. * Warp may become unresponsive if it doesn't have permission to access the folders. * [No touch input support](https://github.com/warpdotdev/Warp/issues/5347) ## Agent Mode * Note that Agent Mode blocks are not shareable during [session sharing](https://docs.warp.dev/warp/knowledge-and-collaboration/session-sharing/). Participants will be able to share regular shell commands that are run, but will not be able to share AI interactions (requested commands, AI blocks, etc.). * Block actions such as [Block Sharing](https://docs.warp.dev/terminal/blocks/block-sharing) are not available on Agent Mode AI blocks. * Agents do not have up-to-date information on several commands’ completion specs * Agent Mode works better with Warp's default prompt settings, where the prompt starts on a new line, than it does with a same-line prompt. If you are using the same-line prompt, the cursor will jump from the end of the single line to the start of the input box when you switch to Agent Mode. ## Shells ### fish shell `read` command There is an issue in fish shell version 3.6 and below that causes the `read` built-in command to break Warp's integration with fish. This means that using `read` directly or any fish scripts that call `read` will not work as expected in Warp. That issue is resolved in the fish repository and so should be fixed in the next release of fish itself. We recommend upgrading fish to the most recent version to resolve this issue. ### Warp shell loads slowly due to EDR If you comment out the rc files (i.e. `~/.zshrc`, `~/.bashrc`, `~/.config/fish/config.fish`), and still notice a slowdown on loading the shell. It could be due to an Endpoint Detection and Response or EDR (i.e. Sentinel One, CrowdStrike, Carbon Black) causing the issue. Please restart your system and see if the issue persists. If so, please [Send us Feedback](https://github.com/warpdotdev/gitbook/blob/main/docs/README.md) and provide details of your EDR, OS, shell, etc. ### Configuring and debugging your RC files To support Blocks ([custom hooks](https://blog.warp.dev/how-warp-works/#implementing-blocks)), a native Input Editor experience, AI blocks, etc. we have built custom support for a subset of shell functionality (decouple functionality from the shell and move to the terminal). This leads to Warp being incompatible with various tools and plugins. Please see the [list of incompatible](#list-of-incompatible-tools) tools to find the tools that are known not to work with Warp. Unlike typical terminals which are essentially continuous character grids, each section of Warp is its own (separate) UI element. Please see our [Prompt](https://docs.warp.dev/terminal/appearance/prompt) page for more information on custom prompts. #### Debugging If Warp is not working with your dotfile configuration, you can run your shell in Warp with a clean configuration using examples below: {% tabs %} {% tab title="bash" %} You can set up clean configs for Bash (Bourne Again SHell) by moving or commenting out your `.bashrc`\ \ If Warp starts working correctly then Warp is incompatible with something in the current dotfiles. We can isolate what is incompatible by iteratively disabling sections of our dotfiles with the `WarpTerminal` flag until we find the culprit. See the list of incompatible tools below and comment them out just for Warp with the following conditionals:
# bash (See ~/.bashrc)
if [[ $TERM_PROGRAM != "WarpTerminal" ]]; then
##### WHAT YOU WANT TO DISABLE FOR WARP - BELOW
    # Unsupported plugin/prompt code here, i.e.
##### WHAT YOU WANT TO DISABLE FOR WARP - ABOVE
fi
{% endtab %} {% tab title="zsh" %} You can set up clean configs for Zsh (Z SHell) by moving or commenting out your `.zshrc`\ \ If Warp starts working correctly then Warp is incompatible with something in the current dotfiles. We can isolate what is incompatible by iteratively disabling sections of our dotfiles with the `WarpTerminal` flag until we find the culprit. See the list of incompatible tools below and comment them out just for Warp with the following conditional: ```bash # zsh (See ~/.zshrc) if [[ $TERM_PROGRAM != "WarpTerminal" ]]; then ##### WHAT YOU WANT TO DISABLE FOR WARP - BELOW # Unsupported plugin/prompt code here ##### WHAT YOU WANT TO DISABLE FOR WARP - ABOVE fi ``` {% endtab %} {% tab title="fish" %} You can set up clean configs for Fish (Friendly Interactive SHell) by moving or commenting out your `config.fish`\ \ If Warp starts working correctly then Warp is incompatible with something in the current config file. We can isolate what is incompatible by iteratively disabling sections of our config file with the `WarpTerminal` flag until we find the culprit. See the list of incompatible tools below and comment them out just for Warp with the following conditional: ```bash # fish (see ~/.config/fish/config.fish) if test "$TERM_PROGRAM" != "WarpTerminal" ##### WHAT YOU WANT TO DISABLE FOR WARP - BELOW # Unsupported plugin/prompt code here ##### WHAT YOU WANT TO DISABLE FOR WARP - ABOVE end ``` {% endtab %} {% tab title="pwsh" %} You can set up clean configs for pwsh (PowerShell) by moving or commenting out your `$PROFILE` If Warp starts working correctly then Warp is incompatible with something in the current profile. We can isolate what is incompatible by iteratively disabling sections of our profile with the WarpTerminal flag until we find the culprit. See the list of incompatible tools below and comment them out just for Warp with the following conditional:
# pwsh (see $PROFILE)
if ($env:TERM_PROGRAM -ne "WarpTerminal") {
    ##### WHAT YOU WANT TO DISABLE FOR WARP - BELOW
    # Unsupported plugin/prompt code here
    ##### WHAT YOU WANT TO DISABLE FOR WARP - ABOVE
}
{% endtab %} {% endtabs %} #### List of incompatible tools The following non exhaustive list of plugins, prompts, or tools can cause potential issues in Warp: * oh-my-fish, oh-my-bash, or other unsupported shell prompts. See our [Custom Prompt Compatibility Table](https://docs.warp.dev/terminal/appearance/prompt#custom-prompt-compatibility-table). * [iterm shell integration](https://iterm2.com/documentation-shell-integration.html) * `test -e "${HOME}/.iterm2_shell_integration.zsh" && source "${HOME}/.iterm2_shell_integration.zsh" || true` * [Termium](https://codeium.com/blog/termium-codeium-in-terminal-launch) * `eval "$(termium shell-hook show pre)"` * `eval "$(termium shell-hook show post)"` * [thefuck experimental instant mode](https://github.com/nvbn/thefuck?tab=readme-ov-file#experimental-instant-mode) * `eval $(thefuck --alias --enable-experimental-instant-mode)` * [fubectl](https://github.com/kubermatic/fubectl) * `[ -f ${HOME}/bin/fubectl.source ] && source ${HOME}/bin/fubectl.source` * [BIND keys](https://github.com/warpdotdev/Warp/issues/537) * `bindkey '^j' down-line-or-beginning-search`, which causes users to have to hit ENTER twice to run a command. * `bindkey 'tab' autosuggest-accept`, which causes incorrect behavior with autocompletion. * `z`, `compdef`, `compinit`, [prezto utility module](https://github.com/sorin-ionescu/prezto/blob/master/modules/utility/README.md), [bash-it](https://github.com/Bash-it/bash-it), CodeWhisperer or other [shell-based completion](https://github.com/warpdotdev/Warp/discussions/434) plugins. * OH-MY-ZSH Themes * e.g. avit, spaceship, maybe more ... * OH-MY-ZSH Plugins * e.g. zsh-autosuggestions, zsh-autocomplete, maybe more ... * Oh-My-Tmux * zsh4h (ZSH for Humans) * znap * FZF * `[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && "/usr/local/etc/profile.d/bash_completion.sh"` * `eval "$(rbenv init -)"` * `grml-zsh-config` * Python virtual environment PS1 [settings](https://github.com/warpdotdev/Warp/issues/2713#issuecomment-1447129449) * [Starship settings](https://docs.warp.dev/terminal/appearance/prompt#starship-settings) * `zle-line-init` * Potentially more — this is an non exhaustive list. If you find an incompatible tool, please email us at ## Operating systems {% tabs %} {% tab title="macOS" %} **SSH to local network device is denied on macOS** On macOS, you may be [denied permission to SSH](https://github.com/warpdotdev/Warp/issues/5550) from Warp into other devices in your local network and see an error like: `ssh: connect to host port 22: Undefined error: 0`.\ To resolve this issue, go to `Mac > System Settings > Privacy & Security > Local Network`, and add Warp.

Mac SSH permission error

**Unexpected loss of permission on macOS** On macOS, you may see a `Operation not permitted` error when trying to run commands in directories that have already been granted macOS permissions (Documents, Downloads, Desktop, etc). The best workaround at this time, is to [apply any pending Updates](https://docs.warp.dev/support-and-community/troubleshooting-and-support/updating-warp) so that the new Warp binary has the correct permissions. We are and tracking this issue [here](https://github.com/warpdotdev/Warp/issues/3009).

Permission error on macOS

**Auto-Update error on macOS** Warp may have an error opening after auto-update on macOS Ventura. This issue has been resolved for current and future releases of Warp. To avoid the issue, [update Warp](https://docs.warp.dev/support-and-community/troubleshooting-and-support/updating-warp) *before* you upgrade to macOS Ventura.\ \ If you experience an error opening Warp, please try the following: * Go to the macOS Applications folder, right-click on Warp, choose Open, then the '"Warp" is damaged' dialog will have the option to click the Open button.
* If the above doesn't work, [uninstall Warp](https://github.com/warpdotdev/gitbook/blob/main/docs/support-and-community/troubleshooting-and-support/uninstalling-warp.md), then [re-install Warp](https://docs.warp.dev/support-and-community/troubleshooting-and-support/broken-reference). **Running x86 commands with macOS** In some cases, [CLI applications only work on x86](https://discord.com/channels/851854972600451112/1204829324847358002) so you can run Warp with Rosetta on macOS to be able to use them by doing the following. * Go to `Finder > Applications` and search for Warp. * Right-click and select Get Info. * Then check the box on Open with Rosetta. {% endtab %} {% tab title="Windows" %} **Unsupported in Warp on Windows** The following feature are not supported in Warp on Windows. Please track the relevant GitHub issues linked below for any changes: * [cmd.exe](https://github.com/warpdotdev/Warp/issues/5882) or [fish](https://github.com/warpdotdev/Warp/issues/6060) shells **Warp won't run on Windows** We're tracking some issues on Windows where [Warp crashes on startup](https://github.com/warpdotdev/Warp/issues/5840) or doesn't render, with some possible workarounds below. If none of the workarounds help, please open a [new GitHub issue](https://github.com/warpdotdev/warp/issues/new/choose) and include [logs](https://github.com/warpdotdev/gitbook/blob/main/docs/README.md#gathering-warp-logs), installation (Baremetal or VM, x86\_64 or ARM64), and the issue you had. * Graphics * You can select the graphics backend used to render new Warp windows in the Settings menu, under `Features` > `System` > `Preferred graphics backend`. * You can also opt to render new Warp windows with an integrated GPU, under `Features` > `System` > `Prefer rendering new windows with integrated GPU (low power)`. **Crash on opening a Launch configuration or doesn't become transparent on Windows** When a user has an Nvidia 572.xx or AMD 23.10.x drivers or above, Warp may [crash when trying to open a Launch Configuration](https://github.com/warpdotdev/Warp/issues/5875), or [Warp fails to become transparent](https://github.com/warpdotdev/Warp/issues/5903) (opacity setting doesn't work). These are known limitations of the graphics drivers. We're investigating the issues and will updated on the GitHub issues above. You can workaround this by forcing the graphics backend to Vulkan or OpenGL by running the following from another terminal and setting your GPU driver Vulkan/OpenGL render method setting to "Prefer Native", or using the [DX12 backend](#warp-wont-run-or-render-on-windows): ```powershell # Run if Warp on Windows is installed for a single user $env:WGPU_BACKEND="vulkan,gl"; & "$env:LOCALAPPDATA\Programs\Warp\warp.exe" # Run if Warp on Windows is installed for all users $env:WGPU_BACKEND="vulkan,gl"; & "$env:PROGRAMFILES\Warp\warp.exe" ``` {% endtab %} {% tab title="Linux" %} **Warp won't run on Linux** We're tracking some issues on Linux where a [Warp window doesn't show/render](https://github.com/warpdotdev/Warp/issues/4215) and won't run in [Virtual Machines](https://github.com/warpdotdev/Warp/issues/4476), over [remote desktops](https://github.com/warpdotdev/Warp/issues/4435), or on [WSL](https://github.com/warpdotdev/Warp/issues/4240). Some possible workarounds are below. If none of the workarounds help, please open a [new GitHub issue](https://github.com/warpdotdev/warp/issues/new/choose) and include [logs](https://github.com/warpdotdev/gitbook/blob/main/docs/README.md#gathering-warp-logs) with your Linux distro, installation (WSL, Baremetal or VM, x86\_64 or ARM64), and the issue you had. {% hint style="info" %} * Many package install examples are for Ubuntu using `apt`, your distro may use different commands (`dnf`, `pacman`, `zypper`) or package names. * GPU Drivers and Default GPU / Graphics API environmental variables are system-dependent. e.g. AMD vs NVIDIA and OpenGL vs Vulkan {% endhint %} * System * Installing or Updating [Xorg](https://www.x.org/wiki/) / [Wayland](https://wayland.freedesktop.org/): `sudo apt install xserver-xorg` / `sudo apt install wayland` * Installing [Hack font](https://sourcefoundry.org/hack/) on WSL and VMs: `sudo apt install fonts-hack` * Install [WSL utilities](https://wslutiliti.es/wslu/install.html): `sudo apt install wslu` * Install Mesa utilities: `sudo apt install mesa-utils` * Install Mesa Vulkan drivers: `sudo apt install mesa-vulkan-drivers` * If unable to use the file picker: `sudo apt install xdg-desktop-portal xdg-desktop-portal-gtk zenity` * If unable to copy-paste: `sudo apt install wl-clipboard` * Graphics * Install or Update your GPU driver: e.g. [NVIDIA](https://github.com/warpdotdev/Warp/issues/4215#issuecomment-1969750786) 535.x or below drivers * For Ubuntu: `sudo ubuntu-drivers install` * For Fedora: `sudo dnf install akmod-nvidia` * For Arch Linux: `sudo pacman -S nvidia` * For openSUSE: `sudo zypper install x11-video-nvidiaG05` * Use [Low Power (integrated) GPU](https://github.com/warpdotdev/Warp/issues/4215#issuecomment-1967500574) in `~/.config/warp-terminal/user_preferences.json` file: `{"prefs":{"PreferLowPowerGPU": "true",}}`. The low-power workaround is particularly helpful if you see [`Unrecognized device error ERROR_INITIALIZATION_FAILED` in warp.log](https://github.com/warpdotdev/Warp/issues/4390#issuecomment-1989493913). * Environmental Variables * Prefix `warp-terminal` with the variables (multiple can be used), and once you confirm they work, `export` them in your `.profile`/`.zprofile` to [load on startup](https://github.com/warpdotdev/Warp/issues/4240#issuecomment-1968228029): * [Default to Wayland](https://github.com/warpdotdev/Warp/issues/4240#issuecomment-1961993281): `WARP_ENABLE_WAYLAND=1` * Set [Default GPU](https://docs.mesa3d.org/drivers/d3d12.html#utilities) for WSL: e.g. `MESA_D3D12_DEFAULT_ADAPTER_NAME=NVIDIA` * Set [Graphics APIs](https://github.com/gfx-rs/wgpu?tab=readme-ov-file#environment-variables): e.g. `WGPU_BACKEND=gl` **Update fails after upgrading Linux** Some Linux distros may modify Warp's package repository during the the OS upgrades. We're aware of this on Ubuntu, but this may affect other Linux distros. We're tracking this issue on GitHub [here](https://github.com/warpdotdev/Warp/issues/5201).\ \ To workaround this issue, manually add the repository to update Warp. The Ubuntu example is below: ``` sudo apt-get install wget gpg wget -qO- https://releases.warp.dev/linux/keys/warp.asc | gpg --dearmor > warpdotdev.gpg sudo install -D -o root -g root -m 644 warpdotdev.gpg /etc/apt/keyrings/warpdotdev.gpg sudo sh -c 'echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/warpdotdev.gpg] https://releases.warp.dev/linux/deb stable main" > /etc/apt/sources.list.d/warpdotdev.list' rm warpdotdev.gpg sudo apt update && sudo apt install warp-terminal ``` See the instructions for other Linux distros on our [Quick Start Guide](https://docs.warp.dev/support-and-community/troubleshooting-and-support/broken-reference). {% endtab %} {% endtabs %} --- # Source: https://docs.warp.dev/terminal/sessions/launch-configurations.md # Launch Configurations ## What is it With Launch configurations you can save in the app or by adding a yaml file. ## Creating a Launch Configuration ### From the UI 1. Set up the configuration of windows, tabs, and panes you would like to save. 2. Open the [Command Palette](https://docs.warp.dev/terminal/command-palette), and type in `Save New Launch Configuration`. 3. Name the configuration file. The name field cannot be empty. 4. Click the Save configuration button. ### With a YAML File * Launch Configurations files are generated when you create them with the UI and can also be created or modified manually. * Please see the below for [Launch Configuration YAML file locations, format, and examples](#launch-configuration-yaml-format). ## Using a Launch Configuration {% tabs %} {% tab title="macOS" %} * From the [Command Palette](https://docs.warp.dev/terminal/command-palette), enter `Launch Configuration` to open and select Launch Configuration. * Right-clicking the new Tab **+** button to open a menu and select saved Launch Configuration. * From the Mac Menu, `File > Launch Configurations`, where you can search through and open your saved Launch Configuration. * Single-window launch configs can be launched into the active window from the launch configuration palette using `CMD-ENTER` on Mac. {% endtab %} {% tab title="Windows" %} * From the [Command Palette](https://docs.warp.dev/terminal/command-palette), enter `Launch Configuration` to open and select Launch Configuration. * Right-clicking the new Tab **+** button to open a menu and select saved Launch Configuration. * Single-window launch configs can be launched into the active window from the launch configuration palette using `CTRL-ENTER` on Linux. To open a WSL tab with a Launch Configuration, you must first set WSL as your default shell in Warp: * Go to `Settings > Features > Session > Startup shell for new sessions`. * Select your desired WSL distribution (e.g., Ubuntu) as the default shell. After this, any Launch Configuration you open will use WSL as the shell. {% endtab %} {% tab title="Linux" %} * From the [Command Palette](https://docs.warp.dev/terminal/command-palette), enter `Launch Configuration` to open and select Launch Configuration. * Right-clicking the new Tab **+** button to open a menu and select saved Launch Configuration. * Single-window launch configs can be launched into the active window from the launch configuration palette using `CTRL-ENTER` on Linux. {% endtab %} {% endtabs %} {% hint style="success" %} **Terminal Tip**\ You can open saved Launch Configurations via Alfred Workflow or [Raycast](https://docs.warp.dev/integrations-and-plugins#raycast) Extension. Learn more [here](https://blog.joe.codes/open-warp-launch-configurations-from-raycast-and-alfred). Credit to [@joetannenbaum](https://twitter.com/joetannenbaum/status/1633538768866009115) {% endhint %} ## How it works {% embed url="" %} Launch Configuration Demo {% endembed %} ## Launch Configuration YAML Format All Launch Configuration yaml files are stored in the following location: {% tabs %} {% tab title="macOS" %} ```bash $HOME/.warp/launch_configurations/ ``` {% endtab %} {% tab title="Windows" %} ```powershell $env:APPDATA\warp\Warp\data\launch_configurations\ ``` {% endtab %} {% tab title="Linux" %} ```bash ${XDG_DATA_HOME:-$HOME/.local/share}/warp-terminal/launch_configurations/ ``` {% endtab %} {% endtabs %} {% hint style="warning" %} The `cwd:` value in the yaml code must contain an absolute path or `""`. Note that `~` or empty paths will result in the file not being visible on the list of options for Launch Configurations. {% endhint %} ### Windows Sample configuration that shows how windows are structured in launch configuration files. ```yaml # Warp Launch Configuration # # This configuration has two windows, # each with one tab in different starting directories. --- name: Example Windows windows: - tabs: - title: Documents layout: cwd: /Users/warp-user/Documents color: blue - tabs: - title: Warp User layout: cwd: /Users/warp-user color: green ``` ### Tabs Here's a sample configuration that shows how tabs are structured in launch configuration files. * Use the `title` field to set a custom tab name * Use the `color` field to set the tab color * We currently support using the terminal colors (ANSI colors): `Red | Green | Yellow | Blue | Magenta | Cyan` The actual color values will be automatically derived from your Warp theme ```yaml # Warp Launch Configuration # # This configuration has two tabs in the same window. --- name: Example Tabs windows: - tabs: - title: Documents layout: cwd: /Users/warp-user/Documents color: blue - title: Warp User layout: cwd: /Users/warp-user color: green ``` ### Panes Launch Configurations support setting split panes in each tab. Note that Warp also supports nesting split panes in launch configuration files. ```yaml # Warp Launch Configuration # # This configuration is two windows, each with split panes. # The first window contains a vertically split tab with two panes. # The second window contains a horizontally split tab, # with a vertically split tab on the right. --- name: Example Panes windows: - tabs: - title: Downloads and Warp User layout: split_direction: vertical panes: - cwd: /Users/warp-user/Downloads - cwd: /Users/warp-user color: blue - tabs: - title: Desktop, Documents, and Warp User layout: split_direction: horizontal panes: - cwd: /Users/warp-user/Desktop - split_direction: vertical panes: - cwd: /Users/warp-user/Documents - cwd: /Users/warp-user color: green ``` ### Active and Focus Sample configuration that shows how a Window and Tab can be activated with a session in focus. * Use the `active_window_index` and `active_tab_index`fields to set your active Window and Tab. * Use the `is_focused` field to set which Pane is focused in each tab. {% hint style="warning" %} Not that when you use `- active_tab_index:` the `tabs:` field doesn't need the `-` prefix, as this can cause syntax issues. {% endhint %} ```yaml # Warp Launch Configuration # # This configurations has two tabs, with the second tab active. # Two vertical split panes in the first tab and the top pane focused. # Two horizontal split panes in the second tab and the right pane focused. --- name: Example Active and Focus active_window_index: 0 windows: - active_tab_index: 1 tabs: - title: Tab 1 layout: split_direction: vertical panes: - cwd: /Users/warp-user/Documents is_focused: true - cwd: /Users/warp-user/Documents/Projects - title: Tab 2 layout: split_direction: horizontal panes: - cwd: /Users/warp-user/Downloads - cwd: /Users/warp-user is_focused: true ``` ### Commands Use the `commands` field to define a set of commands to run when a launch configuration in run. {% hint style="warning" %} You may need to use double quotes for commands with special characters. Commands in separate lines are chained together with `&&` when run, as such commands run after `ssh` commands may not execute. {% endhint %} ```yaml # Warp Launch Configuration # # This configuration has two windows, # the first window executes two commands on start, # the second window has a split pane that executes a command on start. --- name: Example Commands windows: - tabs: - title: Documents layout: cwd: /Users/warp-user/Documents commands: - exec: ls - exec: code . color: blue - tabs: - title: Downloads layout: split_direction: vertical panes: - cwd: /Users/warp-user/Downloads commands: - exec: curl http://example.com -o my.file - exec: cp my.file my.file2 - cwd: /Users/warp-user commands: - exec: ssh user@remote.server.com color: green ``` --- # Source: https://docs.warp.dev/support-and-billing/licenses.md # Open Source Licenses ## Cargo based licenses Repositories are by default GitHub if not otherwise specified. | Name | License | Repository | | ----------------------------- | --------------------------------------------------- | -----------------------------------------------------: | | addr2line | Apache-2.0 OR MIT | gimli-rs/addr2line | | adler | 0BSD OR Apache-2.0 OR MIT | jonas-schievink/adler.git | | adler32 | Zlib | remram44/adler32-rs | | aho-corasick | MIT OR Unlicense | BurntSushi/aho-corasick | | analytics | MIT | | | ansi\_term | MIT | | | anyhow | Apache-2.0 OR MIT | dtolnay/anyhow | | arrayref | BSD-2-Clause | droundy/arrayref | | arrayvec | Apache-2.0 OR MIT | bluss/arrayvec | | as-slice | Apache-2.0 OR MIT | japaric/as-slice | | ascii | Apache-2.0 OR MIT | tomprogrammer/rust-ascii | | async-broadcast | Apache-2.0 OR MIT | smol-rs/async-broadcast | | async-channel | Apache-2.0 OR MIT | smol-rs/async-channel | | async-executor | Apache-2.0 OR MIT | stjepang/async-executor | | async-fs | Apache-2.0 OR MIT | stjepang/async-fs | | async-io | Apache-2.0 OR MIT | smol-rs/async-io | | async-lock | Apache-2.0 OR MIT | smol-rs/async-lock | | async-net | Apache-2.0 OR MIT | smol-rs/async-net | | async-process | Apache-2.0 OR MIT | smol-rs/async-process | | async-task | Apache-2.0 OR MIT | stjepang/async-task | | async-task | Apache-2.0 OR MIT | stjepang/async-task | | atomic-waker | Apache-2.0 OR MIT | stjepang/atomic-waker | | atty | MIT | softprops/atty | | autocfg | Apache-2.0 OR MIT | cuviper/autocfg | | backtrace | Apache-2.0 OR MIT | rust-lang/backtrace-rs | | base64 | Apache-2.0 OR MIT | marshallpierce/rust-base64 | | base64 | Apache-2.0 OR MIT | marshallpierce/rust-base64 | | bindgen | BSD-3-Clause | rust-lang/rust-bindgen | | bitflags | Apache-2.0 OR MIT | bitflags/bitflags | | block | MIT | SSheldon/rust-block | | blocking | Apache-2.0 OR MIT | stjepang/blocking | | bounded-vec-deque | BSD-3-Clause OR GPL-3.0+ | | | bumpalo | Apache-2.0 OR MIT | fitzgen/bumpalo | | bytemuck | Apache-2.0 OR MIT OR Zlib | Lokathor/bytemuck | | byteorder | MIT OR Unlicense | BurntSushi/byteorder | | bytes | MIT | tokio-rs/bytes | | bytes | MIT | tokio-rs/bytes | | cache-padded | Apache-2.0 OR MIT | stjepang/cache-padded | | cc | Apache-2.0 OR MIT | alexcrichton/cc-rs | | cexpr | Apache-2.0 OR MIT | jethrogb/rust-cexpr | | cfg-if | Apache-2.0 OR MIT | alexcrichton/cfg-if | | cfg-if | Apache-2.0 OR MIT | alexcrichton/cfg-if | | chrono | Apache-2.0 OR MIT | chronotope/chrono | | clang-sys | Apache-2.0 | KyleMayes/clang-sys | | clap | MIT | clap-rs/clap | | cloudabi | BSD-2-Clause | nuxinl/cloudabi | | cmake | Apache-2.0 OR MIT | alexcrichton/cmake-rs | | cocoa | Apache-2.0 OR MIT | servo/core-foundation-rs | | cocoa-foundation | Apache-2.0 OR MIT | servo/core-foundation-rs | | color\_quant | MIT | image-rs/color\_quant.git | | combine | MIT | Marwes/combine | | concurrent-queue | Apache-2.0 OR MIT | stjepang/concurrent-queue | | const\_format | Zlib | rodrimati1992/const\_format\_crates/ | | const\_format\_proc\_macros | Zlib | rodrimati1992/const\_format\_crates/ | | convert\_case | MIT | rutrum/convert-case | | core-foundation | Apache-2.0 OR MIT | servo/core-foundation-rs | | core-foundation | Apache-2.0 OR MIT | servo/core-foundation-rs | | core-foundation | Apache-2.0 OR MIT | servo/core-foundation-rs | | core-foundation-sys | Apache-2.0 OR MIT | servo/core-foundation-rs | | core-foundation-sys | Apache-2.0 OR MIT | servo/core-foundation-rs | | core-foundation-sys | Apache-2.0 OR MIT | servo/core-foundation-rs | | core-graphics | Apache-2.0 OR MIT | servo/core-foundation-rs | | core-graphics | Apache-2.0 OR MIT | servo/core-foundation-rs | | core-graphics-types | Apache-2.0 OR MIT | servo/core-foundation-rs | | core-graphics-types | Apache-2.0 OR MIT | servo/core-foundation-rs | | core-text | Apache-2.0 OR MIT | servo/core-foundation-rs | | crc32fast | Apache-2.0 OR MIT | srijs/rust-crc32fast | | crossbeam-channel | Apache-2.0 OR MIT | crossbeam-rs/crossbeam | | crossbeam-deque | Apache-2.0 OR MIT | crossbeam-rs/crossbeam | | crossbeam-epoch | Apache-2.0 OR MIT | crossbeam-rs/crossbeam | | crossbeam-utils | Apache-2.0 OR MIT | crossbeam-rs/crossbeam | | ctor | Apache-2.0 OR MIT | mmastrac/rust-ctor | | darling | MIT | TedDriggs/darling | | darling\_core | MIT | TedDriggs/darling | | darling\_macro | MIT | TedDriggs/darling | | dashmap | MIT | xacrimon/dashmap | | data-url | Apache-2.0 OR MIT | servo/rust-url | | debugid | Apache-2.0 | getsentry/rust-debugid | | deflate | Apache-2.0 OR MIT | image-rs/deflate-rs | | derive-new | MIT | nrc/derive-new | | diesel | Apache-2.0 OR MIT | diesel-rs/diesel | | diesel\_derives | Apache-2.0 OR MIT | diesel-rs/diesel/tree/master/diesel\_derives | | diesel\_migrations | Apache-2.0 OR MIT | | | dirs | Apache-2.0 OR MIT | soc/dirs-rs | | dirs-next | Apache-2.0 OR MIT | xdg-rs/dirs | | dirs-sys | Apache-2.0 OR MIT | dirs-dev/dirs-sys-rs | | dirs-sys-next | Apache-2.0 OR MIT | xdg-rs/dirs/tree/master/dirs-sys | | doc-comment | MIT | GuillaumeGomez/doc-comment | | dtoa | Apache-2.0 OR MIT | dtolnay/dtoa | | dunce | CC0-1.0 | | | dwrote | MPL-2.0 | servo/dwrote-rs | | easy-parallel | Apache-2.0 OR MIT | stjepang/easy-parallel | | either | Apache-2.0 OR MIT | bluss/either | | embed\_plist | Apache-2.0 OR MIT | nvzqz/embed-plist-rs | | enclose | MIT | clucompany/Enclose.git | | encoding\_rs | Apache-2.0 OR MIT | hsivonen/encoding\_rs | | env\_logger | Apache-2.0 OR MIT | env-logger-rs/env\_logger/ | | event-listener | Apache-2.0 OR MIT | stjepang/event-listener | | expat-sys | MIT | servo/libexpat/ | | failure | Apache-2.0 OR MIT | rust-lang-nursery/failure | | failure\_derive | Apache-2.0 OR MIT | rust-lang-nursery/failure | | fastrand | Apache-2.0 OR MIT | smol-rs/fastrand | | filetime | Apache-2.0 OR MIT | alexcrichton/filetime | | flate2 | Apache-2.0 OR MIT | rust-lang/flate2-rs | | float-cmp | MIT | mikedilger/float-cmp | | float-ord | Apache-2.0 OR MIT | notriddle/rust-float-ord | | fnv | Apache-2.0 OR MIT | servo/rust-fnv | | font-kit | Apache-2.0 OR MIT | servo/font-kit | | fontdb | MIT | RazrFalcon/fontdb | | foreign-types | Apache-2.0 OR MIT | sfackler/foreign-types | | foreign-types-shared | Apache-2.0 OR MIT | sfackler/foreign-types | | form\_urlencoded | Apache-2.0 OR MIT | servo/rust-url | | freetype | Apache-2.0 OR MIT | servo/rust-freetype | | freetype-sys | MIT | PistonDevelopers/freetype-sys.git | | fs\_extra | MIT | webdesus/fs\_extra | | fsevent | MIT | octplane/fsevent-rust | | fsevent-sys | MIT | octplane/fsevent-rust/tree/master/fsevent-sys | | fsio | Apache-2.0 | sagiegurari/fsio.git | | fuchsia-zircon | BSD-3-Clause | | | fuchsia-zircon-sys | BSD-3-Clause | | | futures | Apache-2.0 OR MIT | rust-lang/futures-rs | | futures-channel | Apache-2.0 OR MIT | rust-lang/futures-rs | | futures-core | Apache-2.0 OR MIT | rust-lang/futures-rs | | futures-executor | Apache-2.0 OR MIT | rust-lang/futures-rs | | futures-io | Apache-2.0 OR MIT | rust-lang/futures-rs | | futures-lite | Apache-2.0 OR MIT | smol-rs/futures-lite | | futures-macro | Apache-2.0 OR MIT | rust-lang/futures-rs | | futures-sink | Apache-2.0 OR MIT | rust-lang/futures-rs | | futures-task | Apache-2.0 OR MIT | rust-lang/futures-rs | | futures-util | Apache-2.0 OR MIT | rust-lang/futures-rs | | fuzzy-matcher | MIT | lotabout/fuzzy-matcher | | generic-array | MIT | fizyk20/generic-array.git | | generic-array | MIT | fizyk20/generic-array.git | | generic-array | MIT | fizyk20/generic-array.git | | getrandom | Apache-2.0 OR MIT | rust-random/getrandom | | getrandom | Apache-2.0 OR MIT | rust-random/getrandom | | getset | MIT | Hoverbear/getset | | gif | Apache-2.0 OR MIT | image-rs/image-gif | | gimli | Apache-2.0 OR MIT | gimli-rs/gimli | | git2 | Apache-2.0 OR MIT | rust-lang/git2-rs | | glob | Apache-2.0 OR MIT | rust-lang/glob | | graphql-introspection-query | Apache-2.0 OR MIT | graphql-rust/graphql-client | | graphql-parser | Apache-2.0 OR MIT | | | graphql\_client | Apache-2.0 OR MIT | graphql-rust/graphql-client | | graphql\_client\_codegen | Apache-2.0 OR MIT | graphql-rust/graphql-client | | graphql\_query\_derive | Apache-2.0 OR MIT | graphql-rust/graphql-client | | h2 | MIT | hyperium/h2 | | h2 | MIT | hyperium/h2 | | hash32 | Apache-2.0 OR MIT | japaric/hash32 | | hashbrown | Apache-2.0 OR MIT | rust-lang/hashbrown | | heapless | Apache-2.0 OR MIT | japaric/heapless | | heck | Apache-2.0 OR MIT | withoutboats/heck | | hermit-abi | Apache-2.0 OR MIT | hermitcore/libhermit-rs | | hex | Apache-2.0 OR MIT | KokaKiwi/rust-hex | | hostname | MIT | svartalf/hostname | | http | Apache-2.0 OR MIT | hyperium/http | | http-body | MIT | hyperium/http-body | | http-body | MIT | hyperium/http-body | | httparse | Apache-2.0 OR MIT | seanmonstar/httparse | | httpdate | Apache-2.0 OR MIT | pyfisch/httpdate | | httpdate | Apache-2.0 OR MIT | pyfisch/httpdate | | humantime | Apache-2.0 OR MIT | tailhook/humantime | | hyper | MIT | hyperium/hyper | | hyper | MIT | hyperium/hyper | | hyper-tls | Apache-2.0 OR MIT | hyperium/hyper-tls | | ident\_case | Apache-2.0 OR MIT | TedDriggs/ident\_case | | idna | Apache-2.0 OR MIT | servo/rust-url/ | | image | MIT | image-rs/image | | indexmap | Apache-2.0 OR MIT | bluss/indexmap | | inotify | ISC | inotify-rs/inotify | | inotify-sys | ISC | hannobraun/inotify-sys | | instant | BSD-3-Clause | sebcrozet/instant | | iovec | Apache-2.0 OR MIT | carllerche/iovec | | ipnet | Apache-2.0 OR MIT | krisprice/ipnet | | itertools | Apache-2.0 OR MIT | rust-itertools/itertools | | itoa | Apache-2.0 OR MIT | dtolnay/itoa | | jobserver | Apache-2.0 OR MIT | alexcrichton/jobserver-rs | | jpeg-decoder | Apache-2.0 OR MIT | image-rs/jpeg-decoder | | js-sys | Apache-2.0 OR MIT | rustwasm/wasm-bindgen/tree/master/crates/js-sys | | kernel32-sys | MIT | retep998/winapi-rs | | kqueue | MIT | | | kqueue-sys | MIT | | | kurbo | Apache-2.0 OR MIT | linebender/kurbo | | lazy\_static | Apache-2.0 OR MIT | rust-lang-nursery/lazy-static.rs | | lazycell | Apache-2.0 OR MIT | indiv0/lazycell | | libc | Apache-2.0 OR MIT | rust-lang/libc | | libgit2-sys | Apache-2.0 OR MIT | rust-lang/git2-rs | | libloading | ISC | nagisa/rust\_libloading/ | | libsqlite3-sys | MIT | rusqlite/rusqlite | | libz-sys | Apache-2.0 OR MIT | rust-lang/libz-sys | | linked-hash-map | Apache-2.0 OR MIT | contain-rs/linked-hash-map | | lock\_api | Apache-2.0 OR MIT | Amanieu/parking\_lot | | lock\_api | Apache-2.0 OR MIT | Amanieu/parking\_lot | | log | Apache-2.0 OR MIT | rust-lang/log | | malloc\_buf | MIT | SSheldon/malloc\_buf | | match\_cfg | Apache-2.0 OR MIT | gnzlbg/match\_cfg | | matches | MIT | SimonSapin/rust-std-candidates | | maybe-uninit | Apache-2.0 OR MIT | est31/maybe-uninit | | memchr | MIT OR Unlicense | BurntSushi/memchr | | memmap | Apache-2.0 OR MIT | danburkert/memmap-rs | | memmap2 | Apache-2.0 OR MIT | RazrFalcon/memmap2-rs | | memoffset | MIT | Gilnaa/memoffset | | metal | Apache-2.0 OR MIT | gfx-rs/metal-rs | | migrations\_internals | Apache-2.0 OR MIT | | | migrations\_macros | Apache-2.0 OR MIT | | | mime | Apache-2.0 OR MIT | hyperium/mime | | miniz\_oxide | Apache-2.0 OR MIT OR Zlib | Frommi/miniz\_oxide/tree/master/miniz\_oxide | | miniz\_oxide | MIT | Frommi/miniz\_oxide/tree/master/miniz\_oxide | | mio | MIT | tokio-rs/mio | | mio | MIT | tokio-rs/mio | | mio-extras | Apache-2.0 OR MIT | dimbleby/mio-extras | | miow | Apache-2.0 OR MIT | alexcrichton/miow | | miow | Apache-2.0 OR MIT | yoshuawuyts/miow | | native-tls | Apache-2.0 OR MIT | sfackler/rust-native-tls | | net2 | Apache-2.0 OR MIT | deprecrated/net2-rs | | nix | MIT | nix-rust/nix | | nom | MIT | Geal/nom | | notify | CC0-1.0 | notify-rs/notify.git | | ntapi | Apache-2.0 OR MIT | MSxDOS/ntapi | | num-derive | Apache-2.0 OR MIT | rust-num/num-derive | | num-integer | Apache-2.0 OR MIT | rust-num/num-integer | | num-iter | Apache-2.0 OR MIT | rust-num/num-iter | | num-rational | Apache-2.0 OR MIT | rust-num/num-rational | | num-traits | Apache-2.0 OR MIT | rust-num/num-traits | | num\_cpus | Apache-2.0 OR MIT | seanmonstar/num\_cpus | | objc | MIT | SSheldon/rust-objc | | objc-foundation | MIT | SSheldon/rust-objc-foundation | | objc\_exception | MIT | SSheldon/rust-objc-exception | | objc\_id | MIT | SSheldon/rust-objc-id | | object | Apache-2.0 OR MIT | gimli-rs/object | | once\_cell | Apache-2.0 OR MIT | matklad/once\_cell | | openssl | Apache-2.0 | sfackler/rust-openssl | | openssl-probe | Apache-2.0 OR MIT | alexcrichton/openssl-probe | | openssl-sys | MIT | sfackler/rust-openssl | | ordered-float | MIT | reem/rust-ordered-float | | ordered-float | MIT | reem/rust-ordered-float | | parking | Apache-2.0 OR MIT | stjepang/parking | | parking\_lot | Apache-2.0 OR MIT | Amanieu/parking\_lot | | parking\_lot | Apache-2.0 OR MIT | Amanieu/parking\_lot | | parking\_lot\_core | Apache-2.0 OR MIT | Amanieu/parking\_lot | | parking\_lot\_core | Apache-2.0 OR MIT | Amanieu/parking\_lot | | pathfinder\_color | Apache-2.0 OR MIT | servo/pathfinder | | pathfinder\_geometry | Apache-2.0 OR MIT | servo/pathfinder | | pathfinder\_simd | Apache-2.0 OR MIT | servo/pathfinder | | pdqselect | Apache-2.0 OR MIT | | | peeking\_take\_while | Apache-2.0 OR MIT | fitzgen/peeking\_take\_while | | percent-encoding | Apache-2.0 OR MIT | servo/rust-url/ | | permissions | MIT | marcospb19/dotao | | pest | Apache-2.0 OR MIT | pest-parser/pest | | pico-args | MIT | RazrFalcon/pico-args | | pin-project | Apache-2.0 OR MIT | taiki-e/pin-project | | pin-project-internal | Apache-2.0 OR MIT | taiki-e/pin-project | | pin-project-lite | Apache-2.0 OR MIT | taiki-e/pin-project-lite | | pin-project-lite | Apache-2.0 OR MIT | taiki-e/pin-project-lite | | pin-utils | Apache-2.0 OR MIT | rust-lang-nursery/pin-utils | | pkg-config | Apache-2.0 OR MIT | rust-lang/pkg-config-rs | | png | Apache-2.0 OR MIT | image-rs/image-png.git | | polling | Apache-2.0 OR MIT | smol-rs/polling | | ppv-lite86 | Apache-2.0 OR MIT | cryptocorrosion/cryptocorrosion | | proc-macro-error | Apache-2.0 OR MIT | | | proc-macro-error-attr | Apache-2.0 OR MIT | | | proc-macro-hack | Apache-2.0 OR MIT | dtolnay/proc-macro-hack | | proc-macro-nested | Apache-2.0 OR MIT | dtolnay/proc-macro-hack | | proc-macro2 | Apache-2.0 OR MIT | dtolnay/proc-macro2 | | prometheus | Apache-2.0 | tikv/rust-prometheus | | protobuf | MIT | stepancheg/rust-protobuf/ | | quote | Apache-2.0 OR MIT | dtolnay/quote | | rand | Apache-2.0 OR MIT | rust-random/rand | | rand | Apache-2.0 OR MIT | rust-random/rand | | rand\_chacha | Apache-2.0 OR MIT | rust-random/rand | | rand\_chacha | Apache-2.0 OR MIT | rust-random/rand | | rand\_core | Apache-2.0 OR MIT | rust-random/rand | | rand\_core | Apache-2.0 OR MIT | rust-random/rand | | rand\_hc | Apache-2.0 OR MIT | rust-random/rand | | rand\_hc | Apache-2.0 OR MIT | rust-random/rand | | rayon | Apache-2.0 OR MIT | rayon-rs/rayon | | rayon-core | Apache-2.0 OR MIT | rayon-rs/rayon | | rctree | MIT | RazrFalcon/rctree | | redox\_syscall | MIT | | | redox\_syscall | MIT | | | redox\_users | MIT | | | regex | Apache-2.0 OR MIT | rust-lang/regex | | regex-automata | MIT OR Unlicense | BurntSushi/regex-automata | | regex-syntax | Apache-2.0 OR MIT | rust-lang/regex | | remove\_dir\_all | Apache-2.0 OR MIT | XAMPPRocky/remove\_dir\_all.git | | reqwest | Apache-2.0 OR MIT | seanmonstar/reqwest | | resvg | MPL-2.0 | RazrFalcon/resvg | | rgb | MIT | kornelski/rust-rgb | | roxmltree | Apache-2.0 OR MIT | RazrFalcon/roxmltree | | rstar | Apache-2.0 OR MIT | georust/rstar | | run\_script | Apache-2.0 | sagiegurari/run\_script.git | | rust-embed | MIT | pyros2097/rust-embed | | rust-embed-impl | MIT | pyros2097/rust-embed | | rust-embed-utils | MIT | pyros2097/rust-embed | | rustc-demangle | Apache-2.0 OR MIT | alexcrichton/rustc-demangle | | rustc-hash | Apache-2.0 OR MIT | rust-lang-nursery/rustc-hash | | rustc\_version | Apache-2.0 OR MIT | Kimundi/rustc-version-rs | | rustc\_version | Apache-2.0 OR MIT | Kimundi/rustc-version-rs | | rustc\_version | Apache-2.0 OR MIT | Kimundi/rustc-version-rs | | rustversion | Apache-2.0 OR MIT | dtolnay/rustversion | | rustybuzz | MIT | RazrFalcon/rustybuzz | | ryu | Apache-2.0 OR BSL-1.0 | dtolnay/ryu | | safe\_arch | Apache-2.0 OR MIT OR Zlib | Lokathor/safe\_arch | | same-file | MIT OR Unlicense | BurntSushi/same-file | | schannel | MIT | steffengy/schannel-rs | | scoped\_threadpool | MIT | Kimundi/scoped-threadpool-rs | | scopeguard | Apache-2.0 OR MIT | bluss/scopeguard | | security-framework | Apache-2.0 OR MIT | kornelski/rust-security-framework | | security-framework-sys | Apache-2.0 OR MIT | kornelski/rust-security-framework | | semver | Apache-2.0 OR MIT | dtolnay/semver | | semver | Apache-2.0 OR MIT | steveklabnik/semver | | semver | Apache-2.0 OR MIT | steveklabnik/semver | | semver-parser | Apache-2.0 OR MIT | steveklabnik/semver-parser | | semver-parser | Apache-2.0 OR MIT | steveklabnik/semver-parser | | sentry | Apache-2.0 | getsentry/sentry-rust | | sentry-backtrace | Apache-2.0 | getsentry/sentry-rust | | sentry-contexts | Apache-2.0 | getsentry/sentry-rust | | sentry-core | Apache-2.0 | getsentry/sentry-rust | | sentry-log | Apache-2.0 | getsentry/sentry-rust | | sentry-panic | Apache-2.0 | getsentry/sentry-rust | | sentry-types | Apache-2.0 | getsentry/sentry-rust | | serde | Apache-2.0 OR MIT | serde-rs/serde | | serde\_derive | Apache-2.0 OR MIT | serde-rs/serde | | serde\_json | Apache-2.0 OR MIT | serde-rs/json | | serde\_urlencoded | Apache-2.0 OR MIT | nox/serde\_urlencoded | | serde\_with | Apache-2.0 OR MIT | jonasbb/serde\_with | | serde\_with\_macros | Apache-2.0 OR MIT | jonasbb/serde\_with/ | | serde\_yaml | Apache-2.0 OR MIT | dtolnay/serde-yaml | | servo-fontconfig | Apache-2.0 OR MIT | servo/rust-fontconfig/ | | servo-fontconfig-sys | MIT | servo/libfontconfig/ | | shellexpand | Apache-2.0 OR MIT | netvl/shellexpand | | shellwords | MIT | jimmycuadra/rust-shellwords | | shlex | Apache-2.0 OR MIT | comex/rust-shlex | | signal-hook | Apache-2.0 OR MIT | vorner/signal-hook | | signal-hook | Apache-2.0 OR MIT | vorner/signal-hook | | signal-hook-registry | Apache-2.0 OR MIT | vorner/signal-hook | | simplecss | Apache-2.0 OR MIT | RazrFalcon/simplecss | | simplelog | Apache-2.0 OR MIT | drakulix/simplelog.rs | | simplelog | Apache-2.0 OR MIT | drakulix/simplelog.rs | | siphasher | Apache-2.0 OR MIT | jedisct1/rust-siphash | | slab | MIT | tokio-rs/slab | | smallvec | Apache-2.0 OR MIT | servo/rust-smallvec | | smallvec | Apache-2.0 OR MIT | servo/rust-smallvec | | smart-default | MIT | idanarye/rust-smart-default | | smol | Apache-2.0 OR MIT | stjepang/smol | | socket2 | Apache-2.0 OR MIT | alexcrichton/socket2-rs | | socket2 | Apache-2.0 OR MIT | rust-lang/socket2 | | stable\_deref\_trait | Apache-2.0 OR MIT | storyyeller/stable\_deref\_trait | | strsim | MIT | dguo/strsim-rs | | strsim | MIT | dguo/strsim-rs | | svgfilters | MPL-2.0 | RazrFalcon/resvg/tree/master/svgfilters | | svgtypes | Apache-2.0 OR MIT | RazrFalcon/svgtypes | | syn | Apache-2.0 OR MIT | dtolnay/syn | | synstructure | MIT | mystor/synstructure | | sysinfo | MIT | GuillaumeGomez/sysinfo | | tempfile | Apache-2.0 OR MIT | Stebalien/tempfile | | termcolor | MIT OR Unlicense | BurntSushi/termcolor | | textwrap | MIT | mgeisler/textwrap | | thiserror | Apache-2.0 OR MIT | dtolnay/thiserror | | thiserror-impl | Apache-2.0 OR MIT | dtolnay/thiserror | | thread\_local | Apache-2.0 OR MIT | Amanieu/thread\_local-rs | | tiff | MIT | image-rs/image-tiff | | time | Apache-2.0 OR MIT | time-rs/time | | tiny-skia | BSD-3-Clause | RazrFalcon/tiny-skia | | tinyvec | Apache-2.0 OR MIT OR Zlib | Lokathor/tinyvec | | tinyvec\_macros | Apache-2.0 OR MIT OR Zlib | Soveu/tinyvec\_macros | | tokio | MIT | tokio-rs/tokio | | tokio | MIT | tokio-rs/tokio | | tokio-native-tls | MIT | tokio-rs/tls | | tokio-util | MIT | tokio-rs/tokio | | tokio-util | MIT | tokio-rs/tokio | | tower-service | MIT | tower-rs/tower | | tracing | MIT | tokio-rs/tracing | | tracing-core | MIT | tokio-rs/tracing | | tracing-futures | MIT | tokio-rs/tracing | | tree-sitter | MIT | tree-sitter/tree-sitter | | try-lock | MIT | seanmonstar/try-lock | | ttf-parser | Apache-2.0 OR MIT | RazrFalcon/ttf-parser | | ttf-parser | Apache-2.0 OR MIT | RazrFalcon/ttf-parser | | typenum | Apache-2.0 OR MIT | paholg/typenum | | ucd-trie | Apache-2.0 OR MIT | BurntSushi/ucd-generate | | uname | Apache-2.0 OR MIT | icorderi/rust-uname | | uneval | MIT | Cerber-Ursi/uneval | | unicode-bidi | Apache-2.0 OR MIT | servo/unicode-bidi | | unicode-bidi-mirroring | Apache-2.0 OR MIT | RazrFalcon/unicode-bidi-mirroring | | unicode-ccc | Apache-2.0 OR MIT | RazrFalcon/unicode-ccc | | unicode-general-category | Apache-2.0 | yeslogic/unicode-general-category | | unicode-normalization | Apache-2.0 OR MIT | unicode-rs/unicode-normalization | | unicode-script | Apache-2.0 OR MIT | unicode-rs/unicode-script | | unicode-segmentation | Apache-2.0 OR MIT | unicode-rs/unicode-segmentation | | unicode-vo | Apache-2.0 OR MIT | RazrFalcon/unicode-vo | | unicode-width | Apache-2.0 OR MIT | unicode-rs/unicode-width | | unicode-xid | Apache-2.0 OR MIT | unicode-rs/unicode-xid | | unicode\_categories | Apache-2.0 OR MIT | swgillespie/unicode-categories | | unindent | Apache-2.0 OR MIT | dtolnay/indoc | | unreachable | Apache-2.0 OR MIT | reem/rust-unreachable.git | | url | Apache-2.0 OR MIT | servo/rust-url | | urlocator | Apache-2.0 OR MIT | alacritty/urlocator.git | | users | MIT | ogham/rust-users | | usvg | MPL-2.0 | RazrFalcon/resvg | | utf8parse | Apache-2.0 OR MIT | jwilm/vte | | uuid | Apache-2.0 OR MIT | uuid-rs/uuid | | validator | MIT | Keats/validator | | validator\_types | MIT | Keats/validator | | vcpkg | Apache-2.0 OR MIT | mcgoo/vcpkg-rs | | vec1 | Apache-2.0 OR MIT | rustonaut/vec1/ | | vec\_map | Apache-2.0 OR MIT | contain-rs/vec-map | | version-compare | MIT | timvisee/version-compare | | version\_check | Apache-2.0 OR MIT | SergioBenitez/version\_check | | void | MIT | reem/rust-void.git | | vte | Apache-2.0 OR MIT | alacritty/vte | | vte\_generate\_state\_changes | Apache-2.0 OR MIT | jwilm/vte | | wait-timeout | Apache-2.0 OR MIT | alexcrichton/wait-timeout | | waker-fn | Apache-2.0 OR MIT | stjepang/waker-fn | | walkdir | MIT OR Unlicense | BurntSushi/walkdir | | want | MIT | seanmonstar/want | | wasi | Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT | bytecodealliance/wasi | | wasi | Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT | bytecodealliance/wasi | | wasm-bindgen | Apache-2.0 OR MIT | rustwasm/wasm-bindgen | | wasm-bindgen-backend | Apache-2.0 OR MIT | rustwasm/wasm-bindgen/tree/master/crates/backend | | wasm-bindgen-futures | Apache-2.0 OR MIT | rustwasm/wasm-bindgen/tree/master/crates/futures | | wasm-bindgen-macro | Apache-2.0 OR MIT | rustwasm/wasm-bindgen/tree/master/crates/macro | | wasm-bindgen-macro-support | Apache-2.0 OR MIT | rustwasm/wasm-bindgen/tree/master/crates/macro-support | | wasm-bindgen-shared | Apache-2.0 OR MIT | rustwasm/wasm-bindgen/tree/master/crates/shared | | web-sys | Apache-2.0 OR MIT | rustwasm/wasm-bindgen/tree/master/crates/web-sys | | webbrowser | Apache-2.0 OR MIT | amodm/webbrowser-rs | | weezl | Apache-2.0 OR MIT | image-rs/lzw\.git | | wepoll-ffi | Apache-2.0 OR BSD-2-Clause OR MIT | aclysma/wepoll-ffi | | which | MIT | harryfei/which-rs.git | | widestring | Apache-2.0 OR MIT | starkat99/widestring-rs.git | | winapi | Apache-2.0 OR MIT | retep998/winapi-rs | | winapi | MIT | retep998/winapi-rs | | winapi-build | MIT | retep998/winapi-rs | | winapi-i686-pc-windows-gnu | Apache-2.0 OR MIT | retep998/winapi-rs | | winapi-util | MIT OR Unlicense | BurntSushi/winapi-util | | winapi-x86\_64-pc-windows-gnu | Apache-2.0 OR MIT | retep998/winapi-rs | | winreg | MIT | gentoo90/winreg-rs | | wio | Apache-2.0 OR MIT | retep998/wio-rs | | ws2\_32-sys | MIT | retep998/winapi-rs | | xmlparser | Apache-2.0 OR MIT | RazrFalcon/xmlparser | | xmlwriter | MIT | RazrFalcon/xmlwriter | | yaml-rust | Apache-2.0 OR MIT | chyh1990/yaml-rust | ## ScanCode licenses | Name | License | Copyright | | ----------- | ---------- | ---------------------------------------------: | | Alacritty | APACHE-2.0 | Copyright 2016 Joe Wilm, The Alacritty Project | | Hack Font | MIT | (c) 2018 Source Foundry Authors | | Roboto Font | APACHE-2.0 | Copyright 2011 Google Inc. | | Rubik Font | OFL-1.1 | Copyright 2015 The Rubik Project | | Tree Sitter | MIT | Copyright (c) 2018 NAN contributors | --- # Source: https://docs.warp.dev/university/mcp-servers/linear-mcp-retrieve-issue-data.md # Linear MCP: Retrieve issue data Learn how to connect the Linear MCP server in Warp so your AI agent can access live data — like issues, tickets, and user assignments — directly from your Linear workspace. {% embed url="" %} *** #### Overview This tutorial covers how to: * Add and configure a Linear MCP server in Warp * Use MCP to query and retrieve issue data ### 1. Adding the Linear MCP Serve #### Add a new server in Warp * In Warp, open Warp Drive → Personal → MCP Servers.\ Alternatively, press `⌘P` and type **MCP servers** to open the palette. * Click **Add New Server**. * Paste in this JSON ```json { "linear": { "command": "npx", "args": ["-y", "mcp-remote", "https://mcp.linear.app/sse"], "env": {}, "working_directory": null } } ``` * Click Save. * Warp will immediately start the server. * You should now see Linear MCP listed as Running. *** ### 2. Testing the Connection After saving, retry your earlier query: ``` Show me all Linear tasks assigned to me. ``` Warp’s agent will now call the Linear MCP server to fetch your data. You can click inside the response panel to inspect the **raw API response** — ideal for debugging or understanding what’s being fetched. If the server can’t find your user, it may be due to your Linear login address. Try querying a teammate to confirm the connection: ``` Show tasks assigned to [teammate name]. ``` Once verified, the agent can display a full list of tasks. --- # Source: https://docs.warp.dev/university/mcp-servers/linear-mcp-updating-tickets-with-a-lean-build-approach.md # Linear MCP: Updating Tickets with a Lean Build Approach Learn how to use Warp’s Linear MCP integration to update tickets programmatically while maintaining a lean build strategy. {% embed url="" %} *** ## Overview This walkthrough demonstrates: * Updating Linear tickets via Warp’s MCP integration * Structuring tasks around a lean development stack * Observing real-time synchronization of ticket data * Testing agent autonomy when editing related subtasks {% stepper %} {% step %} **Setting Up the Scenario** The goal is to use Warp’s agent to update a Linear epic with a new, leaner build approach and reflect the changes in related subtasks. First, open your Linear project and locate the target epic.\ Copy the **ticket ID** (e.g. “Empty Studio 36”). {% endstep %} {% step %} **Define the Update Prompt** Within Warp, run the MCP command to edit the Linear issue. **Prompt** {% code title="Prompt" overflow="wrap" %} ``` Use the warp-server-staging gcloud project and pull logs for the last 10 minutes from the warp-server Cloud Run instance. Organize them by info, warning, and error levels. Create a histogram across message types, and highlight the most concerning errors to investigate. ``` {% endcode %} Warp parses the issue context and updates the ticket’s fields accordingly. {% endstep %} {% step %} **Observing the Changes** After execution: * The Linear ticket reflects the new **Next.js + Supabase** stack. * Tasks like *Build Foundation*, *Implement AI-powered PRD Generation*, and *Set up Development Environment* are updated. * Time estimates automatically adjust from *4–6 weeks* to *2–3 weeks*. * Complex integrations (AI and Linear App) are deferred to a future phase. {% endstep %} {% step %} **Propagating Updates to Child Tasks** Warp’s agent can cascade changes to linked subtasks.\ If it begins editing other epics unexpectedly, you can constrain its scope by specifying task IDs in the prompt: {% code title="Scope Constraint" %} ``` Only update the ticket with ID . Do not modify other epics or related tickets. ``` {% endcode %} {% endstep %} {% step %} **Review and Verification** Re-open the Linear epic to confirm updates: * **Frontend specs** reflect the lean stack. * **Child tasks** align with phase 1 deliverables. * **Deferred features** (e.g., advanced integrations) are pushed to phase 2. {% hint style="info" %} This demonstrates Warp’s ability to *maintain and modify tickets intelligently*, not just create them. {% endhint %} {% endstep %} {% endstepper %} --- # Source: https://docs.warp.dev/agent-platform/integrations/linear.md # Linear The Linear integration lets your team delegate development work directly to Warp agents from inside Linear. When you tag Warp on an issue or comment, an agent will spin up in the cloud, clone the repos defined in your environment, and begin working through the task. Agents keep you updated inside Linear, generate pull requests using your GitHub account, and provide a link to join a live remote session so you can watch or steer the workflow in real time. {% embed url="" %} This guide explains what the integration does, how it works end-to-end, and how to configure it for your Warp team. *** ### Using Warp inside Linear Assigning Warp to an issue or tagging @warp in a Linear comment starts an agent run. Warp clones the repositories defined in your environment, sets up your development environment using your Docker image and setup commands, and begins working through the task with full context from your codebase and the Linear issue. Agents post updates as they progress, including a task list, elapsed time, and checkpoints, so you can follow along without leaving Linear. Agents also share a link to an interactive remote session using Warp’s [Ambient Agent Session Sharing](https://docs.warp.dev/knowledge-and-collaboration/session-sharing/ambient-agents-session-sharing). Opening this link lets you view the live terminal output for the running agent in Warp or in the browser. From there, you can interrupt or guide the agent with additional instructions when needed. Once the agent finishes, it will create a pull request on your behalf — using your GitHub permissions — and post a summary of its work and the PR link back into Linear. You can start an agent in two ways: * **Tag Warp in a comment** (@Warp) and describe what you want done. * **Assign the issue to Warp** as if it were a teammate. Warp will acknowledge the request directly in the Linear issue and begin working. Agents keep you informed through: * **Activity updates** inside Linear * A **running task list** and timeline showing what the agent is working on * A **shared session link** that opens a live view of the agent’s cloud environment Session sharing works in Warp or in a browser view and allows multiple teammates to watch the session. #### Joining the remote session Selecting [**Open in Warp**](https://docs.warp.dev/knowledge-and-collaboration/session-sharing/ambient-agents-session-sharing) (or the web option) opens the active session. You’ll see: * The agent’s full execution log * The plan pane with the task list * An input box to add clarifying instructions * A real-time view identical to a local Warp task Any instructions you give will interrupt the agent, feed the new context, and resume work. When the task is complete: * Warp commits the changes using your GitHub identity * A pull request is created through the GitHub CLI * The PR includes a clean title and description based on the Linear issue and the agent’s work * A summary and link to the PR appear in the Linear issue Because PRs are created as *you*, this makes code review, auditing, and team collaboration straightforward. *** ### Requirements * Cloud agents are available only to **paid Warp users**. See [Warp Pricing](https://www.warp.dev/pricing) for more details. * You must be logged into Warp with the same email as your Linear workspace. * You must authorize the Warp GitHub app the first time you trigger an agent. * The repositories involved must be included in your environment and accessible to the Warp GitHub app. * You must have write access to the repo if you want Warp to create PRs on your behalf. *** ### How to configure the integration Setup involves two steps powered by the [Warp CLI](https://docs.warp.dev/reference/cli/README). For more instructions, see [Integrations Overview](https://docs.warp.dev/agent-platform/integrations/integrations-overview). #### 1. Create an environment An environment defines everything the agent needs to run your code: * A **Docker image** (public on Docker Hub) * A set of **GitHub repos** the agent should clone * Optional **setup commands** that run before the agent starts You can create an environment via: * The CLI * The guided flow using `/create-environment` ([Slash Commands](https://docs.warp.dev/agent-platform/agent/slash-commands)) For full instructions, see our [Environment Setup](https://docs.warp.dev/agent-platform/integrations/integrations-overview) docs. #### 2. Create the Linear integration Once your environment exists, create the integration: ``` warp integration create linear --environment ``` The CLI will open a browser window prompting you to install the Warp app into your Linear workspace. After installation, the integration becomes available to all members of your Warp team. *** ### Uninstallation instructions To remove the Warp integration from Linear: 1. Only a Linear team admin can manage app permissions. 2. In Linear, go to **Settings**. 3. Navigate to Agents under the Features section. 4. Select Warp from the list of installed agents. 5. Click **Revoke acces**s to remove the integration for your workspace. {% embed url="" %} After revoking access, Warp will no longer be able to read issues, receive triggers, or create updates in Linear. If you reinstall later, you’ll need to authorize Warp again during setup. ### Troubleshooting If something isn’t working as expected—missing repos, PR failures, Linear not detecting Warp, or environment issues—see our [Integrations Troubleshooting](https://docs.warp.dev/agent-platform/integrations-overview#troubleshooting) page for detailed guidance on GitHub permissions, environment configuration, and common setup problems. --- # Source: https://docs.warp.dev/terminal/more-features/linux.md # Linux ## Native Wayland Warp Wayland support can be enabled in `Settings > Features > System`. Enabling Wayland support may fix issues with blurry text if you have fractional scaling enabled in your window manager. {% hint style="warning" %} When native Wayland is enabled, Global Hotkey support will be disabled. Unlike X11, the Wayland protocol does not expose the configuration necessary to support this feature. {% endhint %} ## Wayland Crash Recovery When Wayland support is enabled, Warp uses a custom crash recovery process to detect any crashes that may occur when using Wayland. If there's a crash, Warp will fallback to use X11 to allow you to continue to use the application. --- # Source: https://docs.warp.dev/support-and-community/troubleshooting-and-support/logging-out-and-uninstalling.md # Logging Out & Uninstalling ## Logging out You can log out of Warp through: * `Settings > Account`, with the "Log out" button * [Command Palette](https://docs.warp.dev/terminal/command-palette), with the "Log Out" item.

Logout Demo

### Known issues: 1. When you log out, you will lose all running processes and all unsaved objects. 2. When you log out and log in to Warp with another account, the following preferences will be preserved from the original account: 1. Theme 2. Keybindings 3. Settings (e.g. autosuggestion, notifications, font size, welcome tips status) 3. Whenever you log in to Warp, you will receive the onboarding survey. ## Uninstalling Warp Removing Warp from your computer involves uninstalling Warp and then removing any files or data. {% hint style="info" %} If you're using Warp Preview, replace "Warp-Stable" with "Warp-Preview" in the commands below (e.g., `defaults delete dev.warp.Warp-Preview`). {% endhint %} {% tabs %} {% tab title="macOS" %} **Uninstalling Warp by dmg** * Remove Warp with `sudo rm -r /Applications/Warp.app` * Go to Mac `Finder > Applications` and right-click on Warp, and "Move to Trash" **Uninstalling Warp by Homebrew** * Remove Warp with `brew uninstall warp` **Removing Warp settings, files, logs, and database** ```bash # Remove Warp settings defaults defaults delete dev.warp.Warp-Stable # Remove Warp logs sudo rm -r $HOME/Library/Logs/warp.log # Remove Warp database, codebase context, and mcp logs sudo rm -r "$HOME/Library/Group Containers/2BBY89MBSN.dev.warp/Library/Application Support/dev.warp.Warp-Stable" # Remove Warp user files, themes, and launch configurations sudo rm -r $HOME/.warp # Note: Removing $HOME/.warp will delete files for both Stable and Preview. # If you wish to delete it all, then: sudo rm -r $HOME/.warp ``` **For Warp Preview users:** ```bash # Remove Warp Preview settings defaults defaults delete dev.warp.Warp-Preview # Remove Warp Preview logs sudo rm -r $HOME/Library/Logs/warp_preview.log # Remove Warp Preview database, codebase context, and mcp logs sudo rm -r "$HOME/Library/Group Containers/2BBY89MBSN.dev.warp/Library/Application Support/dev.warp.Warp-Preview" # Note: Removing $HOME/.warp will delete files for both Preview and Stable. # If you wish to delete it all, then: sudo rm -r $HOME/.warp ``` {% endtab %} {% tab title="Windows" %} **Uninstalling Warp installed by Installer** * Search for "Installed apps" section of the Control Panel. * Search for and Uninstall the Warp application **Removing Warp settings, files, logs, and database** ```powershell # Remove Warp settings in the Windows Registry Remove-Item -Path "HKCU:\Software\Warp.dev\Warp" -Recurse -Force # Remove Warp user files, logs, database, codebase context, and mcp logs Remove-Item -Path "$env:LOCALAPPDATA\warp\Warp" -Recurse -Force # Remove Warp themes and launch configurations Remove-Item -Path "$env:APPDATA\warp\Warp" -Recurse -Force ``` **For Warp Preview users:** ```powershell # Remove Warp Preview settings in the Windows Registry Remove-Item -Path "HKCU:\Software\Warp.dev\Warp-Preview" -Recurse -Force # Remove Warp Preview user files, logs, database, codebase context, and mcp logs Remove-Item -Path "$env:LOCALAPPDATA\warp\Warp-Preview" -Recurse -Force # Remove Warp Preview themes and launch configurations Remove-Item -Path "$env:APPDATA\warp\Warp-Preview" -Recurse -Force ``` {% endtab %} {% tab title="Linux" %} **Uninstalling Warp by package manager** ```bash # apt uninstall sudo apt remove warp-terminal # dnf uninstall sudo dnf remove warp-terminal # zypper uninstall sudo zypper remove warp-terminal # pacman uninstall sudo pacman -R warp-terminal ``` * Uninstall Warp using the same package manager that you used to [install](https://docs.warp.dev/support-and-community/troubleshooting-and-support/broken-reference) it. **Removing Warp settings, files, logs, and database** ```bash # Remove Warp settings files rm -r ${XDG_CONFIG_HOME:-$HOME/.config}/warp-terminal # Remove Warp user files, logs, database, codebase context, and mcp logs rm -r ${XDG_STATE_HOME:-$HOME/.local/state}/warp-terminal # Remove Warp themes and launch configurations rm -r ${XDG_STATE_HOME:-$HOME/.local/share}/warp-terminal ``` **For Warp Preview users:** ```bash # apt uninstall sudo apt remove warp-terminal-preview # dnf uninstall sudo dnf remove warp-terminal-preview # zypper uninstall sudo zypper remove warp-terminal-preview # pacman uninstall sudo pacman -R warp-terminal-preview ``` * Uninstall Warp Preview using the same package manager that you used to install it. ```bash # Remove Warp Preview settings files rm -r ${XDG_CONFIG_HOME:-$HOME/.config}/warp-terminal-preview # Remove Warp Preview user files, logs, database, codebase context, and mcp logs rm -r ${XDG_STATE_HOME:-$HOME/.local/state}/warp-terminal-preview # Remove Warp Preview themes and launch configurations rm -r ${XDG_STATE_HOME:-$HOME/.local/share}/warp-terminal-preview ``` {% endtab %} {% endtabs %} --- # Source: https://docs.warp.dev/agent-platform/agent/using-agents/managing-agents.md # Managing Agents Warp’s agent management system is designed to support complex, multi-agent workflows across multiple terminal panes. You can run several agents at once, monitor their status, and step in when needed, without losing track of what’s happening across your sessions. Agents will notify you when they need input, such as permission to run a command or approval to apply a code diff. This allows you to shift focus to other work, knowing you’ll be alerted when intervention is required. At any point, you can cancel an agent that’s stuck or going in circles. The agent will pause and wait for your input before continuing the task. This page covers how agent statuses are displayed, how to use the Agent Management Panel, how notifications work, and how to configure agent autonomy and permissions. {% embed url="" %} ### **Agent status indicators** Each tab that contains an agent conversation will display a status icon indicating the agent’s current state.

Tabs with agents in different states, each displaying a corresponding status icon.

IconAgent status
In progress. The agent is currently running.
Task delegated to agent has completed successfully.
Agent requires your attention (e.g. waiting for input or approval).
Agent was manually stopped and is idle.
An error occurred. This may be due to a model failure, an API issue (such as LLM provider downtime), a lost internet connection, or other unexpected problems.
**Notes:** * Status icon colors follow Warp's semantic theme settings, so they appear as theme-specific variants rather than the exact shades shown above. * If an agent encounters an error, the error will be surfaced in the last block of the affected conversation. * In tabs with multiple agent interactions (across different panes), the status icon reflects the agent state of the most recently focused pane.

Agent status icons shown across multiple panes in a tab.

### **Agent Management Panel** Warp includes an Agent Management Panel that provides a centralized view of all active agents across your sessions. You can monitor their status, cancel running tasks, review errors, and jump directly to conversations that need input. This panel is accessible from the top right of the interface and is designed to keep you informed without disrupting your workflow.

Agent management panel, highlighting five agents with differing statuses.

The Agent Management Panel provides a centralized view of all agent activity across your sessions. From this panel, you can: * View the current status of all agents across active terminal sessions * Cancel agents that are currently in progress (only agents in the “in progress” state will show a stop option) * Review agents that are waiting for input or have encountered an error * Jump directly to the associated terminal pane or conversation Once an agent is cancelled, it will stop executing and no further updates or notifications will be sent. Agent activity is ordered by most recent interaction. If a single tab contains multiple agents across different panes, each conversation will appear separately in the panel, sorted by recency. ### **In-app agent notifications** Warp provides two types of in-app notifications to keep you informed about agent activity: 1. **Toasts** appear briefly at the top right of the screen and link directly to the relevant conversation. If dismissed or ignored, they disappear from view but remain marked as unread in the Agent Management Panel. 2. The **red dot indicator** appears on the Agent Management button in the top-right corner when there are unread agent notifications. Opening the panel clears the red dot and marks all associated notifications as read. These notifications ensure you don’t miss critical updates, such as when an agent encounters an error or requests manual approval. ### **Autonomy and controls** You can configure how much autonomy and control agents have in `Settings > AI > Agents > Permissions` . From this settings page, you can: * Require manual approval before the agent applies code diffs, reads files, creates plans, or runs commands * Define allowlists or denylists to control agent behavior based on command types or patterns These settings let you fine-tune how agents interact with your system and control the level of automation based on task sensitivity. For more information on autonomy, please reference: [Agent Profiles & Permissions](https://docs.warp.dev/agent-platform/agent/using-agents/agent-profiles-permissions). ### Demo: Using multiple agents at once in Warp Here's an example from [Warp University](https://www.warp.dev/university), where Zach demonstrates how he uses and manages multiple agents in Warp: {% embed url="" %} --- # Source: https://docs.warp.dev/agent-platform/ambient-agents/managing-ambient-agents.md # Managing Ambient Agents Warp provides a centralized management view where you can monitor agent activity across your account and (where applicable) your team. It’s designed to answer, at a glance: * Which agents have been running recently (and what’s running right now) * Which runs succeeded, failed, or were canceled * Where an agent was triggered from (a local agent conversation, the Warp CLI, Slack, etc.) * How many AI credits those runs consumed {% embed url="" %} This management view includes your **local (interactive) agents** and [Ambient Agent](https://docs.warp.dev/agent-platform/ambient-agents/ambient-agents-overview) runs. *** ### What appears in the management view The management view includes two categories of agent activity. #### Interactive agents * Initiated from the Warp desktop app. * The conversation is owned by you. It opens locally in Warp, and can be shared via a link when needed. * Credit usage reflects inference. #### Ambient agent runs * Background executions initiated by triggers such as integrations and automations (for example: Slack, Linear, schedules, GitHub Actions, or API/CLI invocations). * Each run produces a shared session that can be inspected after completion (including logs, messages, and outputs). * Credit usage reflects inference + compute, shown as a single combined value in this view. {% hint style="warning" %} All usage rolls up into Warp's standard [**AI credit**](https://docs.warp.dev/support-and-community/plans-and-billing/ai-credits) system. {% endhint %} In the **Personal** tab, you can view all of the interactive and Ambient Agent conversations that you own. In the **All** tab, you can see everything from the personal tab, as well as any ambient sessions that are shared with you by your teammates; right now, this only includes things triggered from integrations. *** ### The agents list Each row represents a single item in the management view (either an interactive conversation or an ambient run). The list is intended to be scannable: you should be able to understand “what happened” without opening anything. #### Fields you’ll see **Source** Where the agent was launched from. Common sources include: * **Interactive:** an [agent conversation](https://docs.warp.dev/agent-platform/agent/agents-overview) started in the Warp app * **CLI**: a local run triggered by the [Warp CLI](https://docs.warp.dev/reference/cli/README) * **API**: a run triggered by [Warp’s API](https://docs.warp.dev/reference/api-and-sdk/README) * **Slack / Linear**: runs triggered by [integrations](https://docs.warp.dev/agent-platform/integrations/integrations-overview) * **Scheduled**: runs triggered on a [cron schedule](https://docs.warp.dev/agent-platform/ambient-agents/managing-ambient-agents/scheduled-agents) **Status** Warp uses a small set of statuses to help you quickly identify what needs attention:
StatusIconDescription
WorkingN/Ain progress (may include queued / running states)
Blocked🟨

(interactive only)


the conversation is waiting on user input or a required step

Canceled⬜️(interactive only)

the interactive conversation was canceled before completion
Failed / Errored🔺something went wrong (applies to both interactive and ambient)
Successcompleted successfully (applies to both interactive and ambient)
**Duration (for Ambient Agent tasks)** * Shown for ambient runs to indicate how long the task executed. * Note: Interactive conversations generally don’t map cleanly to a single “run duration,” so this is currently omitted. *** ### Inspecting an agent **The primary interaction is simple:** * Clicking an ambient row opens the [shared session](https://docs.warp.dev/knowledge-and-collaboration/session-sharing/agent-session-sharing) for that run (logs/messages/output). * Clicking an interactive row opens the conversation locally in the Warp app. This makes the management view a navigation surface: find the thing you care about, click once, and you’re in the right context to inspect or continue work. ### Filtering In both *Personal* and *All* views, you can open the filter menu and filter by: * Source (interactive, API, CLI, Slack/Linear, scheduled) * Day of creation * Creator * Status This is the fastest way to isolate “everything that failed today,” “runs from Slack,” or “what a specific teammate triggered via integrations.”
--- # Source: https://docs.warp.dev/terminal/more-features/markdown-viewer.md # Markdown Viewer Warp can be used for both editing and viewing rendered Markdown files in a [split pane](https://docs.warp.dev/terminal/windows/split-panes). Any local file with the `.md` or `.markdown` extension is treated as a Markdown file. Remote files are currently not supported. Turning on `Settings > Features > General > Open Markdown files in Warp's Markdown viewer by default` will make the Markdown viewer default, otherwise Markdown files will open in Warp's editor. ### Opening a file link within a block {% tabs %} {% tab title="macOS" %} For any link to a Markdown file within a block, you can open the file in Warp by `CMD`-clicking on the link, from the link tooltip, or the right-click context menu on the link. {% endtab %} {% tab title="Windows" %} For any link to a Markdown file within a block, you can open the file in Warp by `CTRL`-clicking on the link, from the link tooltip, or the right-click context menu on the link. {% endtab %} {% tab title="Linux" %} For any link to a Markdown file within a block, you can open the file in Warp by `CTRL`-clicking on the link, from the link tooltip, or the right-click context menu on the link. {% endtab %} {% endtabs %}
Clicking a Markdown file link in the output of ls to open it in Warp

Opening a Markdown file in Warp using the link tooltip

### Markdown-viewing commands If you run a Markdown-viewing command like `cat myfile.md`, Warp will show a banner with a button to open the Markdown file. The following commands are considered Markdown viewers: * `cat` * `glow` * `less` ### Opening a Markdown file from Finder From Finder, you can open a Markdown file in Warp from the “Open With” menu that appears when right-clicking on the file. ### Toggling between editor and viewer You can toggle between the Markdown editor and viewer via the pane overflow menu.
Clicking a Markdown file link in the output of ls to open it in Warp

Toggling between editor and viewer

## Shell commands in Markdown files Warp can run shell commands from Markdown code blocks in your active terminal session. Click the run icon `>_` to insert a command into the terminal input. {% hint style="info" %} The shell command must be in a code block with three backticks ` ``` ` and not inline code for Warp to treat the code like a runnable command. {% endhint %} Markdown shell blocks also support keyboard navigation. There are two ways to enter the keyboard navigation mode: {% tabs %} {% tab title="macOS" %} * Clicking on a shell block. * Pressing `CMD-UP` or `CMD-DOWN`. Once a shell block is selected, press `CMD-ENTER` to insert it into the terminal input. You can also use `UP`, `DOWN`, `CMD-UP`, and `CMD-DOWN` to navigate between shell blocks. While the Markdown file is focused, press `CMD-L` to switch focus back to the terminal without inserting a command. {% endtab %} {% tab title="Windows" %} * Clicking on a shell block. * Pressing `CTRL-UP` or `CTRL-DOWN`. Once a shell block is selected, press `CTRL-ENTER` to insert it into the terminal input. You can also use `UP`, `DOWN`, `CTRL-UP`, and `CTRL-DOWN` to navigate between shell blocks. While the Markdown file is focused, press `CTRL-SHIFT-L` to switch focus back to the terminal without inserting a command. {% endtab %} {% tab title="Linux" %} * Clicking on a shell block. * Pressing `CTRL-UP` or `CTRL-DOWN`. Once a shell block is selected, press `CTRL-ENTER` to insert it into the terminal input. You can also use `UP`, `DOWN`, `CTRL-UP`, and `CTRL-DOWN` to navigate between shell blocks. While the Markdown file is focused, press `CTRL-SHIFT-L` to switch focus back to the terminal without inserting a command. {% endtab %} {% endtabs %} If the command contains any arguments using the curly brace `{{param}}` syntax, they will be treated as Workflow arguments. Learn more about [Workflows](https://docs.warp.dev/knowledge-and-collaboration/warp-drive/workflows).
Demo of running two commands from a Markdown file in Warp

Navigating between and running commands in a Markdown file

In addition, all shell and code blocks have a copy button to quickly copy the block’s text to the clipboard. Code blocks without a set language, or one of the following languages, are treated as shell commands: `sh`, `shell`, `bash`, `fish`, `zsh`, `warp-runnable-command`. --- # Source: https://docs.warp.dev/agent-platform/ambient-agents/mcp-servers-for-agents.md # MCP Servers for Agents Ambient Agents in Warp can call external tools through [Model Context Protocol (MCP) servers](https://docs.warp.dev/knowledge-and-collaboration/mcp). This enables agents to extend their capabilities beyond the terminal and interact with systems such as GitHub, dbt, or custom internal services. Warp currently supports the [**MCP JSON configuration standard**](https://gofastmcp.com/integrations/mcp-json-configuration), either inline or via file. This guide explains how to define, load, validate, and troubleshoot MCP configurations when running an Ambient Agent. *** ### When to Use MCP Servers Use an MCP server when your agent needs access to: * External tools or APIs wrapped behind an MCP interface * Local processes that expose MCP endpoints * Internal developer tools that you want integrated into your ambient workflows Agents call MCP tools automatically whenever their workflow requires them. #### 1. Inline JSON You can pass the full MCP JSON object directly into the `--mcp` flag: ```shellscript warp agent run \ --mcp '{"mymcp": { "url": "https://fakemcp.com/mcp" }}' \ -p "Call the MCP tool" ``` Warp interprets the entire argument as the configuration map for all MCP servers. #### 2. File Path Instead of embedding JSON inline, you may supply a path: ```shellscript warp agent run --mcp ./my-mcp-config.json ``` The file must contain a valid MCP JSON structure as defined by the specification. ### MCP Configuration Schema Warp accepts any MCP JSON matching the published standard. A typical configuration defines one or more servers: ```json { "github": { "url": "https://mcp.example.com/github" }, "dbt": { "command": "uvx", "args": ["dbt-mcp"], "env": { "DBT_HOST": "https://example.us1.dbt.com", "DBT_SERVICE_TOKEN": "${DBT_SERVICE_TOKEN}" } } } ``` Or in YAML: ```yaml mcp_servers: github: url: https://mcp.example.com/github dbt: command: uvx args: - dbt-mcp env: DBT_HOST: https://example.us1.dbt.com DBT_SERVICE_TOKEN: ${DBT_SERVICE_TOKEN} ``` #### Supported Fields * `url` – Direct URL to an MCP server endpoint * `command / args` – Defines a local executable to launch an MCP server * `env` – Environment variables passed to the command You may define any number of MCP servers. If the agent config includes an `mcp_servers` field, it overrides the defaults (empty set). ### Using MCP Servers in a Full Agent Config Developers typically declare MCP servers inside the broader agent config file (e.g. `warp-agent.json` or `.yaml`). Example: ```json { "name": "my-production-agent", "model_id": "claude-4-5-sonnet", "system_prompt": "You are a helpful assistant focused on backend development.", "environment_id": "SVhg783GBFQHk1OfdPfFU9", "mcp_servers": { "github": { "url": "https://mcp.example.com/github" }, "dbt": { "command": "uvx", "args": ["dbt-mcp"], "env": { "DBT_HOST": "https://example.us1.dbt.com", "DBT_SERVICE_TOKEN": "${DBT_SERVICE_TOKEN}" } } } } ``` This file can be passed as the agent’s config file or referenced through `config_file` when creating tasks via API. ### Requirements and Defaults #### Required * MCP configuration must follow the MCP JSON specification * Inline or file-based config must be valid JSON (or YAML inside the agent config) #### Defaults * If `mcp_servers` is omitted, the agent runs with no MCP servers enabled. * MCP permissions default to **allowing calls**, but may inherit profile settings depending on the user’s environment. This default behavior is evolving as Warp plans to phase out profiles for ambient agents. --- # Source: https://docs.warp.dev/knowledge-and-collaboration/mcp.md # Model Context Protocol (MCP) ## Model Context Protocol (MCP) MCP servers extend Warp’s [agents](https://docs.warp.dev/agents/using-agents/) in a modular, flexible way by exposing custom tools or data sources through a standardized interface — essentially acting as plugins for Warp. Warp supports a variety of connection protocols, including Streamable HTTPS and SSE, along with custom headers and environmental variables. MCP is an open source protocol. Check out the official [MCP documentation](https://modelcontextprotocol.io/introduction) for more detailed information on how this protocol is engineered. ### How to access MCP Server settings You can navigate to the MCP servers page in any of the following ways: * From the [Settings Page](warp://settings/mcp): `Settings > MCP Servers` * From [Warp Drive](https://docs.warp.dev/knowledge-and-collaboration/warp-drive): under `Personal > MCP Servers` * From the [Command Palette](https://docs.warp.dev/terminal/command-palette): search for `Open MCP Servers` * From the AI settings tab: `Settings > AI > Manage MCP servers` This will show a list of all configured MCP servers, including which are currently running. If you close Warp with an MCP server running, it will run again on next start of Warp. MCP servers that are stopped will remain so on next launch of Warp.

MCP servers page

### Adding an MCP Server To add a new MCP server, you can click the `+ Add` button. Configurations from most MCP Clients can be directly copied and pasted. MCP server types you can add: {% tabs %} {% tab title="CLI Server (Command)" %} Provide a startup command. Warp will launch this command when starting up and shut it down on exit.

Adding a CLI MCP Server (Command)

{% hint style="info" %} Always set `working_directory` explicitly when your MCP server command or args include relative paths. This ensures consistent and predictable behavior across machines and sessions. {% endhint %} **CLI Server (Command) MCP Configuration Properties** | Property | Type | Required | Description | | ------------------- | --------- | -------- | ----------------------------------------------------------------------------------- | | `command` | string | Yes | The executable to launch (e.g., `npx`). | | `args` | string\[] | Yes | Array of command-line arguments passed to `command` (e.g., module name, paths). | | `env` | object | No | Key-value object of environment variables (e.g., API Tokens). | | `working_directory` | string | No | Working directory path where the command is run, used for resolving relative paths. | | {% endtab %} | | | | {% tab title="Streamable HTTP or SSE Server (URL)" %} Provide a URL where Warp can reach an already-running MCP server that supports Server-Sent Events.

Adding an SSE MCP Server (URL)

**Streamable HTTP or SSE Server (URL) MCP Configuration Properties** | Property | Type | Required | Description | | ------------- | ------ | -------- | ----------------------------------------------------------------- | | `url` | string | Yes | The HTTP endpoint URL to connect to via Server-Sent Events (SSE). | | `headers` | object | No | Key-value object of header variables (e.g., Authorization). | | {% endtab %} | | | | | {% endtabs %} | | | | ### Adding multiple MCP Servers Warp supports configuring **multiple MCP servers** using a JSON snippet. Each entry under `mcpServers` is keyed by a unique name (`filesystem`, `github`, `notes`, etc). All servers defined in the example are added automatically — no manual setup required. To add a multiple MCP servers, you can click the `+ Add` button then paste in a JSON snippet like the example below: ```json { "mcpServers": { "filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed/files"] }, "notes": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-notes", "--notes-dir", "/Users/you/Documents/notes"] }, "externalDocs": { "url": "http://localhost:4000/mcp/stream", "headers": { "my-header": "my-header-value" } } } } ``` ### Managing MCP servers After MCP servers are registered in Warp, you can **Start** or **Stop** them from the MCP servers page. Each running server will have a list of available tools and resources. You can rename and edit a server's name, as well as delete the server. If you are a part of a Team, you can also share a MCP with your teammates. ### Sharing MCP servers MCP servers can be shared with your teammates by clicking the share icon. When sharing, sensitive values in the `env` configuration will be automatically scrubbed and replaced with variables.

Sharing a MCP Server

Your teammates can find shared MCP servers under the `Shared` section of their MCP settings. When your teammates install your server configuration, they will be prompted to enter any scrubbed `env` values. Warp also provides out-of-the-box MCP servers that can be installed by anyone. These can be found under the `Shared` section of your MCP settings. ### Authentication in MCP servers Most MCP servers require authentication to connect to external services. Warp supports the following methods: * **Environment variables**: pass an API key or access token via the server's environment variables. * **OAuth login (one-click installation)**: simplifies configuration by handling authentication through your browser. Warp stores credentials securely on your device and reuses them for future sessions. Re-authentication is required when opening Warp on a new machine. * Starting a server without existing credentials automatically opens a browser-based authentication flow. * Credentials can be revoked at any time from the MCP Servers pane in Warp. * **Custom Headers**: pass an Authentication Bearer token via the headers variable. ### Debugging MCP If you're having trouble with an MCP server, you can check the logs for any errors or messages to help you diagnose the problem by clicking the `View Logs` button on a server from the MCP servers page. {% hint style="warning" %} If you choose to share your MCP server logs with anybody, **make sure to remove any sensitive information before sharing**, as they may contain API keys. Many SSE based MCP servers will state that your URL should be treated like a password, and can be used with no additional authentication. {% endhint %} {% hint style="info" %} Tip: We've noticed that some models often work better with MCP servers than others. If you're having trouble calling or using an MCP server, try using a different model. {% endhint %} #### Debugging MCP Authentication issues In some cases you may need to reset the auth token for some MCP servers. To do this delete the local MCP auth files by running the following: `rm -rf ~/.mcp-auth` {% hint style="warning" %} Note this will delete all your MCP auth tokens stored locally so you will need to login and re-authenticate. {% endhint %} If the above doesn't help and you need to reset or change authentication, you may need to switch to a CLI-based MCP server configuration and provide the token via environment variables. See [Sentry CLI MCP Example](#sentry). ### Where MCP Logs Are Stored Warp saves the MCP logs locally on your computer. You can open the files directly and inspect the full contents in the following location: {% tabs %} {% tab title="macOS" %} ```bash cd "$HOME/Library/Group Containers/2BBY89MBSN.dev.warp/Library/Application Support/dev.warp.Warp-Stable/mcp" ``` {% endtab %} {% tab title="Windows" %} ```powershell Set-Location $env:LOCALAPPDATA\warp\Warp\data\logs\mcp ``` {% endtab %} {% tab title="Linux" %} ```bash cd "${XDG_STATE_HOME:-$HOME/.local/state}/warp-terminal/mcp" ``` {% endtab %} {% endtabs %} ## MCP Server Configuration Examples Below are examples for popular Model Context Protocol (MCP) servers. * **CLI Server (Command)** — local `npx` or `docker` command based MCP servers. * **Streamable HTTP or SSE Server (URL)** — remote or locally hosted MCP endpoints. ### **Engineering & Ops** {% tabs %} {% tab title="GitHub" %} [GitHub MCP Docs](https://github.com/github/github-mcp-server) **GitHub CLI Server (Command)** ```json { "GitHub": { "command": "docker", "args": ["run","-i","--rm","-e","GITHUB_PERSONAL_ACCESS_TOKEN","ghcr.io/github/github-mcp-server"], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "" } } } ``` **GitHub SSE Server (URL)** ```json { "GitHub": { "url": "https://api.githubcopilot.com/mcp/" } } ``` {% endtab %} {% tab title="Sentry" %} [Sentry MCP Docs](https://docs.sentry.io/product/sentry-mcp/) **Sentry CLI Server (Command)** ```json { "Sentry": { "command": "npx", "args": ["-y","mcp-remote@latest","https://mcp.sentry.dev/mcp"] } } ``` **Sentry SSE Server (URL)** ```json { "Sentry": { "url": "https://mcp.sentry.dev/sse" } } ``` {% endtab %} {% tab title="Grafana" %} [Grafana MCP Docs](https://github.com/grafana/mcp-grafana) **Grafana CLI Server (Command)** ```json { "Grafana": { "command": "docker", "args": ["run","--rm","-i","-e","GRAFANA_URL","-e","GRAFANA_API_KEY","mcp/grafana","-t","stdio","-debug"], "env": { "GRAFANA_URL": "http://localhost:3000", "GRAFANA_API_KEY": "" } } } ``` **Grafana SSE Server (URL)** ```json { "Grafana": { "url": "https://your-mcp-host.com/api/mcp/grafana/sse" } } ``` {% endtab %} {% tab title="Linear" %} [Linear MCP Docs](https://linear.app/docs/mcp) **Linear CLI Server (Command)** ```json { "Linear": { "command": "npx", "args": ["-y","mcp-remote","https://mcp.linear.app/sse"] } } ``` **Linear SSE Server (URL)** ```json { "Linear": { "url": "https://mcp.linear.app/sse" } } ``` {% endtab %} {% tab title="Chroma" %} **Chroma Package Search CLI Server (Command)** 1. Visit Chroma's [Package Search](http://trychroma.com/package-search) page. 2. Click "Get API Key" to create or log into your Chroma account and issue an API key for Package Search. 3. After issuing your API key, click the "Other" tab and copy your API key. 4. Add the following to your Warp MCP config. Make sure to click "Start" on the server after adding. More info in [Chroma's Package Search MCP Docs](https://docs.trychroma.com/cloud/package-search/mcp) ```json { "package-search": { "command": "npx", "args": ["mcp-remote", "https://mcp.trychroma.com/package-search/v1", "--header", "x-chroma-token: ${X_CHROMA_TOKEN}"], "env": { "X_CHROMA_TOKEN": "" } } } ``` {% endtab %} {% endtabs %} ### **Design & Collaboration** {% tabs %} {% tab title="Figma" %} **Figma Remote MCP Server (Recommended)** The official Figma remote MCP server supports OAuth for simple, one-click setup. 1. In Warp, go to `Warp Drive` > `MCP Servers` > `+ Add` and paste the configuration below. 2. Warp will open a browser window to authenticate with Figma. 3. After approving access, credentials are stored securely on your device. {% hint style="info" %} Note: A Figma account with [Dev Mode](https://www.figma.com/dev-mode/) enabled is required. {% endhint %} ```json { "Figma": { "url": "https://mcp.figma.com/mcp" } } ``` **Figma Local MCP Server** 1. Enable the Official Figma MCP Server. [Figma MCP Docs](https://help.figma.com/hc/en-us/articles/32132100833559-Guide-to-the-Dev-Mode-MCP-Server) 2. Open the [Figma desktop app](https://www.figma.com/downloads/) and make sure you’ve [updated to the latest version](https://help.figma.com/hc/en-us/articles/5601429983767-Guide-to-the-Figma-desktop-app#h_01HE5QD60DG6FEEDTZVJYM82QW). 3. Create or open a Figma Design file. 4. In the upper-left corner, open the Figma menu. 5. Under **Preferences**, select **Enable local MCP Server**. 6. Enter the following configuration into Warp > `Warp Drive` > `MCP Servers` > `+ Add`. ```json { "Figma (Local)": { "url": "http://127.0.0.1:3845/mcp" } } ``` {% endtab %} {% tab title="Slack" %} [Slack MCP Docs](https://github.com/korotovsky/slack-mcp-server/) **Slack CLI Server (Command)** Enter the following configuration into Warp > `Warp Drive` > `MCP Servers` > `+ Add`. ```json { "Slack": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-slack"], "env": { "SLACK_BOT_TOKEN": "xoxb-", "SLACK_APP_TOKEN": "xapp-", "SLACK_TEAM_ID": "T", "SLACK_CHANNEL_IDS": ", ", "MCP_MODE": "stdio" } } } ``` **Slack SSE Server (URL)** Enter the following configuration into Warp > `Warp Drive` > `MCP Servers` > `+ Add`. ```json { "Slack": { "url": "https://your-mcp-host.com/api/mcp/slack/sse" } } ``` {% endtab %} {% tab title="Atlassian" %} [Atlassian MCP Docs](https://support.atlassian.com/rovo/docs/setting-up-ides/) **Atlassian CLI Server (Command)** Enter the following configuration into Warp > `Warp Drive` > `MCP Servers` > `+ Add`. ```json { "Atlassian": { "command": "npx", "args": ["-y", "mcp-remote", "https://mcp.atlassian.com/v1/sse"] } } ``` {% endtab %} {% tab title="Notion" %} [Notion MCP Docs](https://notion.notion.site/Beta-Overview-Notion-MCP-206efdeead058060a59bf2c14202bd0a) **Notion CLI Server (Command)** Enter the following configuration into Warp > `Warp Drive` > `MCP Servers` > `+ Add`. ```json { "Notion": { "command": "npx", "args": ["-y", "mcp-remote", "https://mcp.notion.com/mcp"] } } ``` **Notion SSE Server (URL)** Enter the following configuration into Warp > `Warp Drive` > `MCP Servers` > `+ Add`. ```json { "Notion": { "url": "https://mcp.notion.com/sse" } } ``` {% endtab %} {% endtabs %} ### MCP Server Demos [Warp University](https://docs.warp.dev/knowledge-and-collaboration/broken-reference) hosts a collection of demos and walkthroughs showing how MCP servers can extend your workflows. Each example highlights practical use cases you can try today: * [**GitHub**](https://docs.warp.dev/knowledge-and-collaboration/broken-reference) — access repositories, issues, and pull requests through MCP. * [**Sentry**](https://docs.warp.dev/knowledge-and-collaboration/broken-reference) — surface error monitoring and alerts as agent-usable data. * [**Linear**](https://docs.warp.dev/knowledge-and-collaboration/broken-reference) — integrate project management tasks and tickets. * [**Puppeteer**](https://docs.warp.dev/knowledge-and-collaboration/broken-reference) — run automated browser workflows via MCP. * [**Context7**](https://docs.warp.dev/knowledge-and-collaboration/broken-reference) — experiment with external data integrations. --- # Source: https://docs.warp.dev/getting-started/migrate-to-warp.md # Migrate to Warp ## From iTerm2 You can easily import your settings from iTerm2 to Warp. This includes custom keybindings and color themes. To do so, you can open the [Command Palette](https://docs.warp.dev/terminal/command-palette) and search for Import External Settings. This will enter you into the workflow to import your settings. Select **iTerm2 Profile: Default** to import your settings.

Select a settings profile to import

Warp will only import settings associated with the Default profile. ### Choose your Prompt Next, you can choose your [prompt](https://docs.warp.dev/terminal/appearance/prompt) and decide whether or not to inherit your existing prompt configuration. There are two prompt options: 1. [Warp prompt](https://docs.warp.dev/terminal/appearance/prompt#warp-prompt): This is Warp's native prompt that you can customize to meet your needs. In `Settings > Appearance > Prompt`, you can drag and drop context chips into your Warp prompt to display specific information, like git branches or timestamps. 2. [Shell prompt (PS1)](https://docs.warp.dev/terminal/appearance/prompt#custom-prompt): This custom prompt inherits your pre-existing prompt configuration. Select this option if you want your Warp prompt to match your settings from iTerm2. After choosing a prompt, you’re ready to start using Warp. ### Import additional settings After importing your iTerm2 profile and choosing your prompt, you might have additional settings from iTerm2 that you would like to configure. For example: * Customizing your dedicated hotkey window, allowing you to customize your windows relative to your active screen size. * Dividing and organizing tabs into multiple panels or terminal sessions. * Setting up your keyboard shortcuts and completion suggestions. You can find more information on these behavior settings in our Quickstart guide. --- # Source: https://docs.warp.dev/agent-platform/agent/using-agents/model-choice.md # Model Choice ## Available models Warp lets you choose from a curated set of Large Language Models (LLMs) to power your Agentic Development Environment. **Warp supports the following models:** * OpenAI: * `GPT-5.2` (*low, medium,* *high* and *extra high* reasoning) * `GPT-5.2 Codex` (*low, medium, high*, and *extra high* reasoning) * `GPT-5.1 Codex Max` (*low, medium, high*, and *extra high* reasoning) * `GPT-5.1 Codex` *(low, medium,* and *high* reasoning) * `GPT-5.1` (*low, medium,* and *high* reasoning) * `GPT-5` (*low, medium,* and *high* reasoning) * Anthropic: * `Claude Opus 4.5` with thinking mode * `Claude Sonnet 4.5` with thinking mode * `Claude Opus 4.1` * `Claude Haiku 4.5` * `Claude Sonnet 4` * Google: * `Gemini 3 Pro` * `Gemini 2.5 Pro` * z.ai: `GLM 4.6` (hosted in the US, by [Fireworks AI](https://fireworks.ai/models/fireworks/glm-4p6)) ### Auto Models Warp also offers three *Auto* modes that intelligently select the best model for your task based on the context and request type: 1. **Auto (Cost-efficient)**: Optimizes for lower credit consumption while maintaining strong output quality, helping extend your available usage. 2. **Auto (Responsive)**: Prioritizes the highest-quality results using the fastest available model, though it may consume credits more quickly. 3. **Auto (Genius)**: Adapts to the complexity of your task and selects Warp’s most capable model when it’s worth it. Best for deep debugging, architecture decisions, and /plan-style sessions where you want maximum reasoning quality. All Auto models perform well across all agent workflows and are ideal if you prefer Warp to manage model selection dynamically. ### How to change models You can use the model picker in your prompt input to quickly switch between models. The currently active model appears directly in the input editor.

Model selector in Warp's Universal Input.

To change models, click the displayed model name (for example, *Claude Sonnet 4.5*) to open a dropdown with all supported options. Your selection will automatically persist for future prompts. ### Model fallback Warp uses a model fallback system to ensure uninterrupted service if your selected model becomes temporarily unavailable due to provider outages or capacity issues. **How it works:** * If your selected model isn't available, Warp automatically uses a fallback model from a predefined chain to continue your conversation without errors. * As soon as your originally selected model becomes available again, Warp automatically switches back to it. * The fallback model is selected to provide comparable quality and capabilities to your original choice. ### Configuring models per Agent Profile You can configure the base and planning models for each [Agent Profiles & Permissions](https://docs.warp.dev/agent-platform/agent/using-agents/agent-profiles-permissions), defining the Agent’s autonomy, tool access, and other permissions. Edit your default profile or more profiles directly in `Settings > AI > Agents > Profiles`.

Model choice example, where the base model is Auto (Claude 4 Sonnet) and the planning model is o3.

### Zero Data Retention Policies Warp integrates with multiple Large Language Model (LLM) providers to power its AI-driven features. **These providers include, but are not limited to:** * OpenAI * Anthropic * Google * Fireworks AI Warp has executed **Zero Data Retention (ZDR)** agreements with these providers. This means that, by default across all plans: * LLM providers commit not to train their models on any customer-generated data processed through Warp’s services. * LLM providers commit to delete inputs and outputs after generating the relevant output, within a fixed time period. Warp enforces these commitments through both technical measures and contractual safeguards with the LLM providers. --- # Source: https://docs.warp.dev/reference/api-and-sdk/api-and-sdk/models.md # Models ## The RunAgentRequest object ```json {"openapi":"3.0.0","info":{"title":"Warp Public Agent API","version":"1.0.0"},"components":{"schemas":{"RunAgentRequest":{"type":"object","required":["prompt"],"properties":{"prompt":{"type":"string","description":"The prompt/instruction for the agent to execute"},"config":{"$ref":"#/components/schemas/AmbientAgentConfig"},"title":{"type":"string","description":"Custom title for the run (auto-generated if not provided)"},"team":{"type":"boolean","description":"Make the run visible to all team members, not only the calling user","default":false}}},"AmbientAgentConfig":{"type":"object","description":"Configuration for an ambient agent run","properties":{"name":{"type":"string","description":"Config name for searchability and traceability"},"model_id":{"type":"string","description":"LLM model to use (uses team default if not specified)"},"base_prompt":{"type":"string","description":"Custom base prompt for the agent"},"environment_id":{"type":"string","description":"UID of the environment to run the agent in"},"mcp_servers":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/MCPServerConfig"},"description":"Map of MCP server configurations by name"}}},"MCPServerConfig":{"type":"object","description":"Configuration for an MCP server. Must have exactly one of: warp_id, command, or url.\n","properties":{"warp_id":{"type":"string","description":"Reference to a Warp shared MCP server by UUID"},"command":{"type":"string","description":"Stdio transport - command to run"},"args":{"type":"array","items":{"type":"string"},"description":"Stdio transport - command arguments"},"url":{"type":"string","format":"uri","description":"SSE/HTTP transport - server URL"},"env":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variables for the server"},"headers":{"type":"object","additionalProperties":{"type":"string"},"description":"HTTP headers for SSE/HTTP transport"}}}}}} ``` ## The RunAgentResponse object ```json {"openapi":"3.0.0","info":{"title":"Warp Public Agent API","version":"1.0.0"},"components":{"schemas":{"RunAgentResponse":{"type":"object","required":["run_id","state"],"properties":{"run_id":{"type":"string","description":"Unique identifier for the created run"},"state":{"$ref":"#/components/schemas/RunState"}}},"RunState":{"type":"string","enum":["QUEUED","PENDING","CLAIMED","INPROGRESS","SUCCEEDED","FAILED"],"description":"Current state of the run:\n- QUEUED: Run is waiting to be picked up\n- PENDING: Run is being prepared\n- CLAIMED: Run has been claimed by a worker\n- INPROGRESS: Run is actively being executed\n- SUCCEEDED: Run completed successfully\n- FAILED: Run failed\n"}}}} ``` ## The ListRunsResponse object ```json {"openapi":"3.0.0","info":{"title":"Warp Public Agent API","version":"1.0.0"},"components":{"schemas":{"ListRunsResponse":{"type":"object","required":["runs","page_info"],"properties":{"runs":{"type":"array","items":{"$ref":"#/components/schemas/RunItem"}},"page_info":{"$ref":"#/components/schemas/PageInfo"}}},"RunItem":{"type":"object","required":["run_id","title","state","prompt","created_at","updated_at"],"properties":{"run_id":{"type":"string","description":"Unique identifier for the run"},"title":{"type":"string","description":"Human-readable title for the run"},"state":{"$ref":"#/components/schemas/RunState"},"prompt":{"type":"string","description":"The prompt/instruction for the agent"},"created_at":{"type":"string","format":"date-time","description":"Timestamp when the run was created (RFC3339)"},"updated_at":{"type":"string","format":"date-time","description":"Timestamp when the run was last updated (RFC3339)"},"started_at":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp when the agent started working on the run (RFC3339)"},"status_message":{"$ref":"#/components/schemas/RunStatusMessage"},"source":{"$ref":"#/components/schemas/RunSourceType"},"session_id":{"type":"string","description":"UUID of the shared session (if available)"},"session_link":{"type":"string","format":"uri","description":"URL to view the agent session"},"creator":{"$ref":"#/components/schemas/RunCreatorInfo"},"agent_config":{"$ref":"#/components/schemas/AmbientAgentConfig"}}},"RunState":{"type":"string","enum":["QUEUED","PENDING","CLAIMED","INPROGRESS","SUCCEEDED","FAILED"],"description":"Current state of the run:\n- QUEUED: Run is waiting to be picked up\n- PENDING: Run is being prepared\n- CLAIMED: Run has been claimed by a worker\n- INPROGRESS: Run is actively being executed\n- SUCCEEDED: Run completed successfully\n- FAILED: Run failed\n"},"RunStatusMessage":{"type":"object","properties":{"message":{"type":"string","description":"Human-readable status message"}}},"RunSourceType":{"type":"string","enum":["LINEAR","API","SLACK","LOCAL","SCHEDULED_AGENT"],"description":"Source that created the run:\n- LINEAR: Created from Linear integration\n- API: Created via the Warp API\n- SLACK: Created from Slack integration\n- LOCAL: Created from local CLI/app\n- SCHEDULED_AGENT: Created by a scheduled agent\n"},"RunCreatorInfo":{"type":"object","properties":{"type":{"type":"string","enum":["user","service_account"],"description":"Type of the creator principal"},"uid":{"type":"string","description":"Unique identifier of the creator"}}},"AmbientAgentConfig":{"type":"object","description":"Configuration for an ambient agent run","properties":{"name":{"type":"string","description":"Config name for searchability and traceability"},"model_id":{"type":"string","description":"LLM model to use (uses team default if not specified)"},"base_prompt":{"type":"string","description":"Custom base prompt for the agent"},"environment_id":{"type":"string","description":"UID of the environment to run the agent in"},"mcp_servers":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/MCPServerConfig"},"description":"Map of MCP server configurations by name"}}},"MCPServerConfig":{"type":"object","description":"Configuration for an MCP server. Must have exactly one of: warp_id, command, or url.\n","properties":{"warp_id":{"type":"string","description":"Reference to a Warp shared MCP server by UUID"},"command":{"type":"string","description":"Stdio transport - command to run"},"args":{"type":"array","items":{"type":"string"},"description":"Stdio transport - command arguments"},"url":{"type":"string","format":"uri","description":"SSE/HTTP transport - server URL"},"env":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variables for the server"},"headers":{"type":"object","additionalProperties":{"type":"string"},"description":"HTTP headers for SSE/HTTP transport"}}},"PageInfo":{"type":"object","required":["has_next_page"],"properties":{"has_next_page":{"type":"boolean","description":"Whether there are more results available"},"next_cursor":{"type":"string","description":"Opaque cursor for fetching the next page"}}}}}} ``` ## The RunItem object ```json {"openapi":"3.0.0","info":{"title":"Warp Public Agent API","version":"1.0.0"},"components":{"schemas":{"RunItem":{"type":"object","required":["run_id","title","state","prompt","created_at","updated_at"],"properties":{"run_id":{"type":"string","description":"Unique identifier for the run"},"title":{"type":"string","description":"Human-readable title for the run"},"state":{"$ref":"#/components/schemas/RunState"},"prompt":{"type":"string","description":"The prompt/instruction for the agent"},"created_at":{"type":"string","format":"date-time","description":"Timestamp when the run was created (RFC3339)"},"updated_at":{"type":"string","format":"date-time","description":"Timestamp when the run was last updated (RFC3339)"},"started_at":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp when the agent started working on the run (RFC3339)"},"status_message":{"$ref":"#/components/schemas/RunStatusMessage"},"source":{"$ref":"#/components/schemas/RunSourceType"},"session_id":{"type":"string","description":"UUID of the shared session (if available)"},"session_link":{"type":"string","format":"uri","description":"URL to view the agent session"},"creator":{"$ref":"#/components/schemas/RunCreatorInfo"},"agent_config":{"$ref":"#/components/schemas/AmbientAgentConfig"}}},"RunState":{"type":"string","enum":["QUEUED","PENDING","CLAIMED","INPROGRESS","SUCCEEDED","FAILED"],"description":"Current state of the run:\n- QUEUED: Run is waiting to be picked up\n- PENDING: Run is being prepared\n- CLAIMED: Run has been claimed by a worker\n- INPROGRESS: Run is actively being executed\n- SUCCEEDED: Run completed successfully\n- FAILED: Run failed\n"},"RunStatusMessage":{"type":"object","properties":{"message":{"type":"string","description":"Human-readable status message"}}},"RunSourceType":{"type":"string","enum":["LINEAR","API","SLACK","LOCAL","SCHEDULED_AGENT"],"description":"Source that created the run:\n- LINEAR: Created from Linear integration\n- API: Created via the Warp API\n- SLACK: Created from Slack integration\n- LOCAL: Created from local CLI/app\n- SCHEDULED_AGENT: Created by a scheduled agent\n"},"RunCreatorInfo":{"type":"object","properties":{"type":{"type":"string","enum":["user","service_account"],"description":"Type of the creator principal"},"uid":{"type":"string","description":"Unique identifier of the creator"}}},"AmbientAgentConfig":{"type":"object","description":"Configuration for an ambient agent run","properties":{"name":{"type":"string","description":"Config name for searchability and traceability"},"model_id":{"type":"string","description":"LLM model to use (uses team default if not specified)"},"base_prompt":{"type":"string","description":"Custom base prompt for the agent"},"environment_id":{"type":"string","description":"UID of the environment to run the agent in"},"mcp_servers":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/MCPServerConfig"},"description":"Map of MCP server configurations by name"}}},"MCPServerConfig":{"type":"object","description":"Configuration for an MCP server. Must have exactly one of: warp_id, command, or url.\n","properties":{"warp_id":{"type":"string","description":"Reference to a Warp shared MCP server by UUID"},"command":{"type":"string","description":"Stdio transport - command to run"},"args":{"type":"array","items":{"type":"string"},"description":"Stdio transport - command arguments"},"url":{"type":"string","format":"uri","description":"SSE/HTTP transport - server URL"},"env":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variables for the server"},"headers":{"type":"object","additionalProperties":{"type":"string"},"description":"HTTP headers for SSE/HTTP transport"}}}}}} ``` ## The PageInfo object ```json {"openapi":"3.0.0","info":{"title":"Warp Public Agent API","version":"1.0.0"},"components":{"schemas":{"PageInfo":{"type":"object","required":["has_next_page"],"properties":{"has_next_page":{"type":"boolean","description":"Whether there are more results available"},"next_cursor":{"type":"string","description":"Opaque cursor for fetching the next page"}}}}}} ``` ## The RunStatusMessage object ```json {"openapi":"3.0.0","info":{"title":"Warp Public Agent API","version":"1.0.0"},"components":{"schemas":{"RunStatusMessage":{"type":"object","properties":{"message":{"type":"string","description":"Human-readable status message"}}}}}} ``` ## The RunCreatorInfo object ```json {"openapi":"3.0.0","info":{"title":"Warp Public Agent API","version":"1.0.0"},"components":{"schemas":{"RunCreatorInfo":{"type":"object","properties":{"type":{"type":"string","enum":["user","service_account"],"description":"Type of the creator principal"},"uid":{"type":"string","description":"Unique identifier of the creator"}}}}}} ``` ## The RunState object ```json {"openapi":"3.0.0","info":{"title":"Warp Public Agent API","version":"1.0.0"},"components":{"schemas":{"RunState":{"type":"string","enum":["QUEUED","PENDING","CLAIMED","INPROGRESS","SUCCEEDED","FAILED"],"description":"Current state of the run:\n- QUEUED: Run is waiting to be picked up\n- PENDING: Run is being prepared\n- CLAIMED: Run has been claimed by a worker\n- INPROGRESS: Run is actively being executed\n- SUCCEEDED: Run completed successfully\n- FAILED: Run failed\n"}}}} ``` ## The RunSourceType object ```json {"openapi":"3.0.0","info":{"title":"Warp Public Agent API","version":"1.0.0"},"components":{"schemas":{"RunSourceType":{"type":"string","enum":["LINEAR","API","SLACK","LOCAL","SCHEDULED_AGENT"],"description":"Source that created the run:\n- LINEAR: Created from Linear integration\n- API: Created via the Warp API\n- SLACK: Created from Slack integration\n- LOCAL: Created from local CLI/app\n- SCHEDULED_AGENT: Created by a scheduled agent\n"}}}} ``` ## The AmbientAgentConfig object ```json {"openapi":"3.0.0","info":{"title":"Warp Public Agent API","version":"1.0.0"},"components":{"schemas":{"AmbientAgentConfig":{"type":"object","description":"Configuration for an ambient agent run","properties":{"name":{"type":"string","description":"Config name for searchability and traceability"},"model_id":{"type":"string","description":"LLM model to use (uses team default if not specified)"},"base_prompt":{"type":"string","description":"Custom base prompt for the agent"},"environment_id":{"type":"string","description":"UID of the environment to run the agent in"},"mcp_servers":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/MCPServerConfig"},"description":"Map of MCP server configurations by name"}}},"MCPServerConfig":{"type":"object","description":"Configuration for an MCP server. Must have exactly one of: warp_id, command, or url.\n","properties":{"warp_id":{"type":"string","description":"Reference to a Warp shared MCP server by UUID"},"command":{"type":"string","description":"Stdio transport - command to run"},"args":{"type":"array","items":{"type":"string"},"description":"Stdio transport - command arguments"},"url":{"type":"string","format":"uri","description":"SSE/HTTP transport - server URL"},"env":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variables for the server"},"headers":{"type":"object","additionalProperties":{"type":"string"},"description":"HTTP headers for SSE/HTTP transport"}}}}}} ``` ## The MCPServerConfig object ```json {"openapi":"3.0.0","info":{"title":"Warp Public Agent API","version":"1.0.0"},"components":{"schemas":{"MCPServerConfig":{"type":"object","description":"Configuration for an MCP server. Must have exactly one of: warp_id, command, or url.\n","properties":{"warp_id":{"type":"string","description":"Reference to a Warp shared MCP server by UUID"},"command":{"type":"string","description":"Stdio transport - command to run"},"args":{"type":"array","items":{"type":"string"},"description":"Stdio transport - command arguments"},"url":{"type":"string","format":"uri","description":"SSE/HTTP transport - server URL"},"env":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variables for the server"},"headers":{"type":"object","additionalProperties":{"type":"string"},"description":"HTTP headers for SSE/HTTP transport"}}}}}} ``` ## The Error object ```json {"openapi":"3.0.0","info":{"title":"Warp Public Agent API","version":"1.0.0"},"components":{"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Human-readable error message"}}}}}} ``` --- # Source: https://docs.warp.dev/terminal/more-features.md # More Features - [Accessibility](/terminal/more-features/accessibility.md): Our mission is to make Warp the most accessible terminal for all developers. It includes fixing the UI, making it easier to use for experts and new engineers who are starting to use the command line. - [Files, Links, & Scripts](/terminal/more-features/files-and-links.md): Quickly open links and files or run scripts with your mouse. - [Markdown Viewer](/terminal/more-features/markdown-viewer.md): Open Markdown files in your terminal and run commands. - [Working Directory](/terminal/more-features/working-directory.md) - [Text Selection](/terminal/more-features/text-selection.md): Warp supports both smart selection and rectangular (column) selection, making it easier to quickly highlight the text you need without tedious dragging or cleanup. - [Full-screen Apps](/terminal/more-features/full-screen-apps.md): Warp runs alt-grid apps like Vim and Emacs in full-screen mode. Warp also supports sending mouse and scroll events directly to the alt-grid or adjusting the padding surrounding the apps. - [Desktop Notifications](/terminal/more-features/notifications.md): Warp can send you customizable desktop notifications when you are away from the app and quickly re-focus when something meaningful happens in your terminal sessions. - [Audible Bell](/terminal/more-features/audible-bell.md) - [Settings Sync (Beta)](/terminal/more-features/settings-sync.md): Settings Sync is a cloud feature that keeps your Warp settings and configuration consistent across devices and sessions, including the desktop app and the browser. - [Quit Warning](/terminal/more-features/quit-warning.md): Warp's quit warning feature is a valuable precaution to prevent unintentional data loss or lost progress on long-running jobs. - [URI Scheme](/terminal/more-features/uri-scheme.md): Warps URI scheme enables you to programmatically open new windows, tabs, or launch configurations with ease. - [Linux](/terminal/more-features/linux.md): Linux specific features. --- # Source: https://docs.warp.dev/support-and-community/privacy-and-security/network-log.md # Network Log ## What is it You can use Warp’s network log to help debug issues or simply use it to understand when information is sent or received over the network throughout a Warp terminal session. Each log item is a timestamped Debug format string for either a request or response object handled by Warp. Messages are logged via pre-request and post-response hooks in Warp’s internal HTTP client. ## How to use it 1. To access the network log, select the Input in a session and open the [Command Palette](https://docs.warp.dev/terminal/command-palette), then search for “Show Warp Network Log”. 2. That will insert a command into your Input editor - it should look something like this: `tail -f "some/path/to/warp_network.log"`. 3. Press Enter to run this command. You’ll then see the corresponding requests and responses logged in the network log. ## How it Works {% embed url="" %} Network Log Demo {% endembed %} ## Known Issues with Network Log At the moment, network traffic originating from crash reports and error messages is not captured in the network log. This is due to our use of the Sentry SDK, which encapsulates all network logic and doesn’t currently expose a hook for handling requests and responses directly. The team is actively investigating a solution to include such traffic in the log in a future release. You may also disable Crash Reporting entirely in Warp’s `Settings > Privacy` tab. --- # Source: https://docs.warp.dev/knowledge-and-collaboration/warp-drive/notebooks.md # Notebooks ### What is a Notebook? Notebooks are runnable documentation consisting of markdown text and list elements, code blocks, and runnable shell snippets that can be automatically executed in your terminal session. Notebooks are searchable and accessible through the [Command Palette](https://docs.warp.dev/terminal/command-palette) so you can access and run your documentation without ever leaving the terminal. You can also export Notebooks in .md format at any time. ### How to save and edit notebooks You can create a new notebook from various entry points in Warp {% tabs %} {% tab title="macOS" %} * From Warp Drive, + > New notebook * From the [Command Palette](https://docs.warp.dev/terminal/command-palette), create a new team or personal notebook. {% endtab %} {% tab title="Windows" %} * From Warp Drive, + > New notebook * From the [Command Palette](https://docs.warp.dev/terminal/command-palette), create a new team or personal notebook. {% endtab %} {% tab title="Linux" %} * From Warp Drive, + > New notebook * From the [Command Palette](https://docs.warp.dev/terminal/command-palette), create a new team or personal notebook. {% endtab %} {% endtabs %} Any of these entry points will open the notebook editor where you can: * Title your notebook. * Start adding text and code elements. {% hint style="info" %} Note: The notebook will not be saved until either title or body text is added. {% endhint %}

Editing a Notebook

### Working with Notebooks #### Adding new elements Notebook elements (text, code, list items) can be added in several ways: * Using the appropriate markdown shortcut (e.g. ### for Heading 3). * Typing /, which will open up a selection menu of supported elements. * Pressing the + icon which appears when hovering over a line and selecting from the menu of supported elements.

Markdown element types

#### Styling existing elements Existing notebook elements can be styled in several ways: * Selecting an existing element and selecting text decorations (like bold, italics, or inline code) from the hover menu. * Using markdown syntax for text stylings like \*\*bold\*\* or \*italic\*. * Selecting an existing element and changing the overall type of the element via the dropdown element menu.

Styling menu

#### Using Command and Code Blocks Command and code blocks have several unique properties such as syntax highlighting and quick actions that make working with code-based documentation simple. You can create a code or command block by either: * Selecting Command or Code from the new element menu * Typing ` ``` ` (triple backticks) Once you’ve inserted your code block you can select the language at the bottom of the block from numerous options which will apply the appropriate syntax highlighting if available (or default to Code if your language is not found). All code and command blocks will apply syntax highlighting and provide a quick copy button for easy access.

Example code block

#### Special Properties of Command Blocks If you insert a Command block or specify the language as “Shell”, Warp provides extra functionality to simplify terminal work. #### Executing Command Blocks Developers can execute shell command blocks by: {% tabs %} {% tab title="macOS" %} * Using the insert button at the bottom of the block * Pressing `CMD-ENTER` while the block is selected (a blue highlight will appear) {% endtab %} {% tab title="Windows" %} * Using the insert button at the bottom of the block * Pressing `CTRL-ENTER` while the block is selected (a blue highlight will appear) {% endtab %} {% tab title="Linux" %} * Using the insert button at the bottom of the block * Pressing `CTRL-ENTER` while the block is selected (a blue highlight will appear) {% endtab %} {% endtabs %} The command text will be inserted into the developer’s active terminal session, or a new session if none are active.

Run option for command block

#### Adding arguments to Command Blocks Command blocks accept parameters in the same format as [Workflows](https://docs.warp.dev/knowledge-and-collaboration/warp-drive/workflows). To add an argument to your command block, use {{double\_curly\_brackets}} to specify your argument term.

Command block with parameters

#### Navigating command blocks with the keyboard Command Blocks also support keyboard navigation. There are two ways to enter the keyboard navigation mode: {% tabs %} {% tab title="macOS" %} * Clicking on a shell block. * Pressing `CMD-UP` or `CMD-DOWN.` Once a command block is selected, press `CMD-ENTER` to insert it into the terminal input. You can also use `UP, DOWN, CMD-UP`, and `CMD-DOWN` to navigate between command blocks. While the Notebook is focused, press `CMD-L` to switch focus back to the terminal without inserting a command. {% endtab %} {% tab title="Windows" %} * Clicking on a shell block. * Pressing `CTRL-UP` or `CTRL-DOWN.` Once a command block is selected, press `CTRL-ENTER` to insert it into the terminal input. You can also use `UP, DOWN, CTRL-UP,` and `CTRL-DOWN` to navigate between command blocks. While the Notebook is focused, press `CTRL-L` to switch focus back to the terminal without inserting a command. {% endtab %} {% tab title="Linux" %} * Clicking on a shell block. * Pressing `CTRL-UP` or `CTRL-DOWN.` Once a command block is selected, press `CTRL-ENTER` to insert it into the terminal input. You can also use `UP, DOWN, CTRL-UP,` and `CTRL-DOWN` to navigate between command blocks. While the Notebook is focused, press `CTRL-L` to switch focus back to the terminal without inserting a command. {% endtab %} {% endtabs %} #### Adding existing Workflows to Notebooks If you have existing [Workflows](https://docs.warp.dev/knowledge-and-collaboration/warp-drive/workflows) that you’d like to insert into your notebook rather than duplicating their content, you can select Embedded Workflow from the new element menu and select from the available Workflows. Once embedded in a notebook, the workflow will be executable like a regular command block. To edit the content of the embedded workflow, you will need to edit the source workflow which can be found by searching for the title in the [Command Palette](https://docs.warp.dev/terminal/command-palette).

Embedding an existing workflow in a notebook.

### Working with Notebooks in a team If the notebook is shared with a team, all team members will have access to edit the notebook and updates will sync immediately for all members of the team. {% hint style="info" %} Note that only one editor is allowed at a given time. Opening the notebook while there is an active editor will open the notebook in Viewing mode. Your mode (view vs edit) can be toggled above the notebook’s title. {% endhint %}

View mode example

### Import and Export Notebooks in Warp Drive Please see our [Warp Drive Import and Export](https://docs.warp.dev/knowledge-and-collaboration/warp-drive/..#import-and-export) instructions. --- # Source: https://docs.warp.dev/terminal/more-features/notifications.md # Desktop Notifications ## What is it Notifications can be sent when a command completes after a configurable number of seconds or when a running command needs you to enter a password to proceed. For either of these triggers, Warp will only send you a desktop notification if you are using a different app at the time the trigger is fired. ## Custom notification hooks (OSC 9 / OSC 777) Warp supports pluggable notifications triggered by terminal escape sequences, so scripts and tools can raise desktop notifications without additional dependencies. * OSC 9 (body only): sends a notification with just a body. * Format: `ESC ] 9 ; BEL` * Example (bash/zsh): `printf '\033]9;Build complete\007'` * OSC 777 (title + body): sends a notification with a title and body. * Format: `ESC ] 777 ; notify ; ; <body> BEL` * Example (bash/zsh): `printf '\033]777;notify;Deploy;Success on prod\007'` Notes: * Works on macOS, Windows, and Linux where Warp is allowed to show notifications. * Newlines and semicolons should be avoided or escaped in payloads. * This feature is enabled by default in current releases of Warp. ## How to access it ### Notifications * Notifications are enabled by default and require system permissions to appear. * If you've turned Notifications off before, toggle it back on by going to `Settings > Features > Session`, or quickly toggle Notifications with the [Command Palette](https://docs.warp.dev/terminal/command-palette). * Customize Notification triggers for long-running commands or password prompts by going to `Settings > Features`. {% hint style="info" %} On macOS, you will want to **Allow** or **Accept** the request so that Warp can send you desktop notifications. If you accidentally denied it or would like to re-enable Notifications later, check the [troubleshooting guide below](#troubleshooting-notifications). {% endhint %} ## How it works {% embed url="<https://www.loom.com/share/65967f43a7fa432b98cf3e94766a8e79?hide_owner=true&hide_share=true&hide_title=true&hideEmbedTopBar=true>" %} Notifications Demo {% endembed %} ## Troubleshooting Notifications {% tabs %} {% tab title="macOS" %} Warp requires two distinct notification settings to work. Mac system settings found in `Mac > System Preferences > Notifications & Focus` and Warp app settings found in `Settings > Features > Session` must both be enabled for Notifications to show.\ \ If you have Notifications enabled in the system and Warp, but you still aren't receiving desktop notifications, try the following: * Make sure that you are navigated away from Warp when you expect to receive the notification. * Make sure the **Do Not Disturb** mode is turned off in `Mac > System Preferences > Notifications > Notifications & Focus > Focus`. * Go to `Mac > System Preferences > Notifications & Focus > Notifications` and select Warp in the list. Make sure either banner style or alert style notifications are selected, then quit and restart Warp. * To get the MacOS notification prompt to show again for Warp, run `defaults delete dev.warp.Warp-Stable Notifications`, then restart Warp and toggle on the `Settings > Features > Receive desktop notifications from Warp`. * Once all of the above is done, please Restart MacOS to apply the changes and that should help with restoring notifications in Warp. {% endtab %} {% tab title="Windows" %} Warp requires two distinct notification settings to work. Windows system settings found in `Settings > System > Notifications > Warp` and Warp app settings found in `Settings > Features > Session` must both be enabled for Notifications to show. If you have Notifications enabled in the system and Warp, but you still aren't receiving desktop notifications, try the following: * Make sure that you are navigated away from Warp when you expect to receive the notification. * Make sure the **Do Not Disturb** mode or **Focus** is turned off. * Go to `System > Notifications` and select Warp in the list. Make sure notifications are turned on, then quit and restart Warp. {% endtab %} {% tab title="Linux" %} Warp requires two distinct notification settings to work. Linux system settings found in `Settings > Notifications > Warp` and Warp app settings found in `Settings > Features > Session` must both be enabled for Notifications to show. If you have Notifications enabled in the system and Warp, but you still aren't receiving desktop notifications, try the following: * Make sure that you are navigated away from Warp when you expect to receive the notification. * Make sure the **Do Not Disturb** mode (if your distribution supports it) is turned off. * Go to `Settings > Notifications` and select Warp in the list. Make sure notifications are turned on, then quit and restart Warp. {% endtab %} {% endtabs %} Please [reach out to us](https://docs.warp.dev/support-and-community/troubleshooting-and-support/sending-us-feedback#sending-warp-feedback) if any other issues. --- # Source: https://docs.warp.dev/support-and-community/community/open-source-licenses.md # Open Source Licenses ## Cargo based licenses Repositories are by default GitHub if not otherwise specified. | Name | License | Repository | | ----------------------------- | --------------------------------------------------- | -----------------------------------------------------: | | addr2line | Apache-2.0 OR MIT | gimli-rs/addr2line | | adler | 0BSD OR Apache-2.0 OR MIT | jonas-schievink/adler.git | | adler32 | Zlib | remram44/adler32-rs | | aho-corasick | MIT OR Unlicense | BurntSushi/aho-corasick | | analytics | MIT | | | ansi\_term | MIT | | | anyhow | Apache-2.0 OR MIT | dtolnay/anyhow | | arrayref | BSD-2-Clause | droundy/arrayref | | arrayvec | Apache-2.0 OR MIT | bluss/arrayvec | | as-slice | Apache-2.0 OR MIT | japaric/as-slice | | ascii | Apache-2.0 OR MIT | tomprogrammer/rust-ascii | | async-broadcast | Apache-2.0 OR MIT | smol-rs/async-broadcast | | async-channel | Apache-2.0 OR MIT | smol-rs/async-channel | | async-executor | Apache-2.0 OR MIT | stjepang/async-executor | | async-fs | Apache-2.0 OR MIT | stjepang/async-fs | | async-io | Apache-2.0 OR MIT | smol-rs/async-io | | async-lock | Apache-2.0 OR MIT | smol-rs/async-lock | | async-net | Apache-2.0 OR MIT | smol-rs/async-net | | async-process | Apache-2.0 OR MIT | smol-rs/async-process | | async-task | Apache-2.0 OR MIT | stjepang/async-task | | async-task | Apache-2.0 OR MIT | stjepang/async-task | | atomic-waker | Apache-2.0 OR MIT | stjepang/atomic-waker | | atty | MIT | softprops/atty | | autocfg | Apache-2.0 OR MIT | cuviper/autocfg | | backtrace | Apache-2.0 OR MIT | rust-lang/backtrace-rs | | base64 | Apache-2.0 OR MIT | marshallpierce/rust-base64 | | base64 | Apache-2.0 OR MIT | marshallpierce/rust-base64 | | bindgen | BSD-3-Clause | rust-lang/rust-bindgen | | bitflags | Apache-2.0 OR MIT | bitflags/bitflags | | block | MIT | SSheldon/rust-block | | blocking | Apache-2.0 OR MIT | stjepang/blocking | | bounded-vec-deque | BSD-3-Clause OR GPL-3.0+ | | | bumpalo | Apache-2.0 OR MIT | fitzgen/bumpalo | | bytemuck | Apache-2.0 OR MIT OR Zlib | Lokathor/bytemuck | | byteorder | MIT OR Unlicense | BurntSushi/byteorder | | bytes | MIT | tokio-rs/bytes | | bytes | MIT | tokio-rs/bytes | | cache-padded | Apache-2.0 OR MIT | stjepang/cache-padded | | cc | Apache-2.0 OR MIT | alexcrichton/cc-rs | | cexpr | Apache-2.0 OR MIT | jethrogb/rust-cexpr | | cfg-if | Apache-2.0 OR MIT | alexcrichton/cfg-if | | cfg-if | Apache-2.0 OR MIT | alexcrichton/cfg-if | | chrono | Apache-2.0 OR MIT | chronotope/chrono | | clang-sys | Apache-2.0 | KyleMayes/clang-sys | | clap | MIT | clap-rs/clap | | cloudabi | BSD-2-Clause | nuxinl/cloudabi | | cmake | Apache-2.0 OR MIT | alexcrichton/cmake-rs | | cocoa | Apache-2.0 OR MIT | servo/core-foundation-rs | | cocoa-foundation | Apache-2.0 OR MIT | servo/core-foundation-rs | | color\_quant | MIT | image-rs/color\_quant.git | | combine | MIT | Marwes/combine | | concurrent-queue | Apache-2.0 OR MIT | stjepang/concurrent-queue | | const\_format | Zlib | rodrimati1992/const\_format\_crates/ | | const\_format\_proc\_macros | Zlib | rodrimati1992/const\_format\_crates/ | | convert\_case | MIT | rutrum/convert-case | | core-foundation | Apache-2.0 OR MIT | servo/core-foundation-rs | | core-foundation | Apache-2.0 OR MIT | servo/core-foundation-rs | | core-foundation | Apache-2.0 OR MIT | servo/core-foundation-rs | | core-foundation-sys | Apache-2.0 OR MIT | servo/core-foundation-rs | | core-foundation-sys | Apache-2.0 OR MIT | servo/core-foundation-rs | | core-foundation-sys | Apache-2.0 OR MIT | servo/core-foundation-rs | | core-graphics | Apache-2.0 OR MIT | servo/core-foundation-rs | | core-graphics | Apache-2.0 OR MIT | servo/core-foundation-rs | | core-graphics-types | Apache-2.0 OR MIT | servo/core-foundation-rs | | core-graphics-types | Apache-2.0 OR MIT | servo/core-foundation-rs | | core-text | Apache-2.0 OR MIT | servo/core-foundation-rs | | crc32fast | Apache-2.0 OR MIT | srijs/rust-crc32fast | | crossbeam-channel | Apache-2.0 OR MIT | crossbeam-rs/crossbeam | | crossbeam-deque | Apache-2.0 OR MIT | crossbeam-rs/crossbeam | | crossbeam-epoch | Apache-2.0 OR MIT | crossbeam-rs/crossbeam | | crossbeam-utils | Apache-2.0 OR MIT | crossbeam-rs/crossbeam | | ctor | Apache-2.0 OR MIT | mmastrac/rust-ctor | | darling | MIT | TedDriggs/darling | | darling\_core | MIT | TedDriggs/darling | | darling\_macro | MIT | TedDriggs/darling | | dashmap | MIT | xacrimon/dashmap | | data-url | Apache-2.0 OR MIT | servo/rust-url | | debugid | Apache-2.0 | getsentry/rust-debugid | | deflate | Apache-2.0 OR MIT | image-rs/deflate-rs | | derive-new | MIT | nrc/derive-new | | diesel | Apache-2.0 OR MIT | diesel-rs/diesel | | diesel\_derives | Apache-2.0 OR MIT | diesel-rs/diesel/tree/master/diesel\_derives | | diesel\_migrations | Apache-2.0 OR MIT | | | dirs | Apache-2.0 OR MIT | soc/dirs-rs | | dirs-next | Apache-2.0 OR MIT | xdg-rs/dirs | | dirs-sys | Apache-2.0 OR MIT | dirs-dev/dirs-sys-rs | | dirs-sys-next | Apache-2.0 OR MIT | xdg-rs/dirs/tree/master/dirs-sys | | doc-comment | MIT | GuillaumeGomez/doc-comment | | dtoa | Apache-2.0 OR MIT | dtolnay/dtoa | | dunce | CC0-1.0 | | | dwrote | MPL-2.0 | servo/dwrote-rs | | easy-parallel | Apache-2.0 OR MIT | stjepang/easy-parallel | | either | Apache-2.0 OR MIT | bluss/either | | embed\_plist | Apache-2.0 OR MIT | nvzqz/embed-plist-rs | | enclose | MIT | clucompany/Enclose.git | | encoding\_rs | Apache-2.0 OR MIT | hsivonen/encoding\_rs | | env\_logger | Apache-2.0 OR MIT | env-logger-rs/env\_logger/ | | event-listener | Apache-2.0 OR MIT | stjepang/event-listener | | expat-sys | MIT | servo/libexpat/ | | failure | Apache-2.0 OR MIT | rust-lang-nursery/failure | | failure\_derive | Apache-2.0 OR MIT | rust-lang-nursery/failure | | fastrand | Apache-2.0 OR MIT | smol-rs/fastrand | | filetime | Apache-2.0 OR MIT | alexcrichton/filetime | | flate2 | Apache-2.0 OR MIT | rust-lang/flate2-rs | | float-cmp | MIT | mikedilger/float-cmp | | float-ord | Apache-2.0 OR MIT | notriddle/rust-float-ord | | fnv | Apache-2.0 OR MIT | servo/rust-fnv | | font-kit | Apache-2.0 OR MIT | servo/font-kit | | fontdb | MIT | RazrFalcon/fontdb | | foreign-types | Apache-2.0 OR MIT | sfackler/foreign-types | | foreign-types-shared | Apache-2.0 OR MIT | sfackler/foreign-types | | form\_urlencoded | Apache-2.0 OR MIT | servo/rust-url | | freetype | Apache-2.0 OR MIT | servo/rust-freetype | | freetype-sys | MIT | PistonDevelopers/freetype-sys.git | | fs\_extra | MIT | webdesus/fs\_extra | | fsevent | MIT | octplane/fsevent-rust | | fsevent-sys | MIT | octplane/fsevent-rust/tree/master/fsevent-sys | | fsio | Apache-2.0 | sagiegurari/fsio.git | | fuchsia-zircon | BSD-3-Clause | | | fuchsia-zircon-sys | BSD-3-Clause | | | futures | Apache-2.0 OR MIT | rust-lang/futures-rs | | futures-channel | Apache-2.0 OR MIT | rust-lang/futures-rs | | futures-core | Apache-2.0 OR MIT | rust-lang/futures-rs | | futures-executor | Apache-2.0 OR MIT | rust-lang/futures-rs | | futures-io | Apache-2.0 OR MIT | rust-lang/futures-rs | | futures-lite | Apache-2.0 OR MIT | smol-rs/futures-lite | | futures-macro | Apache-2.0 OR MIT | rust-lang/futures-rs | | futures-sink | Apache-2.0 OR MIT | rust-lang/futures-rs | | futures-task | Apache-2.0 OR MIT | rust-lang/futures-rs | | futures-util | Apache-2.0 OR MIT | rust-lang/futures-rs | | fuzzy-matcher | MIT | lotabout/fuzzy-matcher | | generic-array | MIT | fizyk20/generic-array.git | | generic-array | MIT | fizyk20/generic-array.git | | generic-array | MIT | fizyk20/generic-array.git | | getrandom | Apache-2.0 OR MIT | rust-random/getrandom | | getrandom | Apache-2.0 OR MIT | rust-random/getrandom | | getset | MIT | Hoverbear/getset | | gif | Apache-2.0 OR MIT | image-rs/image-gif | | gimli | Apache-2.0 OR MIT | gimli-rs/gimli | | git2 | Apache-2.0 OR MIT | rust-lang/git2-rs | | glob | Apache-2.0 OR MIT | rust-lang/glob | | graphql-introspection-query | Apache-2.0 OR MIT | graphql-rust/graphql-client | | graphql-parser | Apache-2.0 OR MIT | | | graphql\_client | Apache-2.0 OR MIT | graphql-rust/graphql-client | | graphql\_client\_codegen | Apache-2.0 OR MIT | graphql-rust/graphql-client | | graphql\_query\_derive | Apache-2.0 OR MIT | graphql-rust/graphql-client | | h2 | MIT | hyperium/h2 | | h2 | MIT | hyperium/h2 | | hash32 | Apache-2.0 OR MIT | japaric/hash32 | | hashbrown | Apache-2.0 OR MIT | rust-lang/hashbrown | | heapless | Apache-2.0 OR MIT | japaric/heapless | | heck | Apache-2.0 OR MIT | withoutboats/heck | | hermit-abi | Apache-2.0 OR MIT | hermitcore/libhermit-rs | | hex | Apache-2.0 OR MIT | KokaKiwi/rust-hex | | hostname | MIT | svartalf/hostname | | http | Apache-2.0 OR MIT | hyperium/http | | http-body | MIT | hyperium/http-body | | http-body | MIT | hyperium/http-body | | httparse | Apache-2.0 OR MIT | seanmonstar/httparse | | httpdate | Apache-2.0 OR MIT | pyfisch/httpdate | | httpdate | Apache-2.0 OR MIT | pyfisch/httpdate | | humantime | Apache-2.0 OR MIT | tailhook/humantime | | hyper | MIT | hyperium/hyper | | hyper | MIT | hyperium/hyper | | hyper-tls | Apache-2.0 OR MIT | hyperium/hyper-tls | | ident\_case | Apache-2.0 OR MIT | TedDriggs/ident\_case | | idna | Apache-2.0 OR MIT | servo/rust-url/ | | image | MIT | image-rs/image | | indexmap | Apache-2.0 OR MIT | bluss/indexmap | | inotify | ISC | inotify-rs/inotify | | inotify-sys | ISC | hannobraun/inotify-sys | | instant | BSD-3-Clause | sebcrozet/instant | | iovec | Apache-2.0 OR MIT | carllerche/iovec | | ipnet | Apache-2.0 OR MIT | krisprice/ipnet | | itertools | Apache-2.0 OR MIT | rust-itertools/itertools | | itoa | Apache-2.0 OR MIT | dtolnay/itoa | | jobserver | Apache-2.0 OR MIT | alexcrichton/jobserver-rs | | jpeg-decoder | Apache-2.0 OR MIT | image-rs/jpeg-decoder | | js-sys | Apache-2.0 OR MIT | rustwasm/wasm-bindgen/tree/master/crates/js-sys | | kernel32-sys | MIT | retep998/winapi-rs | | kqueue | MIT | | | kqueue-sys | MIT | | | kurbo | Apache-2.0 OR MIT | linebender/kurbo | | lazy\_static | Apache-2.0 OR MIT | rust-lang-nursery/lazy-static.rs | | lazycell | Apache-2.0 OR MIT | indiv0/lazycell | | libc | Apache-2.0 OR MIT | rust-lang/libc | | libgit2-sys | Apache-2.0 OR MIT | rust-lang/git2-rs | | libloading | ISC | nagisa/rust\_libloading/ | | libsqlite3-sys | MIT | rusqlite/rusqlite | | libz-sys | Apache-2.0 OR MIT | rust-lang/libz-sys | | linked-hash-map | Apache-2.0 OR MIT | contain-rs/linked-hash-map | | lock\_api | Apache-2.0 OR MIT | Amanieu/parking\_lot | | lock\_api | Apache-2.0 OR MIT | Amanieu/parking\_lot | | log | Apache-2.0 OR MIT | rust-lang/log | | malloc\_buf | MIT | SSheldon/malloc\_buf | | match\_cfg | Apache-2.0 OR MIT | gnzlbg/match\_cfg | | matches | MIT | SimonSapin/rust-std-candidates | | maybe-uninit | Apache-2.0 OR MIT | est31/maybe-uninit | | memchr | MIT OR Unlicense | BurntSushi/memchr | | memmap | Apache-2.0 OR MIT | danburkert/memmap-rs | | memmap2 | Apache-2.0 OR MIT | RazrFalcon/memmap2-rs | | memoffset | MIT | Gilnaa/memoffset | | metal | Apache-2.0 OR MIT | gfx-rs/metal-rs | | migrations\_internals | Apache-2.0 OR MIT | | | migrations\_macros | Apache-2.0 OR MIT | | | mime | Apache-2.0 OR MIT | hyperium/mime | | miniz\_oxide | Apache-2.0 OR MIT OR Zlib | Frommi/miniz\_oxide/tree/master/miniz\_oxide | | miniz\_oxide | MIT | Frommi/miniz\_oxide/tree/master/miniz\_oxide | | mio | MIT | tokio-rs/mio | | mio | MIT | tokio-rs/mio | | mio-extras | Apache-2.0 OR MIT | dimbleby/mio-extras | | miow | Apache-2.0 OR MIT | alexcrichton/miow | | miow | Apache-2.0 OR MIT | yoshuawuyts/miow | | native-tls | Apache-2.0 OR MIT | sfackler/rust-native-tls | | net2 | Apache-2.0 OR MIT | deprecrated/net2-rs | | nix | MIT | nix-rust/nix | | nom | MIT | Geal/nom | | notify | CC0-1.0 | notify-rs/notify.git | | ntapi | Apache-2.0 OR MIT | MSxDOS/ntapi | | num-derive | Apache-2.0 OR MIT | rust-num/num-derive | | num-integer | Apache-2.0 OR MIT | rust-num/num-integer | | num-iter | Apache-2.0 OR MIT | rust-num/num-iter | | num-rational | Apache-2.0 OR MIT | rust-num/num-rational | | num-traits | Apache-2.0 OR MIT | rust-num/num-traits | | num\_cpus | Apache-2.0 OR MIT | seanmonstar/num\_cpus | | objc | MIT | SSheldon/rust-objc | | objc-foundation | MIT | SSheldon/rust-objc-foundation | | objc\_exception | MIT | SSheldon/rust-objc-exception | | objc\_id | MIT | SSheldon/rust-objc-id | | object | Apache-2.0 OR MIT | gimli-rs/object | | once\_cell | Apache-2.0 OR MIT | matklad/once\_cell | | openssl | Apache-2.0 | sfackler/rust-openssl | | openssl-probe | Apache-2.0 OR MIT | alexcrichton/openssl-probe | | openssl-sys | MIT | sfackler/rust-openssl | | ordered-float | MIT | reem/rust-ordered-float | | ordered-float | MIT | reem/rust-ordered-float | | parking | Apache-2.0 OR MIT | stjepang/parking | | parking\_lot | Apache-2.0 OR MIT | Amanieu/parking\_lot | | parking\_lot | Apache-2.0 OR MIT | Amanieu/parking\_lot | | parking\_lot\_core | Apache-2.0 OR MIT | Amanieu/parking\_lot | | parking\_lot\_core | Apache-2.0 OR MIT | Amanieu/parking\_lot | | pathfinder\_color | Apache-2.0 OR MIT | servo/pathfinder | | pathfinder\_geometry | Apache-2.0 OR MIT | servo/pathfinder | | pathfinder\_simd | Apache-2.0 OR MIT | servo/pathfinder | | pdqselect | Apache-2.0 OR MIT | | | peeking\_take\_while | Apache-2.0 OR MIT | fitzgen/peeking\_take\_while | | percent-encoding | Apache-2.0 OR MIT | servo/rust-url/ | | permissions | MIT | marcospb19/dotao | | pest | Apache-2.0 OR MIT | pest-parser/pest | | pico-args | MIT | RazrFalcon/pico-args | | pin-project | Apache-2.0 OR MIT | taiki-e/pin-project | | pin-project-internal | Apache-2.0 OR MIT | taiki-e/pin-project | | pin-project-lite | Apache-2.0 OR MIT | taiki-e/pin-project-lite | | pin-project-lite | Apache-2.0 OR MIT | taiki-e/pin-project-lite | | pin-utils | Apache-2.0 OR MIT | rust-lang-nursery/pin-utils | | pkg-config | Apache-2.0 OR MIT | rust-lang/pkg-config-rs | | png | Apache-2.0 OR MIT | image-rs/image-png.git | | polling | Apache-2.0 OR MIT | smol-rs/polling | | ppv-lite86 | Apache-2.0 OR MIT | cryptocorrosion/cryptocorrosion | | proc-macro-error | Apache-2.0 OR MIT | | | proc-macro-error-attr | Apache-2.0 OR MIT | | | proc-macro-hack | Apache-2.0 OR MIT | dtolnay/proc-macro-hack | | proc-macro-nested | Apache-2.0 OR MIT | dtolnay/proc-macro-hack | | proc-macro2 | Apache-2.0 OR MIT | dtolnay/proc-macro2 | | prometheus | Apache-2.0 | tikv/rust-prometheus | | protobuf | MIT | stepancheg/rust-protobuf/ | | quote | Apache-2.0 OR MIT | dtolnay/quote | | rand | Apache-2.0 OR MIT | rust-random/rand | | rand | Apache-2.0 OR MIT | rust-random/rand | | rand\_chacha | Apache-2.0 OR MIT | rust-random/rand | | rand\_chacha | Apache-2.0 OR MIT | rust-random/rand | | rand\_core | Apache-2.0 OR MIT | rust-random/rand | | rand\_core | Apache-2.0 OR MIT | rust-random/rand | | rand\_hc | Apache-2.0 OR MIT | rust-random/rand | | rand\_hc | Apache-2.0 OR MIT | rust-random/rand | | rayon | Apache-2.0 OR MIT | rayon-rs/rayon | | rayon-core | Apache-2.0 OR MIT | rayon-rs/rayon | | rctree | MIT | RazrFalcon/rctree | | redox\_syscall | MIT | | | redox\_syscall | MIT | | | redox\_users | MIT | | | regex | Apache-2.0 OR MIT | rust-lang/regex | | regex-automata | MIT OR Unlicense | BurntSushi/regex-automata | | regex-syntax | Apache-2.0 OR MIT | rust-lang/regex | | remove\_dir\_all | Apache-2.0 OR MIT | XAMPPRocky/remove\_dir\_all.git | | reqwest | Apache-2.0 OR MIT | seanmonstar/reqwest | | resvg | MPL-2.0 | RazrFalcon/resvg | | rgb | MIT | kornelski/rust-rgb | | roxmltree | Apache-2.0 OR MIT | RazrFalcon/roxmltree | | rstar | Apache-2.0 OR MIT | georust/rstar | | run\_script | Apache-2.0 | sagiegurari/run\_script.git | | rust-embed | MIT | pyros2097/rust-embed | | rust-embed-impl | MIT | pyros2097/rust-embed | | rust-embed-utils | MIT | pyros2097/rust-embed | | rustc-demangle | Apache-2.0 OR MIT | alexcrichton/rustc-demangle | | rustc-hash | Apache-2.0 OR MIT | rust-lang-nursery/rustc-hash | | rustc\_version | Apache-2.0 OR MIT | Kimundi/rustc-version-rs | | rustc\_version | Apache-2.0 OR MIT | Kimundi/rustc-version-rs | | rustc\_version | Apache-2.0 OR MIT | Kimundi/rustc-version-rs | | rustversion | Apache-2.0 OR MIT | dtolnay/rustversion | | rustybuzz | MIT | RazrFalcon/rustybuzz | | ryu | Apache-2.0 OR BSL-1.0 | dtolnay/ryu | | safe\_arch | Apache-2.0 OR MIT OR Zlib | Lokathor/safe\_arch | | same-file | MIT OR Unlicense | BurntSushi/same-file | | schannel | MIT | steffengy/schannel-rs | | scoped\_threadpool | MIT | Kimundi/scoped-threadpool-rs | | scopeguard | Apache-2.0 OR MIT | bluss/scopeguard | | security-framework | Apache-2.0 OR MIT | kornelski/rust-security-framework | | security-framework-sys | Apache-2.0 OR MIT | kornelski/rust-security-framework | | semver | Apache-2.0 OR MIT | dtolnay/semver | | semver | Apache-2.0 OR MIT | steveklabnik/semver | | semver | Apache-2.0 OR MIT | steveklabnik/semver | | semver-parser | Apache-2.0 OR MIT | steveklabnik/semver-parser | | semver-parser | Apache-2.0 OR MIT | steveklabnik/semver-parser | | sentry | Apache-2.0 | getsentry/sentry-rust | | sentry-backtrace | Apache-2.0 | getsentry/sentry-rust | | sentry-contexts | Apache-2.0 | getsentry/sentry-rust | | sentry-core | Apache-2.0 | getsentry/sentry-rust | | sentry-log | Apache-2.0 | getsentry/sentry-rust | | sentry-panic | Apache-2.0 | getsentry/sentry-rust | | sentry-types | Apache-2.0 | getsentry/sentry-rust | | serde | Apache-2.0 OR MIT | serde-rs/serde | | serde\_derive | Apache-2.0 OR MIT | serde-rs/serde | | serde\_json | Apache-2.0 OR MIT | serde-rs/json | | serde\_urlencoded | Apache-2.0 OR MIT | nox/serde\_urlencoded | | serde\_with | Apache-2.0 OR MIT | jonasbb/serde\_with | | serde\_with\_macros | Apache-2.0 OR MIT | jonasbb/serde\_with/ | | serde\_yaml | Apache-2.0 OR MIT | dtolnay/serde-yaml | | servo-fontconfig | Apache-2.0 OR MIT | servo/rust-fontconfig/ | | servo-fontconfig-sys | MIT | servo/libfontconfig/ | | shellexpand | Apache-2.0 OR MIT | netvl/shellexpand | | shellwords | MIT | jimmycuadra/rust-shellwords | | shlex | Apache-2.0 OR MIT | comex/rust-shlex | | signal-hook | Apache-2.0 OR MIT | vorner/signal-hook | | signal-hook | Apache-2.0 OR MIT | vorner/signal-hook | | signal-hook-registry | Apache-2.0 OR MIT | vorner/signal-hook | | simplecss | Apache-2.0 OR MIT | RazrFalcon/simplecss | | simplelog | Apache-2.0 OR MIT | drakulix/simplelog.rs | | simplelog | Apache-2.0 OR MIT | drakulix/simplelog.rs | | siphasher | Apache-2.0 OR MIT | jedisct1/rust-siphash | | slab | MIT | tokio-rs/slab | | smallvec | Apache-2.0 OR MIT | servo/rust-smallvec | | smallvec | Apache-2.0 OR MIT | servo/rust-smallvec | | smart-default | MIT | idanarye/rust-smart-default | | smol | Apache-2.0 OR MIT | stjepang/smol | | socket2 | Apache-2.0 OR MIT | alexcrichton/socket2-rs | | socket2 | Apache-2.0 OR MIT | rust-lang/socket2 | | stable\_deref\_trait | Apache-2.0 OR MIT | storyyeller/stable\_deref\_trait | | strsim | MIT | dguo/strsim-rs | | strsim | MIT | dguo/strsim-rs | | svgfilters | MPL-2.0 | RazrFalcon/resvg/tree/master/svgfilters | | svgtypes | Apache-2.0 OR MIT | RazrFalcon/svgtypes | | syn | Apache-2.0 OR MIT | dtolnay/syn | | synstructure | MIT | mystor/synstructure | | sysinfo | MIT | GuillaumeGomez/sysinfo | | tempfile | Apache-2.0 OR MIT | Stebalien/tempfile | | termcolor | MIT OR Unlicense | BurntSushi/termcolor | | textwrap | MIT | mgeisler/textwrap | | thiserror | Apache-2.0 OR MIT | dtolnay/thiserror | | thiserror-impl | Apache-2.0 OR MIT | dtolnay/thiserror | | thread\_local | Apache-2.0 OR MIT | Amanieu/thread\_local-rs | | tiff | MIT | image-rs/image-tiff | | time | Apache-2.0 OR MIT | time-rs/time | | tiny-skia | BSD-3-Clause | RazrFalcon/tiny-skia | | tinyvec | Apache-2.0 OR MIT OR Zlib | Lokathor/tinyvec | | tinyvec\_macros | Apache-2.0 OR MIT OR Zlib | Soveu/tinyvec\_macros | | tokio | MIT | tokio-rs/tokio | | tokio | MIT | tokio-rs/tokio | | tokio-native-tls | MIT | tokio-rs/tls | | tokio-util | MIT | tokio-rs/tokio | | tokio-util | MIT | tokio-rs/tokio | | tower-service | MIT | tower-rs/tower | | tracing | MIT | tokio-rs/tracing | | tracing-core | MIT | tokio-rs/tracing | | tracing-futures | MIT | tokio-rs/tracing | | tree-sitter | MIT | tree-sitter/tree-sitter | | try-lock | MIT | seanmonstar/try-lock | | ttf-parser | Apache-2.0 OR MIT | RazrFalcon/ttf-parser | | ttf-parser | Apache-2.0 OR MIT | RazrFalcon/ttf-parser | | typenum | Apache-2.0 OR MIT | paholg/typenum | | ucd-trie | Apache-2.0 OR MIT | BurntSushi/ucd-generate | | uname | Apache-2.0 OR MIT | icorderi/rust-uname | | uneval | MIT | Cerber-Ursi/uneval | | unicode-bidi | Apache-2.0 OR MIT | servo/unicode-bidi | | unicode-bidi-mirroring | Apache-2.0 OR MIT | RazrFalcon/unicode-bidi-mirroring | | unicode-ccc | Apache-2.0 OR MIT | RazrFalcon/unicode-ccc | | unicode-general-category | Apache-2.0 | yeslogic/unicode-general-category | | unicode-normalization | Apache-2.0 OR MIT | unicode-rs/unicode-normalization | | unicode-script | Apache-2.0 OR MIT | unicode-rs/unicode-script | | unicode-segmentation | Apache-2.0 OR MIT | unicode-rs/unicode-segmentation | | unicode-vo | Apache-2.0 OR MIT | RazrFalcon/unicode-vo | | unicode-width | Apache-2.0 OR MIT | unicode-rs/unicode-width | | unicode-xid | Apache-2.0 OR MIT | unicode-rs/unicode-xid | | unicode\_categories | Apache-2.0 OR MIT | swgillespie/unicode-categories | | unindent | Apache-2.0 OR MIT | dtolnay/indoc | | unreachable | Apache-2.0 OR MIT | reem/rust-unreachable.git | | url | Apache-2.0 OR MIT | servo/rust-url | | urlocator | Apache-2.0 OR MIT | alacritty/urlocator.git | | users | MIT | ogham/rust-users | | usvg | MPL-2.0 | RazrFalcon/resvg | | utf8parse | Apache-2.0 OR MIT | jwilm/vte | | uuid | Apache-2.0 OR MIT | uuid-rs/uuid | | validator | MIT | Keats/validator | | validator\_types | MIT | Keats/validator | | vcpkg | Apache-2.0 OR MIT | mcgoo/vcpkg-rs | | vec1 | Apache-2.0 OR MIT | rustonaut/vec1/ | | vec\_map | Apache-2.0 OR MIT | contain-rs/vec-map | | version-compare | MIT | timvisee/version-compare | | version\_check | Apache-2.0 OR MIT | SergioBenitez/version\_check | | void | MIT | reem/rust-void.git | | vte | Apache-2.0 OR MIT | alacritty/vte | | vte\_generate\_state\_changes | Apache-2.0 OR MIT | jwilm/vte | | wait-timeout | Apache-2.0 OR MIT | alexcrichton/wait-timeout | | waker-fn | Apache-2.0 OR MIT | stjepang/waker-fn | | walkdir | MIT OR Unlicense | BurntSushi/walkdir | | want | MIT | seanmonstar/want | | wasi | Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT | bytecodealliance/wasi | | wasi | Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT | bytecodealliance/wasi | | wasm-bindgen | Apache-2.0 OR MIT | rustwasm/wasm-bindgen | | wasm-bindgen-backend | Apache-2.0 OR MIT | rustwasm/wasm-bindgen/tree/master/crates/backend | | wasm-bindgen-futures | Apache-2.0 OR MIT | rustwasm/wasm-bindgen/tree/master/crates/futures | | wasm-bindgen-macro | Apache-2.0 OR MIT | rustwasm/wasm-bindgen/tree/master/crates/macro | | wasm-bindgen-macro-support | Apache-2.0 OR MIT | rustwasm/wasm-bindgen/tree/master/crates/macro-support | | wasm-bindgen-shared | Apache-2.0 OR MIT | rustwasm/wasm-bindgen/tree/master/crates/shared | | web-sys | Apache-2.0 OR MIT | rustwasm/wasm-bindgen/tree/master/crates/web-sys | | webbrowser | Apache-2.0 OR MIT | amodm/webbrowser-rs | | weezl | Apache-2.0 OR MIT | image-rs/lzw\.git | | wepoll-ffi | Apache-2.0 OR BSD-2-Clause OR MIT | aclysma/wepoll-ffi | | which | MIT | harryfei/which-rs.git | | widestring | Apache-2.0 OR MIT | starkat99/widestring-rs.git | | winapi | Apache-2.0 OR MIT | retep998/winapi-rs | | winapi | MIT | retep998/winapi-rs | | winapi-build | MIT | retep998/winapi-rs | | winapi-i686-pc-windows-gnu | Apache-2.0 OR MIT | retep998/winapi-rs | | winapi-util | MIT OR Unlicense | BurntSushi/winapi-util | | winapi-x86\_64-pc-windows-gnu | Apache-2.0 OR MIT | retep998/winapi-rs | | winreg | MIT | gentoo90/winreg-rs | | wio | Apache-2.0 OR MIT | retep998/wio-rs | | ws2\_32-sys | MIT | retep998/winapi-rs | | xmlparser | Apache-2.0 OR MIT | RazrFalcon/xmlparser | | xmlwriter | MIT | RazrFalcon/xmlwriter | | yaml-rust | Apache-2.0 OR MIT | chyh1990/yaml-rust | ## ScanCode licenses | Name | License | Copyright | | ----------- | ---------- | ---------------------------------------------: | | Alacritty | APACHE-2.0 | Copyright 2016 Joe Wilm, The Alacritty Project | | Hack Font | MIT | (c) 2018 Source Foundry Authors | | Roboto Font | APACHE-2.0 | Copyright 2011 Google Inc. | | Rubik Font | OFL-1.1 | Copyright 2015 The Rubik Project | | Tree Sitter | MIT | Copyright (c) 2018 NAN contributors | --- # Source: https://docs.warp.dev/support-and-community/plans-and-billing/overages-legacy.md # Overages (Legacy) Warp offers usage-based pricing for Subscribers, allowing continued access to premium AI models even after reaching the monthly credits limit included in the plan (billed at $0.04 per additional credit). You can manage usage-based pricing directly in Warp under `Settings > Billing and usage`. <figure><img src="https://2974137108-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD4dBaHbuMVNs0iB2iqZ1%2Fuploads%2Fgit-blob-20297bbb8ac85f05c80c25049bdd5714e3f7130d%2Foverages-settings.png?alt=media" alt=""><figcaption><p>Billing and usage tab in settings, where admins can manage premium model usage overages</p></figcaption></figure> ### Enabling overages **Team admins** can enable or disable "premium model overages" and set a monthly spending limit from the settings dashboard. Individual subscribers can manage their own overage settings directly in the settings dashboard. {% hint style="info" %} Usage-based pricing only applies after you’ve reached the AI credit limit on your plan — you won’t be charged for any overages until that point, even if overages are enabled. {% endhint %} ### How overages work Overages are managed **at the team level**, even if your team only has one member (i.e. individual users). Once overages are enabled, any team member who reaches their monthly AI credit quota can continue to have access to premium models — with **additional usage billed at cost ($0.04 per credit)**. Each user on the team has their **own credit limit**, but only **credits made beyond that personal quota** are considered overages. These charges are tracked and billed **collectively** at the team level. For example, if your plan includes 10,000 AI credits per team member: * If **User A** reaches their 10,000 limit, any further usage by them counts towards overages. * If **User B** has only used 2,000 credits, they still have 8,000 included credits left. * User A's overages **do not** consume User B's remaining quota. Overages are **billed monthly**, or when your team accumulates **$20 worth of charges**, whichever comes first. ### Plan upgrades and cancellations If you upgrade from lower to a higher plan, your monthly credit limit will update immediately to match the higher plan. (For exact limits, see our [pricing page](https://www.warp.dev/pricing).) However, **any overages incurred while on the lower plan will still be billed** — upgrading does not retroactively remove or reduce existing overage charges. If you cancel your subscription, you’ll retain access to premium features until the end of your current billing period. Any usage-based overages accrued during that period will be charged at the time your plan ends.\\ --- # Source: https://docs.warp.dev/terminal/appearance/pane-dimming.md # Pane Dimming & Focus ## How to use it ### Inactive Pane Dimming The panes that aren't active will be dimmed to better indicate which pane is active. To access it, go to `Settings > Appearance > Panes` * Toggle on `Dim inactive panes` to enable the feature. {% hint style="info" %} Split panes show a triangle indicator on the top left corner of the active pane. {% endhint %} ### Mouse Focus The pane with the mouse over it will become active. To access it, go to `Settings > Appearance > Panes` * Toggle on `Focus follows mouse` to enable the feature. ## How it works {% embed url="<https://www.loom.com/share/62b84d3c60b34cdbaa340fbe8ce8b1d1?hideEmbedTopBar=true&hide_owner=true&hide_share=true&hide_title=true>" %} Inactive Pane Dimming Demo {% endembed %} --- # Source: https://docs.warp.dev/terminal/comparisons/performance.md # Performance ## Terminal apps selected for these benchmarks We chose to benchmark Warp against 4 other terminal emulator applications, based on their popularity as well as language and principles. Here is the list of the applications we chose for this comparison together with the explanation as to why we decided to include it in our comparison: * Terminal.app - the default terminal app available on the macOS; * ITerm2 - one of the most popular terminal emulators used by macOS users; * Alacritty & WezTerm - both of those terminals are written in Rust and are well-known for their speed and overall performance, things that Warp is aiming for. ### Versions & settings used during the comparison | Terminal | Version | Terminal size (cols / rows, window is identical pixel-wise) | | ------------ | ------------------------------ | ----------------------------------------------------------- | | Warp | v0.2022.04.01.01.37.stable\_03 | 208 cols / 54 rows | | Terminal.app | Version 2.11 (440) | 188 cols / 72 rows | | iTerm2 | Build 3.4.15 | 211 cols / 78 rows | | Alacritty | alacritty 0.10.1 (2844606) | 286 cols / 102 rows | | Wezterm | 20220319-142410-0fcdea07 | 243 cols / 80 rows | ### About benchmarks We link the source code of each benchmark used, so you can easily reproduce the tests with other terminal apps. Please, note that those benchmarks are not exhaustive. Comparing terminal emulators with each other is not an easy task - right now we're checking how each of the apps behaves when dealing with lots of input and/or output. Ideally, the benchmarks would also cover the latency (time between pressing a key and the character showing on the screen, but also a delay between the user's input and communication with the shell). We may include tests that account for that in the future. ## VTE benchmark Benchmark code can be found [here](https://github.com/alacritty/vtebench) with the specific commit we used in our comparison: `93bcc32b6e0f7560e9b1a5a8b0998c04fbf9b50d`. Results in milliseconds. ### Average time for each of the benchmark tests | | Warp avg (ms) | Terminal.app avg (ms) | iTerm avg | Alacritty avg | WezTerm avg | | -------------------------------- | ------------- | --------------------- | --------- | ------------- | ----------- | | dense\_cells | 43.88 | 24.91 | 144.84 | 7.25 | 28.15 | | scrolling | 30.06 | 283.34 | 1257.57 | 31.75 | 687.77 | | scrolling\_bottom\_region | 117.34 | 257.23 | 1294.25 | 29.1 | 672.67 | | scrolling\_bottom\_small\_region | 114.52 | 227.75 | 1251 | 25.98 | 669.93 | | scrolling\_fullscreen | 37.4 | 307.03 | 1565.17 | 37.36 | 1205 | | scrolling\_top\_region | 120.63 | 209.29 | 2212.2 | 84.42 | 682.6 | | scrolling\_top\_small\_region | 114.64 | 205.59 | 1216.33 | 21.91 | 663.44 | | unicode | 66.47 | 34.45 | 93.01 | 16.78 | 1279.25 | ![VTEbench average results (logarithmic scale )](https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-4fd6246c4ec142bffccc1c34655a39f5c89114d4%2Fvtebench_avg.png?alt=media) ### P90 of the results | | Warp p90 | Terminal.app p90 | iTerm p90 | Alacritty p90 | WezTerm p90 | | -------------------------------- | -------- | ---------------- | --------- | ------------- | ----------- | | dense\_cells | 52 | 28 | 189 | 8 | 32 | | scrolling | 32 | 266.76 | 1336 | 32 | 707 | | scrolling\_bottom\_region | 170 | 243 | 1398 | 30 | 686 | | scrolling\_bottom\_small\_region | 167 | 224 | 1331 | 30 | 679 | | scrolling\_fullscreen | 38 | 327 | 1593 | 41 | 1208 | | scrolling\_top\_region | 178 | 222 | 2243 | 85 | 686 | | scrolling\_top\_small\_region | 167 | 222 | 1314 | 30 | 666 | | unicode | 77 | 39 | 90 | 20 | 3883 | ![VTEbench p90 results (logarithmic scale )](https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-2ff8b633d0763421572f9dc4ef9351c6a060108d%2Fvtebench_p90.png?alt=media) ## Termbench Benchmark code can be found [here](https://github.com/cmuratori/termbench) with the specific commit we used in our comparison: `82afbc69256b4e22de913f0f02f82e0480f3dac5`. Below you'll find results for small and regular test sizes. Note that Terminal.app only participated in the small test. Results in seconds. ### Small test sizes | | Warp small (s) | Terminal.app small (s) | iTerm small (s) | Alacritty small | WezTerm small | | -------------- | -------------- | ---------------------- | --------------- | --------------- | ------------- | | ManyLine | 6.7854 | 2.6789 | 8.7057 | 1.2532 | 8.9436 | | LongLine | 9.0033 | 1.6473 | 9.0849 | 0.8179 | 11.4587 | | FGPerChar | 1.3716 | 453.9888 | 2.6625 | 0.2788 | 0.6487 | | FGBGPerChar | 2.8403 | 908.894 | 4.5881 | 0.5931 | 0.7283 | | overall result | 20.0006 | 1367.209 | 25.0413 | 2.943 | 21.7793 | ![Termbench small results (logarithmic scale )](https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-f9dfb0234c73af1b47538533968399d9c21ec150%2Ftermbench_small.png?alt=media) ### Regular test size | | Warp regular (s) | iTerm regular (s) | Alacritty regular (s) | WezTerm regular | | -------------- | ---------------- | ----------------- | --------------------- | --------------- | | ManyLine | 113.76 | 132.4975 | 19.8802 | 150.8175 | | LongLine | 155.0937 | 126.7561 | 12.7859 | 207.3647 | | FGPerChar | 21.8928 | 39.3352 | 4.2925 | 9.4265 | | FGBGPerChar | 46.312 | 50.5369 | 8.418 | 13.5142 | | overall result | 337.0585 | 349.1258 | 45.3767 | 381.1229 | ![Termbench results (logarithmic scale)](https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-fed348f024a20663fe457c7e217090d1b8722764%2Ftermbench_regular.png?alt=media) --- # Source: https://docs.warp.dev/agent-platform/agent/using-agents/planning.md # Planning Warp has native planning functionality that helps you break down complex engineering tasks into structured, executable steps. Planning is tightly integrated with Warp's coding agent and provides a persistent plan editor, version history, selective execution, and deep links into your workspace. {% embed url="<https://youtu.be/DawcFWyudV0?si=OzvuInMl8DoNR97R>" %} *** ### Creating a Plan You can generate a plan using the `/plan` [slash command](https://docs.warp.dev/agent-platform/agent/slash-commands) or by asking the agent in natural language in the [Universal Input](https://docs.warp.dev/terminal/universal-input/). <figure><img src="https://769506432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAULCelT4yIUOcSwWWvPk%2Fuploads%2Fgit-blob-2dac8a2b54cc62baa10c5e14e0641af2c9303b52%2Fplan-slash-command.png?alt=media" alt="" width="375"><figcaption><p>Prompting the agent to create a plan using the slash command.</p></figcaption></figure> The agent then creates a structured plan inside Warp’s native rich text editor, which is designed for long, multi-step workflows. The editor includes clean formatting, inline code blocks, and clickable file paths so you can open referenced files immediately in Warp (see below) or in your external editor. ### Reviewing and Editing Once a plan is generated, you can review it, reorganize steps, or refine details. You can edit the document manually or ask the agent to revise sections for you. <figure><img src="https://769506432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAULCelT4yIUOcSwWWvPk%2Fuploads%2Fgit-blob-2b9f06a850d55a7cd8369a0e33598ffa3a6a1b37%2Fplanning-main-view.png?alt=media" alt=""><figcaption><p>Plan editor in Warp.</p></figcaption></figure> Any updates made by the agent **creates a new version**. Version history lets you compare past iterations and restore an older version if you want to revert your approach, preserving a clear decision trail as the plan evolves. ### Executing a Plan When you’re ready to start implementing, prompt the agent to run the plan. You can ask it to execute the full set of steps or only a specific section, such as “Implement phase 1 of the plan.” <figure><img src="https://769506432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAULCelT4yIUOcSwWWvPk%2Fuploads%2Fgit-blob-6a2f4dc0cc2cccd3e7448b85cb3da532d5d53ed6%2Fmanually-trigger-plan.png?alt=media" alt=""><figcaption><p>Manually referencing the plan using @ to kickoff the plan.</p></figcaption></figure> The agent applies changes incrementally and updates files as it proceeds. This makes it easy to validate early steps before moving forward, adjust the plan mid-run, or try alternative paths without committing to the full workflow. If you revise the plan while the agent is running, you can notify it directly; the agent will adjust its execution based on your updates. <figure><img src="https://769506432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAULCelT4yIUOcSwWWvPk%2Fuploads%2Fgit-blob-ad09cd96d943dcb0c73a7c15baa1e434ac4b918b%2Fupdate-agent-mid-plan.png?alt=media" alt="" width="375"><figcaption><p>Option to pass new plan to agent if plan changes during runtime.</p></figcaption></figure> ### Monitoring Progress While the agent is running, you can reopen the plan at any time by selecting **View plan** in the [Universal Input](https://docs.warp.dev/terminal/universal-input/). You can also follow each change in real time through the [Code Review](https://docs.warp.dev/code/code-review/) panel and add comments or guidance using [Interactive Code Review](https://docs.warp.dev/code/code-review/interactive-code-review). <figure><img src="https://769506432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAULCelT4yIUOcSwWWvPk%2Fuploads%2Fgit-blob-4703d53513d43853ad57e375ed190b3e83dab114%2Fview-plan-udi.png?alt=media" alt="" width="375"><figcaption></figcaption></figure> This gives you clear oversight, helps confirm expected behavior, and lets you intervene quickly if something needs correction. ### Saving and Sharing Warp automatically saves all plans in the *Plans* folder in [Warp Drive](https://docs.warp.dev/knowledge-and-collaboration/warp-drive/). You can export any plan as Markdown, check it into your repository, or share a link—useful for GitHub PRs, design reviews, or async collaboration. <figure><img src="https://769506432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAULCelT4yIUOcSwWWvPk%2Fuploads%2Fgit-blob-03cb4b5e7d423b431f583a10bf6ae9aacbf67999%2Fexport-notebooks.png?alt=media" alt="" width="375"><figcaption><p>Different ways to share a plan.</p></figcaption></figure> Because plans persist in Warp Drive, you can return to them later, reuse them for new work, or treat them as documentation for ongoing projects. This is also naturally passed to the agent as context. <figure><img src="https://769506432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAULCelT4yIUOcSwWWvPk%2Fuploads%2Fgit-blob-34bb48924cc40fb7ba788480e93cf6ea7b2b6e37%2Fplans-in-drive.png?alt=media" alt="" width="563"><figcaption></figcaption></figure> You can configure whether your plans will be automatically added and synced to Warp drive In your [Agent Profiles & Permissions](https://docs.warp.dev/agent-platform/agent/using-agents/agent-profiles-permissions) under `Settings > AI > Agents > Profiles`. <figure><img src="https://769506432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAULCelT4yIUOcSwWWvPk%2Fuploads%2Fgit-blob-4309952619d934effc5f1ac575a86538abff8334%2Fauto-sync-plans%20(1).png?alt=media" alt="" width="371"><figcaption></figcaption></figure> ### Using Plans Across Conversations Plans are reusable across tasks and sessions. You can reference them in future prompts, continue where you left off, or build follow-up plans that rely on earlier work. The **@plans** command helps you quickly search for and reopen previously saved plans, making planning a consistent part of your development workflow rather than a one-off step. Learn more about attaching context using @ [here](https://docs.warp.dev/agent-platform/agent/using-agents/agent-context/using-to-add-context). <figure><img src="https://769506432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAULCelT4yIUOcSwWWvPk%2Fuploads%2Fgit-blob-bc2e9b17ad413a97c3f265de815c8f9dd0d2996f%2F%40-reference-plans.png?alt=media" alt="" width="375"><figcaption></figcaption></figure> --- # Source: https://docs.warp.dev/support-and-community/plans-and-billing/plans-and-pricing.md # Plans & Pricing ## Warp Plans & Pricing Warp offers flexible, pay-as-you-go plans designed for individual developers, teams, and enterprises. You only pay for what you use—each plan includes a monthly allowance of AI credits that power features such as code generation, debugging, and multi-agent workflows. {% hint style="info" %} Visit [warp.dev/pricing](https://warp.dev/pricing) to see the latest plans and what’s included in each offering. {% endhint %} **Explore the following sections for more details:** * [AI Credits](https://docs.warp.dev/support-and-community/plans-and-billing/ai-credits) — learn how credits are used and calculated across AI features. * [Add-on Credits](https://docs.warp.dev/support-and-community/plans-and-billing/add-on-credits) — purchase additional credits or enable automatic reloads at discounted rates. * [Bring Your Own API Key](https://docs.warp.dev/support-and-community/plans-and-billing/bring-your-own-api-key) — connect your own model provider API keys for custom usage and billing. * [Overages (Legacy)](https://docs.warp.dev/support-and-community/plans-and-billing/overages-legacy) — information for users on legacy plans with overages enabled. * [Pricing FAQs](https://docs.warp.dev/support-and-community/plans-and-billing/pricing-faqs) — answers to common questions about plans, billing, and usage. Don’t have Warp yet? [Download Warp](https://warp.dev/download) and get started for free today. ### Warp’s Refund Policies Please review the details of our refund policies below. To request a refund, email [**billing@warp.dev**](mailto:billing@warp.dev) with information about your situation — the more context you provide, the faster we can resolve your request. #### Subscription Refund Policy If you signed up for a paid Warp subscription by mistake, we can issue a refund if you downgrade within: * **72 hours** of starting a **monthly** plan, or * **30 days** of starting an **annual** plan, ***and*** you’ve used **fewer than 150 AI credits** (the Free plan limit). If you exceed the credit limit usage during your first month on an annual plan, we cannot refund the first month. However, we will refund **months 2–12**. #### Add-on Credits | Overages Refund Policy * If you purchased [Add-on Credits](https://docs.warp.dev/support-and-community/plans-and-billing/add-on-credits) by mistake, you can receive a refund **as long as none of the credits have been used**. Warp cannot refund Add-on Credits if there has been any usage. Add-on Credits remain available for **12 months** from the date of purchase, and you can continue to use them even if you do not have an active subscription. * All [Overages (Legacy)](https://docs.warp.dev/support-and-community/plans-and-billing/overages-legacy) credits are **non-refundable**. Because Overages are charges for AI credits that were already consumed, we cannot refund resources that have already been used. {% hint style="warning" %} While Warp does not provide a formal guaranteed uptime SLA, we may choose to offer refunds or extra AI credits, on a case-by-case basis, if a severe product defect or problem with uptime availability occurs.\ \ You can monitor live incidents on our [**Status Page**](https://status.warp.dev/) and track open issues on our [**GitHub Issues**](https://github.com/warpdotdev/Warp/issues). {% endhint %} --- # Source: https://docs.warp.dev/university/developer-workflows/power-user.md # Power User Once you’ve mastered the basics, explore advanced ways to customize and scale your agent workflows. Learn how to chain prompts, create reusable templates, combine multiple agents in one session, and use context from your files or Warp Drive for richer results. ### Jump right in <table data-view="cards"><thead><tr><th data-type="content-ref"></th><th data-hidden data-card-cover data-type="image"></th></tr></thead><tbody><tr><td><a href="power-user/how-to-run-3-agents-in-parallel-summarize-logs-+-analyze-pr-+-modify-ui">how-to-run-3-agents-in-parallel-summarize-logs-+-analyze-pr-+-modify-ui</a></td><td><a href="https://298962004-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrXGUo2JtQbwWQPKjndDm%2Fuploads%2Fgit-blob-bfa2a186bf2bed71c2c8a1204bfaf5a863fa2165%2FWarp-Edu-Workflows-Multiple-Agents-Email.png?alt=media">Warp-Edu-Workflows-Multiple-Agents-Email.png</a></td></tr><tr><td><a href="power-user/how-to-sync-your-monorepos">how-to-sync-your-monorepos</a></td><td><a href="https://298962004-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrXGUo2JtQbwWQPKjndDm%2Fuploads%2Fgit-blob-3829612d0f5b5b9a29f4c9ebd93cb6ad550ac2de%2FWarp-Edu-Rules-monorepos-Email.png?alt=media">Warp-Edu-Rules-monorepos-Email.png</a></td></tr><tr><td><a href="power-user/how-to-review-prs-like-a-senior-dev">how-to-review-prs-like-a-senior-dev</a></td><td><a href="https://298962004-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrXGUo2JtQbwWQPKjndDm%2Fuploads%2Fgit-blob-95cc41a544a4d0f1246ef2a944b69666bd8e5174%2FWarp%20Drive%20Prompts%20Senior%20Dev.png?alt=media">Warp Drive Prompts Senior Dev.png</a></td></tr></tbody></table> --- # Source: https://docs.warp.dev/support-and-community/plans-and-billing/pricing-faqs.md # Pricing FAQs ### How can I upgrade and subscribe to a Warp plan? All paid Warp plans come with higher monthly AI credit limits than the Free plan. When you upgrade from Free to a paid plan, your AI credit usage resets. If you’re switching between paid plans, any AI usage you've already accumulated will carry over. To subscribe to any Warp paid plan, start by [creating a Team in Warp](https://docs.warp.dev/warp/knowledge-and-collaboration/teams#creating-a-team), even if you're subscribing as an individual. Once your team is created, you can upgrade: * In the app: Go to `Settings` > `Billing and usage`, then click the Upgrade link * Online: Visit [warp.dev/pricing](https://www.warp.dev/pricing) After entering your payment details, you’ll receive an invoice and confirmation via email. ### How can I get the most out of my Warp plan? {% hint style="warning" %} Warp's legacy paid plans included Pro, Turbo, and Lightspeed. After **Oct 30, 2025**, we have rolled out the new Build plan to replace them. Existing subscribers will start to roll over onto the Build plan starting **Dec 1st, 2025**. For questions related to the new pricing changes, please refer to [Warp's Pricing Change FAQs](#warps-pricing-change-faqs-oct-30-2025). To see more details on the latest plan, please visit [**warp.dev/pricing**](https://www.warp.dev/pricing). {% endhint %} Warp's plans are designed for developers who rely on AI to code, debug, and move faster with their team. * **Build**, one usage-based plan with a set of AI credits, ability to Bring Your Own API Key (BYOK), and access to [Add-on credits](https://docs.warp.dev/support-and-community/plans-and-billing/add-on-credits) with volume-based discounts. See more on [Bring Your Own API Key](https://docs.warp.dev/support-and-community/plans-and-billing/bring-your-own-api-key). * **Business** includes everything in Build, with advanced features like automatically enforced team-wide Zero Data Retention, SAML-based SSO, and support for teams up to 50 seats. Legacy plans: * **Pro**, gets you a higher AI credit limits than the Free plan, support for larger codebases with [Codebase Context](https://docs.warp.dev/code/codebase-context), and access to premium models with optional pay-as-you-go overages. * **Turbo** offers even higher AI credit limits, larger Codebase Context indexing, and the option to pay for additional usage beyond your included credits. * **Lightspeed** is our most powerful plan, offering the highest AI credit limits, expanded codebase indexing, access to top-tier models, and pay-as-you-go overages so you can keep working without interruption. For the most up-to-date feature and usage details, visit [**warp.dev/pricing**](https://www.warp.dev/pricing). ### How can I subscribe to a Warp Enterprise plan? Warp offers two options for larger teams and organizations: * **Business Plan**: Supports up to 50 seats and is available for immediate upgrade. It includes automatically enforced team-wide Zero Data Retention by default and admin-controlled SAML-based SSO. * **Enterprise Plan**: Offers custom pricing, credit limits, and terms. Along with support for larger engineering orgs or teams with advanced security, compliance, or support needs. {% hint style="success" %} If you’d like to explore Enterprise, [contact our sales team](https://warp.dev/contact-sales) and someone from Warp will follow up. {% endhint %} ### What counts as a team member and how does billing work for members? In Warp, a *team member* is any seat with access to your Team — including the shared Warp Drive, Notebooks, Workflows, and other team resources. All plans allow you to invite unlimited users, but to unlock higher limits and advanced features, you’ll need to upgrade your team to a plan. Upgrading applies to your entire team, including your own account and all active members. On the Free plan, you can share a limited number of Notebooks and Workflows with other Free users. If your team exceeds that limit, you’ll be prompted to [upgrade to a plan](https://app.warp.dev/upgrade).\ \ Once you upgrade, you’ll receive email notifications as team members accept invites. Billing is **prorated**, meaning you’re only charged for the days each member has access during your billing cycle. If a member leaves mid-cycle, Warp automatically applies a credit for the unused time to your next invoice. **There are differences in how members are billed based on your payment schedule:** * **Monthly plans**: New members are billed immediately for the remaining time in the month. * **Annual plans**: New members are billed immediately for the remaining time in the year. For example, if a member joins your monthly plan halfway through the month, you will be charged just half of the monthly fee ($25.00 out of $50). Similarly, if a member joins with four months remaining in an annual plan, you will be charged for those four months only, which amounts to $160 (4/12 of the annual $480). If a member leaves part way through the billing cycle, Warp will issue a prorated credit based on the unused portion of their membership. This credit is applied to your team's next invoice, regardless of whether you're on a monthly or annual plan. {% hint style="warning" %} All members of the team will have the same subscription plan, you can't mix and match plans for each member of a team. In order to have different plans, you currently must have separate teams. {% endhint %} ### What is the value of joining or creating a team on Warp? Team members have access to your shared [Warp Drive](https://docs.warp.dev/warp/knowledge-and-collaboration/warp-drive/) objects and limited access to Warp's collaboration features, including Session Sharing and Warp Drive storage. **Upgrading the team to a plan unlocks powerful collaboration and knowledge-sharing tools to help your team move faster, together:** * Create unlimited [Notebooks](https://docs.warp.dev/warp/knowledge-and-collaboration/warp-drive/notebooks) and [Workflows](https://docs.warp.dev/warp/knowledge-and-collaboration/warp-drive/workflows) in Warp Drive to organize and share knowledge across your team. * Use Unlimited [Session Sharing](https://docs.warp.dev/warp/knowledge-and-collaboration/session-sharing) to collaborate in real time through live, shared terminal sessions. ### My co-workers are using Warp but we’re not on a Team together yet. How does billing work? Individual users with either personal or work email domains may continue to use Warp independently without incurring billing. The benefit of joining together on a Warp Team is that you get access to a shared Team Drive and collaboration features. When you’re ready to use Warp more collaboratively, we suggest you nominate an Admin to [create a Team](https://docs.warp.dev/warp/knowledge-and-collaboration/teams) and invite members to join. When your Team exceeds the Warp Drive limits, you will be prompted to upgrade to a plan. ### How does usage work if logged into the same account on multiple devices? When you use the account to sign into Warp on different devices, for example Linux on one computer and Windows on another, your usage of metered features like AI credits is tracked at the account level, not the device level. You can use your Warp account on multiple personal computers. Warp is designed to provide a consistent experience across devices. When you log in with the same account on different computers, your settings and preferences can be synced through the [Settings Sync](https://docs.warp.dev/terminal/more-features/settings-sync) feature. ### What happens when I downgrade during a billing cycle? {% hint style="warning" %} Note this only applies when switching between legacy plans (Pro, Turbo, Lightspeed, or the Old Business) or switching the new plans (Build, New Business). When switching between legacy to new plans, the change is immediate, prorated, and the AI credits are reset. See more in [What happens when I change from my legacy plan to the new Build or Business plans?](#what-happens-when-i-change-from-my-legacy-plan-to-the-new-build-or-business-plans). {% endhint %} The subscription will downgrade to the lower plan limits at the end of the billing cycle. If you’re switching between paid plans, any AI usage you've already accumulated will carry over.\ \ To downgrade at any point throughout your subscription through the billing portal by going to `Settings > Billing and usage > Manage billing`. ### What happens when I cancel during a billing cycle? You can cancel at any point throughout your subscription through the billing portal by going to `Settings > Billing and usage > Manage billing`. The subscription will be canceled at the **end of your billing cycle**, monthly or yearly. **You can continue to use your Warp paid plan features until the cycle end date**. Any additional team members added to your team will be invoiced at the end of your billing cycle. ### What happens if I upgrade from monthly to annual billing? When upgrading from a monthly to annual billing cycle the billing is prorated, meaning you only pay for the annual portion of the year you haven't paid for yet. You will be billed for the remaining part of the billing year with the discounted rate. To upgrade at any point throughout your subscription through the billing portal by going to `Settings > Billing and usage > Manage billing`. ### What happens to unused AI credits? Unused AI credits do not rollover to the next cycle and can't be transferred to other accounts. You see when your credits will reset in the `Settings > Billing and usage` menu. ### What happens if my payment fails? If a payment fails, you will receive an email from Stripe and your Warp Team Settings will show a past-due alert. Certain paid plan features and the ability to invite new members will be locked down while your Team is in a past-due state. Paying the most recent invoice through the billing portal by going to `Settings > Billing and usage > Manage billing` will fully re-enable your paid plan features. ### What counts as an AI credit? Each time you submit a prompt in Warp, whether to generate code, suggest a command, or accomplish a task, you initiate an interaction with the Agent. Please see more details in our [AI Credits](https://docs.warp.dev/support-and-community/plans-and-billing/ai-credits) page. ### How do overages work? Overages allow for pay-as-you-go access to premium AI models after reaching your monthly quota on Warp plans. Please see more details in our [Overages](https://docs.warp.dev/support-and-community/plans-and-billing/overages-legacy) page. ### What counts as an AI token? Tokens are chunks of text, such as words, parts of code, or characters, that large language models (LLMs) break down to analyze and generate responses. LLMs have a maximum number of tokens they can process at once. AI credits and suggestions are not the same as tokens, which are limited separately regardless of which plan you're on. {% hint style="info" %} Warp now abstracts away token usage, so you don't need to manage or track it directly. You only need to monitor your **AI credit usage**, which is what’s measured in your plan limits and overages. {% endhint %} If you're curious, you can still learn more about tokens [here](https://help.openai.com/en/articles/4936856-what-are-tokens-and-how-to-count-them), or refer to the pricing page for plan-level credit allocations. If you reach your monthly AI credit limits on a paid plan, premium models will be temporarily disabled until your quota resets at the start of your next billing cycle. If you’d like to continue using premium models beyond your included quota, you can enable [pay-as-you-go overages](https://docs.warp.dev/support-and-community/plans-and-billing/overages-legacy) in `Settings > Billing and usage`. ### How often do my AI credits reset? Allotted AI credits refill every 30 days from your signup date. When you upgrade to a [paid plan](https://www.warp.dev/pricing), you will be given more credits immediately. You can follow along with your refill period by referencing `Settings > Billing and usage`. Alternatively, you can also set [Overages](https://docs.warp.dev/support-and-community/plans-and-billing/overages-legacy) to your desired amount to continue to use more premium model credits. {% hint style="info" %} Unused AI credits do not rollover to the next cycle and can't be transferred to other accounts. {% endhint %} ### Can I use a Free plan if I'm a developer at a large company or organization? Yes. Developers at any company size are welcome to use Warp’s Free plan. If you need access to advanced collaboration features or higher limits, you may benefit from upgrading to a plan, but Warp does not require large organizations to upgrade. ### Are there any Warp discounts for students, non-profits, or open-source teams? Warp doesn’t currently offer discounts for students, non-profits, or open-source teams. We recommend exploring the Free plan, which includes all core terminal features and is a great starting point for individual or community use. ### Where is Warp Drive data for my team stored? Warp Drive data is securely stored on Google Cloud Platform servers located in the United States. All data is encrypted in transit and at rest. For more details, please [visit the Security Overview](https://www.warp.dev/security) or contact <security@warp.dev>. ### What happened to the Lite model? Over time, the Lite model—originally designed as a fallback when premium models ran out—began to deliver inconsistent results, especially for users running complex, multi-step prompts. For credit-efficient usage, we encourage you to try our new **Auto (cost-efficiency) model**, which automatically selects the optimal model based on task complexity to help extend your credits. To continue AI usage please either add [Add-on Credits](https://docs.warp.dev/support-and-community/plans-and-billing/add-on-credits) or consider [using your own API key](https://docs.warp.dev/support-and-community/plans-and-billing/bring-your-own-api-key). If you have any questions or feedback, please connect with us in our [community Slack](https://github.com/warpdotdev/gitbook/blob/main/docs/README.md#sending-warp-feedback). ### What payment options are available for Warp's self-service plans? Warp processes payments through Stripe. We currently accept credit or debit cards and US bank accounts. At this time, we do not support ACH transfers, checks, cash, money orders, or cryptocurrency. ### How do I cancel my subscription? You can cancel at any point throughout your subscription through the billing portal by going to `Settings > Billing and usage > Manage billing`. Cancelled subscriptions will remain active until the end of the billing cycle. ### How do I get a refund? For monthly subscriptions, we in general do not issue refunds. Please see [Warp's Refund Policy](#warps-refund-policy) for details and exceptions. You can remove the users you do not want to pay for in `Settings > Teams > Team Members`. Prorated refunds are issued as Warp credit, not cash. ### Why doesn't my promo code work or why was it disabled? Warp's promotions are a way to try Warp before committing to a subscription, not get unlimited free or inexpensive AI. In order to prevent abuse, we're limiting promotion codes to first-time redemptions only, so each account can only use one promotion code.\ \ In addition certain promo codes we issue are only valid for specific plans (not all plans) and expire after a certain time. If you apply a promo code for a certain plan, then upgrade to another plan, the promotion doesn't transfer to the new plan so you will end up paying full price for the upgrade. {% hint style="warning" %} Warp reserves the right to disable any promotion codes at any time, and cancel the associated subscriptions if we find that the code was being abused. {% endhint %} ### How can I subscribe to Warp as tax exempt? Warp does allow tax exempt organizations to subscribe, but there are some additional steps that you need to take. 1. Create a Warp account, login, and go to the [upgrade page](https://app.warp.dev/upgrade), and select a plan, but **don't checkout or pay yet.** This will only setup your billing account in the system that will be used in the later steps. 2. E-mail <billing@warp.dev> with your proof of your organization tax exempt status and your Warp account email. 3. Warp's team will verify your tax exempt status and will change your account to tax exempt. 4. Finally, subscribe to your plan of choice, you will see not taxes applied to the bill. ### Why can't I subscribe to Warp? There are certain prohibited and restricted businesses in which Stripe and major credit card networks will not process payments. For the most updated information, please see the full list [here](https://stripe.com/legal/restricted-businesses). ### I have a question and need help. How can I reach a human at Warp? The team at Warp is standing by and ready to help you with any questions you have about your plan or subscription. Please email us at <billing@warp.dev> and we will get back to you as soon as we can. *** ### Warp's Pricing Change FAQs (Oct 30, 2025) For more details, see this blog post on [Warp's plan changes](https://www.warp.dev/blog/changing-pricing). #### How do I change from my current plan to the new Build or Business plan? You can switch to the new Warp Build or Business plan anytime from `Settings > Billing and usage > Manage billing > Update subscription` in the Warp app or at [app.warp.dev/upgrade](https://app.warp.dev/upgrade). Select Change plan, then choose the plan that fits your needs. If you take no action, your Pro, Turbo, Lightspeed, or legacy Business plan will automatically move to the new structure on your first renewal after **December 1, 2025**. You’ll receive an email before your renewal with details and other details to make the transition easier. #### What happens when I change from my legacy plan to the new Build or Business plans? If you move from Warp’s legacy Pro, Turbo, Lightspeed, or old Business plans to the new Build or Business plans: * You’ll receive a prorated credit balance on Stripe for your current plan, based on how far you are into your billing cycle. This balance can be applied toward monthly Build fees or any Add-on Credits you purchase. * You can view your credit balance by going to `Settings > Billing and Usage > Manage Account`. You can also view your credit balance on the Stripe invoice that was sent when your plan changed to Build or Business. * Your credit balance will reset to **0/1,500** when you switch to the Build or Business plan. If you switched immediately after the rollout, before a subsequent update was applied, we’ll retroactively reset your credit balance to 0/1,500. * You should see this reflected in `Settings > Billing and Usage`. If you experience any issues, please contact us at **<build-priority@warp.dev>**. {% hint style="info" %} We recommend you use all the AI credits on your legacy plan before you switch over to the new plans. This way you can make best use of them before they are reset to the new plan limits. {% endhint %} {% hint style="warning" %} Add-on credit auto reload will be enabled by default for some legacy plan users when they transition to the Build plan. Please see more in our [Pricing FAQs](#what-happens-to-my-current-plan-pro-turbo-lightspeed). {% endhint %} #### What should I keep in mind about this change? * **BYOK and Add-on credits**: These are only available on the new Build and Business plans. Switching early gives you immediate access. * **Pricing differences**: Depending on your usage, your monthly cost may increase or decrease. You’ll now pay based on what you actually use. * **Renewal timing**: You’ll stay on your current plan until your renewal date after December 1. No interruptions to service will occur. * **Transparency**: You can view your credit balance, monthly spend limit, and Add-on settings anytime in `Settings > Billing and usage`. For full details, see [warp.dev/pricing](https://www.warp.dev/pricing) or reach out to <billing@warp.dev> if you have questions about your transition. #### For existing paid users: when will the new pricing take effect for my account? For **new customers**, the new pricing and packaging take effect immediately on Oct 30, 2025. For **existing monthly subscribers**, changes will apply on your first renewal after **December 1, 2025**; most likely during the month of December 2025. For **annual subscribers**, the new plan and pricing will take effect on your next renewal after December 1, 2025. If you have any questions, please reach out to us at **<billing@warp.dev>**. #### **What happens to my current plan (Pro, Turbo, Lightspeed, Business)?** You will retain your current plan and credits until the first renewal after December 1, 2025. At renewal, all current Pro, Turbo, Lightspeed, and Business plans will transition to the new Warp Build and Business plans. The Build and new Business plans includes 1,500 monthly AI credits, the ability to purchase [Add-on Credits](https://docs.warp.dev/support-and-community/plans-and-billing/add-on-credits) that roll over for 12 months, and the ability to bring your own API key. Learn more at [warp.dev/pricing](https://www.warp.dev/pricing). In addition, [Add-on credit auto reload](https://docs.warp.dev/support-and-community/add-on-credits#id-2.-enable-auto-reload) will be automatically enabled for some legacy plan users in the following ways (but can be opted out of or modified at any time). Our goal is to maintain the same maximum monthly spend in line with your legacy plan subscription plus any Overages: * **Pro:** Will transition to the Build plan. Auto-reload ***will not***** be enabled by default**. * **Turbo:** Will transition to the Build plan. Auto-reload ***will***** be enabled by default**. It will default to $30 auto-reload monthly spending limit for monthly subscribers and $22 for yearly subscribers. A handful of Turbo subscribers received a bulk discount for teams of 3 or more—please check your email for details on the default spending limits for your account. * **Lightspeed:** Will transition to the Build plan. Auto-reload ***will***** be enabled by default**. It will default to $205 auto-reload monthly spending limit for monthly subscribers and $182 for yearly subscribers. * **Business:** Will transition to the new Business plan. Auto-reload ***will***** be enabled by default**. It will default to $10 auto-reload monthly spending limit for both monthly and yearly subscribers. In any of the above cases, if Overages were enabled, we will set the monthly auto-reload spending limit equal to your Overage spending limit plus any of the amounts listed above.\ \ If your total auto-reload monthly spend limit is $80 or above, we will set the Add-on credit denomination to $20 / 1000 credits by default. If your total auto reload monthly spending limit is below $80, we will set the Add-on credit denomination to $10 / 400 credits by default. #### Can I continue to use Warp as my primary terminal? Yes, the terminal features of Warp will continue to be free to use for developers. Learn more at [Plans And Pricing](https://docs.warp.dev/support-and-community/plans-and-billing/plans-and-pricing). #### How are Add-on credits different from overages? Add-on credits replace overages with a simpler, prepaid system. They’re up to \~40% cheaper than the old overage rates, roll over month-to-month, and remain valid for 12 months. They also come with Warp’s full SOC 2 / Zero Data Retention protection. #### Do AI credits rollover? For existing users on legacy plans, plan credits on Pro, Turbo, and Lightspeed do not rollover. Neither will pay-as-you-go Overage credits. For the Build plan, credits will not rollover but Add-on credits will rollover and be valid for 12 months from the date of purchase. #### Can I bring my own key on legacy plans (Pro, Turbo, Lightspeed)? No, Bring-your-own API key for OpenAI, Anthropic, and Gemini is only available to users on the Warp Build plan. You can choose to switch your existing plan to Warp Build at any time before your applicable renewal date to access BYOK. #### How does the monthly spend limit on Add-on Credits work? You set a monthly spend limit that applies to your AI usage for each calendar month. This limit acts as the maximum amount you can spend on credits during that period. If a purchase would exceed your limit, it won’t go through—you’ll need to either increase your limit or choose a smaller purchase amount. **For auto reload settings:** * New users who enable auto reload will start with a $200 spend limit. * Existing paid plan users who enable auto reload will have their limit match their existing Overages spend limit (if previously configured, otherwise $200). #### I’m an individual developer and need more than 1,500 AI credits per month. What’s the right plan for me? If you regularly use more than 1,500 AI credits per month, the Build plan is designed for you. It includes 1,500 monthly credits and gives you the flexibility to scale further with Add-on Credits, which you can purchase at discounted rates directly under `Settings > Billing and usage`. Add-on Credits roll over month to month, remain valid for 12 months, and offer up to \~40% savings for larger denominations. You can also enable auto reload to automatically top up your credits when your balance runs low. If you’re part of a team that needs shared credit management, SSO, or enforced Zero Data Retention (ZDR), the Business plan provides all the same AI capabilities plus advanced security and administrative features. #### Should I subscribe to the Build plan or the Business plan? If you’re an individual developer or part of a small team, the Build plan is the best fit. It includes 1,500 monthly AI credits, discounted Add-on Credits for additional usage, and the ability to bring your own API key (BYOK) for OpenAI, Anthropic, or Google models. You’ll also get unlimited Warp Drive objects, collaboration tools, and the highest codebase indexing limits. If you’re part of a larger team (up to 50 members) that needs advanced administrative and security controls, choose the Business plan. It includes everything in Build, plus SSO, enforced Zero Data Retention (ZDR), shared Add-on Credits that can be used by all team members, and centralized billing – ideal for organizations that need stronger security, compliance, and team-wide management. #### How do AI credits work for multi-seat teams? For teams on the Build or Business plans, AI credits are managed at two levels: * **Included monthly credits**: Each seat on a paid plan receives 1,500 individual credits per month. These credits are tied to the user and reset every 30 days based on their subscription or renewal date. * **Add-on Credits**: Once individual plan credits are used up, team members draw from a shared Add-on Credit balance that can be topped up and managed by team admins. Add-on Credits roll over month to month, remain valid for 12 months, and can be purchased at discounted rates directly under Settings > Billing and usage. This shared model gives teams the flexibility to handle variable AI usage – heavy users can consume more when needed, while the entire team benefits from shared value and volume-based discounts. --- # Source: https://docs.warp.dev/support-and-community/privacy-and-security/privacy.md # Privacy {% hint style="info" %} If you have any questions about any of this, please don’t hesitate to reach out at <privacy@warp.dev>. For security-related issues or questions, please email <security@warp.dev>. {% endhint %} ## Transparency and control Our philosophy is complete transparency and control over any data leaving your machine. This means you can: * Read a complete list of [all the telemetry events](#exhaustive-telemetry-table) that get sent for app analytics * Monitor telemetry in real-time with Warp's native [Network Log](https://docs.warp.dev/support-and-community/privacy-and-security/network-log) * [Opt out](#how-to-disable-telemetry-and-crash-reporting) of telemetry at any time ## What telemetry data does Warp collect and why? Warp collects high-level telemetry and usage data to discover product quality issues and guide feature prioritization. If you haven't opted out of "Help improve Warp", we may collect: 1. High level product usage and analytics data to analyze feature uptake and usage patterns. See the [Exhaustive Telemetry Table](#exhaustive-telemetry-table) for the full list of tracked events below. These are all high level metrics and do not include any user generated content. 2. AI interactions and console inputs that power our [AI features](https://docs.warp.dev/agent-platform/agent/). Warp unconditionally applies [Secret Redaction](https://docs.warp.dev/support-and-community/privacy-and-security/secret-redaction) in all AI interactions to ensure that any sensitive data is *never* collected or sent to third parties. All users can opt-out of this any time and still continue using all of Warp (including AI features). {% hint style="warning" %} Business and Enterprise plans are covered by our Zero Data Retention (ZDR) agreement. No AI interaction or console data is ever collected. {% endhint %} Selling usage data will never be part of Warp's business model. This data is used solely to improve the end-user experience. Warp uses Sentry for crash reporting and Rudderstack for app analytics. You can read our [full privacy policy](https://www.warp.dev/privacy-and-security/policy) as well as [how Warp handles security](https://www.warp.dev/security). ### How to disable telemetry and crash reporting 1. Navigate to `Settings > Privacy`, or open the [Command Palette](https://docs.warp.dev/terminal/command-palette/) and search for "privacy" 2. Toggle off "Help improve Warp", "Send crash reports", or both <figure><img src="https://2974137108-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD4dBaHbuMVNs0iB2iqZ1%2Fuploads%2Fgit-blob-116d317ee1e18758b3ade1657c8d68977cff58cc%2Fprivacy-settings-after-signup.png?alt=media" alt=""><figcaption><p>Privacy Settings</p></figcaption></figure> With telemetry disabled, no console interactions are ever persisted on Warp's servers. Each request contains a `X-Warp-Telemetry-Enabled` header to specify whether telemetry is disabled, and even if this is missing from the request, our server assumes it's disabled. ### Delete your account and data Warp provides a convenient way for you to delete your account and data. Any active Warp subscriptions associated with the account will also be cancelled when deleted. You can delete your Warp account and data in the following ways: * From Warp, go to Settings > Privacy > "Visit the data management page" Click the “Delete” button on the Data Management page to go through the data deletion flow. * From the web, log in to your warp account at <https://app.warp.dev/login>, then go to the data management page at <https://app.warp.dev/data_management> and click the “Delete” button to go through the data deletion flow. {% hint style="info" %} Deletion jobs run every 24 hours, so if you deleted your account and want to sign up again with the same email, you won't be able to do so until that deletion job completes. {% endhint %} {% hint style="warning" %} If you're a [Team](https://docs.warp.dev/warp/knowledge-and-collaboration/teams) admin, the deletion flow will require that you assign a team member as the new admin. {% endhint %} ### Exhaustive Telemetry Table | Event Name | Description | | ---------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `AI Command Search opened` | Opened the modal for AI Command Search, where you can use natural language to search for commands | | `AI Execution Profile Created` | A new AI execution profile was created | | `AI Execution Profile Deleted` | An AI execution profile was deleted | | `AI Execution Profile: Added To Allowlist` | An item was added to an AI execution profile allowlist | | `AI Execution Profile: Added To Denylist` | An item was added to an AI execution profile denylist | | `AI Execution Profile: Model Selected` | An AI model was selected for an AI execution profile | | `AI Execution Profile: Removed From Allowlist` | An item was removed from an AI execution profile allowlist | | `AI Execution Profile: Removed From Denylist` | An item was removed from an AI execution profile denylist | | `AI Execution Profile: Setting Updated` | An AI execution profile setting was updated | | `AI Input Not Sent` | The AI input was not sent | | `AI Suggested Rule Added` | Clicked the Add Suggested Rule button in the AI blocklist | | `AI Suggested Rule Content Changed` | Content changed by the user in the suggested rule dialog | | `AI Suggested Rule Edited` | Clicked the Edit Suggested Rule button in the AI blocklist | | `AIAutonomy.AutoexecutedRequestedCommand` | Autoexecuted an Agent Mode requested command | | `AIAutonomy.ChangedAgentModeCodingPermissions` | Changed Agent Mode permissions for coding tasks | | `AIAutonomy.ToggledAutoexecuteReadonlyCommandsSetting` | Toggled setting to autoexecute readonly Agent Mode requested commands | | `Active Indexed Repos Changed` | Active indexed repositories changed, affecting codebase context. | | `Add Added Subshell Command` | Added a command to be automatically Warpified via Warp's subshell wrapper | | `Add Denylisted SSH Tmux Wrapper Host` | Added a SSH host to the denylist for prompting for Tmux Wrapper | | `Add Denylisted Subshell Command` | Explicitly prevent a command from being Warpified via Warp's subshell wrapper | | `Add Tab With Shell` | Added a tab with specific shell | | `Added Workflow Alias` | Added an alias to a Warp Drive workflow | | `Agent Management View Copied Session Link` | User copied a session link from the Agent Management View | | `Agent Management View Opened Session` | User opened a session from the Agent Management View | | `Agent Management View Toggled` | User toggled the Agent Management View open or closed | | `Agent Mode Query Suggestion Accepted` | Prompt Suggestion accepted | | `Agent Mode Query Suggestions Banner Shown` | Prompt Suggestions banner shown | | `Agent Mode Setup Banner Accepted` | Agent Mode setup banner accepted | | `Agent Mode Setup Banner Dismissed` | Agent Mode setup banner dismissed | | `Agent Mode Setup Project Scoped Rules Action` | User clicked a button in the Agent Mode setup project scoped rules step | | `Agent Mode.Setup Codebase Context Action` | User clicked a button in the Agent Mode setup codebase context step | | `Agent Predict` | Completed an Agent Predict prediction | | `AgentManagement.DismissSetupGuide` | User dismissed the ambient agent setup guide | | `AgentManagement.NavigateToConversation` | User navigated to an interactive conversation from agent management | | `AgentManagement.OpenSession` | User opened an ambient session from agent management view | | `AgentManagement.OpenSetupGuide` | User opened the ambient agent setup guide | | `AgentManagement.SetupGuideDocsLink` | User clicked a docs URL in the setup guide | | `AgentManagement.SetupGuideStepCopy` | User copied a workflow step from the setup guide | | `AgentManagement.SetupGuideStepRun` | User ran a workflow step from the setup guide | | `AgentManagement.SpawnNewLocalAgent` | User spawned a new local agent from agent management | | `AgentManagement.ViewToggled` | User toggled the agent management view open or closed | | `AgentMode.AISuggestedAgentModeWorkflowAdded` | User created an AI suggested Agent Mode workflow | | `AgentMode.AttachedContext` | Attached block as context to an Agent Mode query | | `AgentMode.AttachedImages` | Attached images to an Agent Mode query | | `AgentMode.ChangedInputType` | The input type was changed from shell -> AI or AI -> shell | | `AgentMode.ClickedEntrypoint` | Clicked on an Agent Mode entrypoint | | `AgentMode.Code.DiffHunksNavigated` | Agent Mode Code diff hunks navigated | | `AgentMode.Code.DiffMatchFailed` | Failed to match code diff | | `AgentMode.Code.FileExceededContextLimit` | File from AI exceeded context limit | | `AgentMode.Code.FilesNavigated` | Agent Mode Code files navigated | | `AgentMode.Code.InvalidFile` | File(s) in code diff could not be found | | `AgentMode.Code.MissingLineNumbers` | Code diff was missing line numbers | | `AgentMode.Code.SuggestedCodeEditedByUser` | Agent Mode Code suggestion edited by user | | `AgentMode.Code.SuggestedEditReceived` | Agent Mode suggested a code edit | | `AgentMode.Code.SuggestedEditResolved` | Agent Mode pending code edit suggestion resolved | | `AgentMode.CreatedAIBlock` | Created an AI block in agent mode | | `AgentMode.Error` | Received an error when getting Agent Mode response | | `AgentMode.ExecutedWarpDrivePrompt` | Executed a saved prompt. | | `AgentMode.ExitedShellProcess` | An agent-requested command caused the shell process to exit | | `AgentMode.FileGlob.Failed` | The file glob tool failed to complete | | `AgentMode.FileGlob.Succeeded` | The file glob tool completed successfully | | `AgentMode.FullEmbedCodebaseContextSearch.Failed` | Failed to search full embed codebase context | | `AgentMode.FullEmbedCodebaseContextSearch.Success` | Successfully searched full embed codebase context | | `AgentMode.Grep.Failed` | The grep tool failed to complete | | `AgentMode.Grep.Succeeded` | The grep tool completed successfully | | `AgentMode.MerkleTreeSnapshot.Diff.Failed` | Failed to diff merkle tree snapshot | | `AgentMode.MerkleTreeSnapshot.Diff.Success` | Successfully diffed merkle tree snapshot | | `AgentMode.MerkleTreeSnapshot.Rebuild.Failed` | Failed to rebuild merkle tree from snapshot | | `AgentMode.MerkleTreeSnapshot.Rebuild.Success` | Successfully rebuilt merkle tree from snapshot | | `AgentMode.NaturalLanguageDetection.InputBufferSubmitted` | Input buffer submitted | | `AgentMode.OpenedCitation` | Opened a citation that was surfaced in agent mode | | `AgentMode.PotentialAutoDetectionFalsePositive` | Manually toggled input to shell mode after input was auto-detected as natural language. | | `AgentMode.QueryAttemptAtLImit` | Tried to send an Agent Mode query but they already reached the query limit | | `AgentMode.RequestRetrySucceeded` | Agent Mode request succeeded after retrying following an initial error | | `AgentMode.SearchCodebase.RepoUnavailable` | Tried to use the Search Codebase tool on a repo that is unavailable | | `AgentMode.SearchCodebase.Requested` | Ran the Search Codebase tool | | `AgentMode.SetupCreateEnvironmentAction` | User clicked a button in the Agent Mode setup create environment step | | `AgentMode.ShowedSuggestedAgentModeWorkflowModal` | Showed the suggested Agent Mode workflow modal to the user | | `AgentMode.ShowedSuggestedWorkflowChip` | Showed the Suggested Agent Mode workflow chip to the user | | `AgentMode.SurfacedCitations` | Agent mode used and cited external sources that were used in its response | | `AgentMode.SyncCodebaseContext.BuildTree.Failed` | Failed to build merkle tree for codebase context | | `AgentMode.SyncCodebaseContext.BuildTree.Success` | Successfully built merkle tree for codebase context | | `AgentMode.SyncCodebaseContext.Failed` | Failed to sync codebase context | | `AgentMode.SyncCodebaseContext.Success` | Successfully synced codebase context | | `AgentMode.ToggleAutoDetectionSetting` | Toggled the setting that enables or disables natural language auto-detection in the input. | | `AgentTip Clicked` | User clicked a link or action in an Agent Tip | | `AgentTip Shown` | Selected an Agent Tip to show in the Agent Mode status bar | | `AgentView.Entered` | User entered the Agent View | | `AgentView.Exited` | User exited the Agent View | | `AgentView.InlineConversationMenuItemSelected` | User selected an item from the inline conversation menu | | `AgentView.InlineConversationMenuOpened` | User opened the inline conversation menu in Agent View | | `AgentView.ShortcutsViewToggled` | User toggled the shortcuts view in Agent View | | `AgenticOnboarding.BlockSelected` | Selected an agentic onboarding block to execute | | `Anonymous User Attempted Login-Gated Feature` | Anonymous user attempted to access a login-gated feature | | `Anonymous User Expiration Lockout` | An anonymous user opened Warp after their conversion deadline and was locked out | | `Anonymous User Hit Cloud Object Limit` | Anonymous user attempted to create a cloud object past their personal object limit | | `Anonymous User Initiated Signup` | An anonymous user initiated the sign up flow | | `Anonymous User Linked from Browser` | Received an auth payload from anonymous user after linking in browser | | `App Download Source` | Whether the Warp was installed from the home page or through homebrew | | `App Startup` | App is launched | | `Attached Workflow Alias Environment Variables` | Added or removed environment variables for a Warp Drive workflow alias | | `Attempting to Relaunch for Update` | Attempted to relaunch the app after installing an update | | `Auth Common Question Clicked in App` | Clicked on "Common Question" when logging in | | `Auth: Open Privacy Settings Overlay` | Privacy settings are open during sign-in | | `Auth: Toggle Common Questions` | Toggled FAQ Page when logging in | | `Autosuggestion Inserted` | Accepted autosuggestion | | `Background Block Started` | Warp created a background-output Block (whenever a processes has been backgrounded and yields some output) | | `BaselineCommand Latency` | Command execution time | | `Block Creation` | Created Block | | `Block Filter Toolbelt Button Clicked` | Clicked the block filter icon in the top-right of a block | | `Block Selection` | Selected Block | | `Bootstrap Slow Contents` | Contents of the bootstrap block if bootstrapping is slow | | `Bootstrapping Slow` | Slow bootstrap on session startup | | `Bootstrapping Succeeded` | Successful bootstrap for session | | `CLI Subagent Action Executed` | User approved a blocked action from the CLI subagent | | `CLI Subagent Action Rejected` | User rejected a blocked action from the CLI subagent | | `CLI Subagent Control State Changed` | Control state changed in CLI subagent (agent in control, agent blocked, user in control, or agent tagged in) | | `CLI Subagent Input Dismissed` | User dismissed the input in the CLI subagent | | `CLI Subagent Responses Toggled` | User toggled the visibility of agent responses in CLI subagent | | `CLI.Execute.Agent.Config.Create` | Created an agent configuration from the Warp CLI | | `CLI.Execute.Agent.Config.Delete` | Deleted an agent configuration from the Warp CLI | | `CLI.Execute.Agent.Config.Get` | Got agent configuration details from the Warp CLI | | `CLI.Execute.Agent.Config.List` | Listed agent configurations from the Warp CLI | | `CLI.Execute.Agent.Config.Update` | Updated an agent configuration from the Warp CLI | | `CLI.Execute.Agent.Profile.List` | Listed agent profiles from the Warp CLI | | `CLI.Execute.Agent.Run` | Ran an agent from the Warp CLI | | `CLI.Execute.Agent.RunAmbient` | Ran an ambient agent from the Warp CLI | | `CLI.Execute.Environment.Create` | Created a cloud environment from the Warp CLI | | `CLI.Execute.Environment.Delete` | Deleted a cloud environment from the Warp CLI | | `CLI.Execute.Environment.Get` | Got cloud environment details from the Warp CLI | | `CLI.Execute.Environment.Image.List` | Listed available base images from the Warp CLI | | `CLI.Execute.Environment.List` | Listed cloud environments from the Warp CLI | | `CLI.Execute.Environment.Update` | Updated a cloud environment from the Warp CLI | | `CLI.Execute.Integration.Create` | Created an integration from the Warp CLI | | `CLI.Execute.Integration.List` | Listed integrations from the Warp CLI | | `CLI.Execute.Integration.Update` | Updated an integration from the Warp CLI | | `CLI.Execute.Login` | Logged in via the Warp CLI | | `CLI.Execute.Logout` | Logged out via the Warp CLI | | `CLI.Execute.MCP.List` | Listed MCP servers from the Warp CLI | | `CLI.Execute.Model.List` | Listed models from the Warp CLI | | `CLI.Execute.Provider.List` | Listed providers from the Warp CLI | | `CLI.Execute.Provider.Setup` | Set up a provider via the Warp CLI | | `CLI.Execute.Schedule.Create` | Created a scheduled agent from the Warp CLI | | `CLI.Execute.Schedule.Delete` | Deleted a scheduled agent from the Warp CLI | | `CLI.Execute.Schedule.Get` | Got scheduled agent configuration from the Warp CLI | | `CLI.Execute.Schedule.List` | Listed scheduled agents from the Warp CLI | | `CLI.Execute.Schedule.Pause` | Paused a scheduled agent from the Warp CLI | | `CLI.Execute.Schedule.Unpause` | Unpaused a scheduled agent from the Warp CLI | | `CLI.Execute.Schedule.Update` | Updated a scheduled agent from the Warp CLI | | `CLI.Execute.Secret.Create` | Created a secret from the Warp CLI | | `CLI.Execute.Secret.Delete` | Deleted a secret from the Warp CLI | | `CLI.Execute.Secret.List` | Listed secrets from the Warp CLI | | `CLI.Execute.Secret.Update` | Updated a secret from the Warp CLI | | `CLI.Execute.Task.Get` | Got status of task from the Warp CLI | | `CLI.Execute.Task.List` | Listed tasks from the Warp CLI | | `CLIAgentFooter.ImageAttached` | User attached an image from the CLI agent footer | | `CLIAgentFooter.SettingToggled` | User toggled the CLI agent footer setting | | `CLIAgentFooter.Shown` | CLI agent footer was shown to the user | | `CLIAgentFooter.VoiceInputUsed` | User used voice input from the CLI agent footer | | `Changed invite view option` | Toggled between link and invite for invite | | `Clicked Continue Conversation Button` | User clicked the Continue Conversation button in a block footer | | `Clicked Reset to Defaults Button in Settings Import` | Reset the imported settings in the settings import onboarding block | | `Clone Repo Prompt Submitted` | User submitted a repository URL from the clone repo view | | `Code Pane Opened` | Opened the code editor pane from various sources | | `CodeReview.AddToContext` | Content added to AI context from code review | | `CodeReview.BaseChanged` | Diff base changed in code review | | `CodeReview.CalculateDiffMetadataFailed` | Failure when calculating diff metadata | | `CodeReview.CommentAdded` | Inline code review comment added | | `CodeReview.CommentDeleted` | Inline code review comment deleted | | `CodeReview.CommentEdited` | Inline code review comment edited | | `CodeReview.CommentEditorOpened` | Inline code review comment editor opened | | `CodeReview.CommentListExpanded` | Inline code review comment list expanded | | `CodeReview.CommentListItemClicked` | Inline code review comment list item clicked | | `CodeReview.CommentRelocationFailed` | Inline code review comment relocation fell back to approximate line | | `CodeReview.CommentResolved` | Inline code review comment resolved | | `CodeReview.FileOpenedInWarpEditor` | File opened in new Warp editor tab | | `CodeReview.FileSaved` | File saved in code review pane | | `CodeReview.FindBarModeChanged` | Search mode changed in code review find bar | | `CodeReview.FindBarToggled` | Code review find bar opened or closed | | `CodeReview.FindNavigated` | Navigated to next or previous match in code review find bar | | `CodeReview.LoadDiffFailed` | Failure when loading diff content | | `CodeReview.PaneOpened` | Code review pane opened | | `CodeReview.PaneStateChanged` | Code review pane minimized or maximized | | `CodeReview.RevertHunkClicked` | Revert hunk button clicked | | `CodeReview.ReviewSubmitted` | Inline code review submitted to agent | | `CodexModal.Opened` | User opened the Codex modal | | `CodexModal.UseCodexClicked` | User clicked 'Use Codex' in the Codex modal | | `Command Correction Event` | Accepted command correction | | `Command File Run` | Opened a .cmd or unix executable file and ran it directly in Warp | | `Command Palette Search Accepted` | Accepted a command palette search result | | `Command Palette Search Exited` | Exited command palette search without accepting a result | | `Command Search Async Query Completed` | Finished searching for a command in the background | | `Command Search Exited` | Exited command search (universal search panel to search) without accepting a result | | `Command Search Filter Changed` | Changed command search filter | | `Command Search Opened` | Opened command search (universal search panel to search) | | `Command Search Result Accepted` | Accepted command search result | | `Complete Welcome Tip` | Completed all welcome tips items | | `Completed Settings Import` | Imported a terminal's settings via the settings import onboarding block | | `Confirm Suggestion` | Accepted tab completion suggestion | | `Context Menu Copy` | Clicked "Copy" in context menu | | `Context Menu Copy Prompt` | Clicked "Copy Prompt" in context menu | | `Context Menu Copy Selected Text` | Clicked "Copy selected text" in context menu | | `Context Menu Insert Selected Text into Input` | Clicked "insert into input" in context menu | | `Context Menu Toggle Git Prompt Dirty Indicator` | Toggled indicator of dirty git prompt | | `Context Menu Toggle PS1` | Clicked "user default prompt" in context menu | | `Context Menu: Find Within Blocks` | Clicked "find within blocks" in context menu | | `Context Menu: Initiate Block Sharing` | Opened "Share" modal via context menu | | `Context Menu: Reinput Commands` | Clicked "reinput commands" in context menu | | `ConversationList.ItemDeleted` | Deleted a conversation from the conversation list | | `ConversationList.ItemOpened` | Opened a conversation from the conversation list | | `ConversationList.LinkCopied` | Copied a conversation link from the conversation list | | `ConversationList.Opened` | Opened the conversation list view in the left panel | | `Copied Shared Session Link` | Copied a shared session link | | `Copy Block Sharing Link` | Clicked "Share block..." in context menu | | `Copy Invite Link` | Clicked "Copy Link" on Referral Modal | | `Copy Obfuscated Secret` | Copied a secret's obfuscated contents to clipboard | | `Copy Object To Clipboard` | Copied an object to the user's keyboard | | `Create Custom Theme` | Created a custom theme using the built-in theme creator | | `Create Project Prompt Submitted` | User submitted a prompt from the create project view | | `Create Project Prompt Submitted Content` | User submitted custom prompt content from the create project view | | `Custom Secret Regex Added` | Custom Secret Regex Added | | `Database Read Error` | Database read error when trying to get app state for session restoration | | `Database Startup Error` | Failed to initialize sqlite upon startup | | `Database Write Error` | Database write error when trying to write app state for session restoration | | `Decline Subshell Bootstrap` | Developer declined the Warp banner to Warpify the current session | | `Delete Custom Theme` | Deleted a custom theme using the built-in theme creator | | `Deleted Notebook` | Deleted notebook from Warp Drive team | | `Deleted Workflow` | Deleted workflow from Warp Drive team | | `Disable Input Sync Inputs` | Disabled / turn off the Input Synchronization (across editors) | | `Dismiss Alias Expansion Banner` | Dismissed the banner to enable automatic alias expansion within the Input Editor | | `Dismiss Welcome Tips` | Dismissed Welcome tips | | `Don't Show Sharer Grant Modal Again` | When you check don't show again on the confirmation modal for granting a role | | `Drag and Drop Tab` | Tab dragged and dropped | | `Duplicate Object` | Cloned a Warp Drive object | | `Edited Input Before Precmd` | Input edited before precmd hook completes | | `Edited Workflow Alias Argument` | Edited an argument in a Warp Drive workflow alias | | `Enable Alias Expansion From Banner` | Enabled automatic alias expansion within the Input Editor from the banner | | `Executed Conversation Rewind` | User executed a rewind to a previous conversation state | | `Expanded Code Suggestion` | Expanded the passive code diff suggestion | | `Export Object` | Exported a Warp Drive object | | `Features Page Action` | Changed settings in Features Page | | `File Tree Toggled` | Opened the file tree/project explorer | | `FileTree.AttachedAsContext` | Attached a file or directory as context from the file tree | | `FileTree.ItemCreated` | Created a new file from the file tree | | `Find Option Toggled` | Changed settings in Find Toggle | | `Focused Config in Settings Import` | Selected a terminal in the settings import onboarding block | | `Generate Block Sharing Link` | Generated Block sharing link | | `Generate Metadata For Workflow Error` | Failed to generate metadata for a workflow using Warp AI | | `Generate Metadata For Workflow Success` | Successfully generated metadata for a workflow using Warp AI | | `Get Started Skip to Terminal` | User clicked skip to terminal from get started view | | `Global Search Opened` | Opened the global search view | | `Global Search Query Started` | Started a global search (warp\_ripgrep) search | | `ITerm Profile has Multiple Hotkeys` | Attempted to import an iTerm profile that contained multiple hotkey window bindings | | `Identified Antivirus Software` | Identified running antivirus software on the user's machine | | `Image Received` | Received an image through an image protocol over the pty | | `InitialWorkingDirectoryConfigurationChanged` | Replaced the default working directory with a different path | | `Initiate Reauth` | Started the flow to re-authenticate the client | | `Input Mode Changed` | Changed the Input Editor Mode (Pinned to Bottom, Pinned to Top, Classic / Waterfall Mode) | | `Input.AtMenuInteracted` | Interacted with the @ menu | | `Input.ContextChipInteracted` | Interacted with a context chip | | `Input.InputUXModeChanged` | Changed the input UX mode | | `Input.VoiceInputUsed` | Used voice input | | `InputBoxAICommandSearch` | Opened AI Command Search via the Input Editor's context menu (right clicking the buffer) | | `InputBoxAskWarpAI` | Clicked "Ask Warp AI" from the Input Editor's context menu | | `InputBoxCommandSearch` | Opened Command Search via the Input Editor's context menu (right clicking the buffer) | | `InputBoxCutSelectedText` | Copied selected text from Input Editor | | `InputBoxPaste` | Pasted text into the Input Editor's via its context menu (right clicking the buffer) | | `InputBoxSelectAll` | Selected all the text in the Input Editor via its context menu (right clicking the buffer) | | `Invited Teammates` | Sent emails to invite teammates to join Warp Drive team | | `Invoked Environment Variables` | Invoked an environment variables object | | `Isolation.DetectedIsolationPlatform` | Detected that Warp is running in an isolated sandbox | | `Joined Shared Session` | When you join another instance of Warp using shared sessions | | `Jumped to Bookmark Block` | Jumped to bookmarked Block | | `Jumped to Bottom of Block Button Clicked` | Used the button to jump to the bottom of a Block | | `Jumped to Previous Command` | Jumped to a previous command | | `Jumped to Shared Session Participant` | Clicked on a shared session participant avatar to jump to their location in the session | | `Keybinding Changed` | Edited a custom keybinding | | `Keybinding Removed` | Removed / cleared a keybinding | | `Keybinding Reset to Default` | Reset a custom keybinding to its default | | `Knowledge Pane Opened` | Knowledge Pane Opened | | `Log In Button Clicked in App` | Clicked on "Log in" button | | `Log Out` | Logged out of the Warp client | | `Log Out Modal Cancel Pressed` | Escaped the log out flow by canceling the log out modal | | `Log Out Modal Shown` | When the log out modal is displayed | | `Logged in to native app` | Login is successful | | `Logged-out App Startup` | Started Warp in the logged-out / signed-out state | | `Login Later Button Clicked` | Clicked "Login later" button | | `Login Later Confirmation Button Clicked` | Clicked "Yes, skip login" confirmation button | | `MCP Server Added` | MCP Server Added | | `MCP Server Collection Pane Opened` | MCP Server Collection Pane Opened | | `MCP Server Spawned` | MCP Server Spawned | | `MCP Template Created` | MCP Template Created | | `MCP Template Installed` | MCP Template Installed | | `MCP Template Shared` | MCP Template Shared | | `MCP Tool Call Accepted` | MCP Tool Call Accepted | | `Move Active Tab` | Move active tab left or right | | `Move Tab` | Move tab left or right | | `Needs Reauth` | User needs to re-authenticate | | `New Session From Directory` | Dragged a file, folder, etc. into Warp to start a session | | `Notebook Action` | Took an action on a notebook: edit, delete, modified font size, etc. | | `Notebook Edited` | Edited a notebook | | `Notebook Opened` | Opened a notebook | | `Notification Clicked` | Clicked desktop notification sent from Warp | | `Notification Failed to Send` | Failed to send desktop notification | | `Notification Permissions Requested` | Requested permission for desktop notification permissions | | `Notification Request Permissions Outcome` | Recorded outcome of attempting to request desktop notification permissions | | `Notification Sent` | Sent desktop notification | | `Notifications Discovery Banner Action` | Showed banner introducing the notifications feature | | `Notifications Error Banner Action` | Showed error banner for notifications feature | | `Object Link Copied` | The web link to an object has been copied. | | `Open Context Menu` | Opened context menu (such as right clicking, clicking on ellipses in the top right of a Block, etc.) | | `Open Launch Config` | Opened launch config for a session | | `Open Launch Config File` | Opened the launch config YAML file from modal once saved successfully | | `Open Palette` | Opened the palette | | `Open Quake Mode Window` | Toggled quake mode window when previously hidden or closed | | `Open Repo Folder Submitted` | User selected a folder to open as a repo from the "Open repository" button | | `Open Save Config Modal` | Opened save launch configuration modal | | `Open Slash Menu` | Opened the slash commands menu | | `Open Suggestions Menu` | Opened a suggestion menus, such as with up arrow or tab | | `Open Team from URI` | Showed settings view of their newly joined team within the app | | `Open Theme Chooser` | Opened theme chooser (list of different themes and visualizations of those themes) | | `Open Theme Creator Modal` | Opened theme creator modal (modal to create a new theme) | | `Open Welcome Tips` | Opened welcome tips in app | | `Open Workflows Search` | Opened workflows search in command search pane | | `OpenAndWarpifyDockerSubshell` | Warpifying a docker subshell from using the docker extension | | `OpenInputBoxContextMenu` | Opened the Input Editor's context menu | | `Opened Changelog Link` | Opened the changelog link within the App | | `Opened Link` | Opened a highlighted link within input or output | | `Opened Rewind Confirmation Dialog` | User opened the rewind confirmation dialog | | `Opened Save As Workflow Modal` | Opened the modal to create a new workflow using a Block's context--command, etc. | | `Opened Sharing Dialog` | Opened the sharing settings dialog for a session or Warp Drive object | | `Opened Warp AI` | Activated Warp AI | | `Opened alt screen find bar` | Opened the Find bar in the Alt Screen | | `Page Up/Down In Editor Pressed` | Pressed `PAGE-UP` or `PAGE-DOWN` within the Input Editor | | `Pane Drag Ended` | Ended dragging a pane via the pane header | | `Pane Drag Inititiated` | Initiated dragging a pane via the header | | `Parameterized Workflow With Environment Variables` | Selected from environment variables dropdown to parameterize workflow | | `Parsed Config in Settings Import` | Parsed a terminal's settings as part of settings import | | `Preview Pane Promoted` | Promoted a preview code tab to a normal tab | | `Prompt Edited` | Edited the prompt using the built-in prompt editor | | `Prompt Editor Opened` | Opened the prompt editor | | `Pty Spawned` | Tracks the manner by which we create a new shell process (new codepath vs. old codepath). Used to ensure nothing breaks as we change parts of our infrastructure. | | `Quit Modal Cancel Pressed` | `Cancel` button on the alert modal was pressed | | `Quit Modal Disabled` | The quit modal dialog has been disabled and will not popup when a user closes Warp while a session is running | | `Quit Modal Shown` | Showed an alert modal to warn the user about closing the app/window with a running process | | `Received Subshell RC File DCS` | Spawned a subshell to be automatically Warpified | | `Recent Menu Item Selected` | User selected an item from the recents list on the new tab zero state | | `Remove Added Subshell Command` | Removed a command from the list of commands to automatically Warpify via Warp's subshell wrapper | | `Remove Denylisted SSH Tmux Wrapper Host` | Removed an SSH host from the denylist from prompting for Tmux Wrapper | | `Remove Denylisted Subshell Command` | Removed a command from the list of commands to IGNORE when trying to Warpify via Warp's subshell wrapper | | `Removed Workflow Alias` | Removed an alias from a Warp Drive workflow | | `Removed user from team` | Remove user from Warp Drive team | | `RepoMetadata.BuildTree.Failed` | Failed to build file tree for repo metadata | | `Resource Center Keybindings Page Opened` | Opened the keybinding page within the resource center | | `Resource Center Opened` | Opened Resource Center pane | | `Resource Center Tips Completed` | Completed resource center tips | | `Resource Center Tips Skipped` | Skipped welcome tips for new users | | `Reverse Pro Trial Ending Reminder Dismissed` | Reverse pro trial ending expiry reminder banner was dismissed by user | | `SSH Bootstrap Attempt` | Attempted bootstrapping for an SSH session | | `SSH ControlMaster Error` | Encountered a ControlMaster error during an SSH session | | `SSH Install Tmux Block Accepted` | User accepted an ssh install tmux block | | `SSH Install Tmux Block Dismissed` | User dismissed an ssh install tmux block | | `SSH Install Tmux Block Displayed` | Displayed an ssh install tmux block | | `SSH Interactive Session Detected` | An interactive SSH session was detected | | `SSH Tmux Warpification Error Block` | Ssh tmux warpification errored out | | `SSH Tmux Warpification Succeeded` | Ssh tmux warpification succeeded | | `SSH Tmux Warpify Block Accepted` | User accepted an ssh tmux warpify block | | `SSH Tmux Warpify Block Dismissed` | User dismissed an ssh tmux warpify block | | `Save Launch Config` | Saved current launch configuration of windows, tabs, and panes | | `Select App Icon` | Selected app icon | | `Select Command Palette Option` | Selected option from command palette (i.e. CMD-P) | | `Select Cursor Type` | Selected cursor type | | `Select Navigation Palette Item` | Selected session from the Session Navigation Palette (search across panes, tabs, and windows) | | `Select Theme` | Selected theme | | `Sent email invites` | Sent email invites for Warp Drive team | | `Session Abandoned Before Bootstrap` | Abandoned session before the bootstrapping completes | | `Set Line Height` | Set line height through Settings -> Appearance | | `Set New Windows at Custom Size` | Set new windows at custom size through Settings -> Appearance | | `Set Window Blur Radius` | Changed the blur radius from the `Settings -> Appearance` dialog | | `Set Window Opacity` | Changed the opacity (window transparency) from the `Settings -> Appearance` dialog | | `Settings Import Initiated` | Started the import settings flow for new users | | `Shared Object Limit Hit Banner View Plans Button Clicked` | Clicked the 'View Plans' button on the persistent drive banner | | `Sharer Cancelled Grant Role` | When you cancel granting a role to a shared session participant | | `Shell Terminated Prematurely` | The shell process terminated prematurely | | `Show Alias Expansion Banner` | Displayed the banner asking whether Warp should automatically expand aliases within the Input Editor | | `Show Subshell Banner` | Displayed the banner asking whether Warp should Warpify the current session via Warp's subshell wrapper | | `Show Warpify SSH Banner` | Displayed the banner asking whether Warp should Warpify the current SSH session via Warp's SSH Wrapper | | `ShowNotificationsDiscoveryBanner` | Showed notifications discovery banner in the block list | | `ShowNotificationsErrorBanner` | Showed error banner for notifications feature | | `Showed File in File Explorer` | Opened a file in Finder by using "Show in Finder" | | `Sign Up Button Clicked in App` | Clicked "Sign Up" button | | `Skip Onboarding Survey` | Skipped onboarding survey as a whole | | `Slash Command Accepted` | User accepted a slash command | | `Split Pane` | Split tab into multiple panes | | `Static Prompt Suggestion Accepted` | Static Prompt Suggestion accepted | | `Static Prompt Suggestions Banner Shown` | Static Prompt Suggestions banner shown | | `Suggested Code Diff Banner Shown` | Suggested Code Diff banner shown | | `Suggested Code Diff Failed` | Suggested Code Diff Failed | | `Suggested Prompt Accepted` | Suggested prompt accepted | | `Suggested Prompt Cancelled` | Suggested prompt cancelled | | `Suggested Prompt Shown` | Suggested prompt shown | | `Tab Creation` | Created a tab | | `Tab Operations` | Took operation on a tab: change color, close tab, close adjacent tabs, etc. | | `Tab Renamed` | Changed tab title | | `Tab Single Result Autocompletion` | Accepted tab completion and inserted into Input Editor | | `Team Created` | Created a Warp Drive team | | `Team Joined` | Joined a Warp Drive team | | `Team Left` | Left a Warp Drive team | | `Team Link Copied` | Copied a Warp Drive team link | | `Thin Strokes Setting Changed` | Changed thin strokes setting in settings -> Appearance | | `Tier Limit Hit` | User hit the tier limit for a feature | | `Toggle Active AI Enablement` | Toggled active AI enablement. | | `Toggle Agent Mode Codebase Context` | Toggled on/off the enablement of codebase context usage for Agent Mode. | | `Toggle Agent Mode Query Suggestions Setting` | Toggled on/off the prompt suggestions setting | | `Toggle Approvals Modal` | Opened or closed teams modal | | `Toggle Block Filter Case Sensitivity` | Toggled on/off case sensitivity within the block filter editor | | `Toggle Block Filter Invert` | Toggled on/off invert within the block filter editor | | `Toggle Block Filter Query` | Toggled on/off a block filter query | | `Toggle Block Filter Regex` | Toggled on/off regex within the block filter editor | | `Toggle Code Suggestions Setting` | Toggled on/off the code suggestions setting | | `Toggle Codebase Context Autoindexing` | Toggled on/off the enablement of autoindexing for codebase context. | | `Toggle Dim Inactive Panes` | Whether the dim inactive panes feature has been toggled | | `Toggle Focus Pane On Hover` | Toggled on/off focus pane on hover feature, which causes panes to automatically focus when hovering over them | | `Toggle Global AI Enablement` | Toggled global AI enablement. | | `Toggle Intelligent Autosuggestions Setting` | Toggled on/off the intelligent autosuggestions setting | | `Toggle Jump to Bottom of Block Button` | Enabled or disabled the Jump to Bottom of Block Button | | `Toggle Ligature Rendering` | Toggled ligature rendering | | `Toggle New Windows at Custom Size` | Whether the new windows at custom size feature has been toggled | | `Toggle Obfuscate Secret` | Revealed or hid a secret | | `Toggle Restore Session` | Toggled session restoration ("Restore windows, tabs, panes, on startup") | | `Toggle SSH Tmux Wrapper` | Changed the setting for SSH sessions to prompt for Tmux Wrapper | | `Toggle SSH Warpification` | Changed the setting for SSH sessions to be warified | | `Toggle Same Line Prompt` | Toggled on/off same line prompt | | `Toggle Secret Redaction` | Toggled on/off the setting for Secret Redaction - attempts to redact secrets and sensitive information | | `Toggle Settings Sync` | Toggle Settings Sync | | `Toggle SharedBlock Title Generation` | Toggled on/off the shared block title generation setting | | `Toggle Show Agent Tips` | Toggled the Show Agent Tips setting in AI settings | | `Toggle Show Block Dividers` | Enabled or disabled the Show Block Dividers Button | | `Toggle Sticky Command Header in Active Pane` | Expanded or collapsed the sticky command header in the active pane | | `Toggle Sync Inputs Across All Panes in All Tabs` | Enable the synchronization of the Input Editor's buffer to all the panes in all the tabs | | `Toggle Sync Inputs Across All Panes in Current Tab` | Enable the synchronization of the Input Editor's buffer to all the panes in the current tab | | `Toggle Tab Indicators` | Enabled or disabled the tab indicators (failed command, etc.) | | `Toggle Voice Input Setting` | Toggled on/off the voice input setting | | `Toggle Warp AI` | Toggled Warp AI--an AI assistant to help you debug errors, look up forgotten commands and more | | `Toggled Bookmark Block` | Bookmarked or unbookmarked Block | | `Toggled Tab Bar Visibility` | Toggled when to display the tab bar | | `Tried to Execute Before Precmd` | Attempted to execute command before precmd, a shell stage that has metadata on a command such as ssh, prompt info, etc. | | `Trigger Subshell Bootstrap` | Attempted to Warpify the current session via Warp's subshell wrapper | | `Triggered Command XRay` | Triggered Command X-Ray (hovering over a command for explanation) | | `Unable to Update To New Version` | Update available but not authorized to install | | `Undo Close` | Re-opened a closed tab or window (undo closing a tab or window) | | `Unhandled Editor Modifier Key` | Used modifier keybinding keystroke which is not currently supported | | `Unsupported Shell` | Booted Warp with a shell that isn't supported | | `Update Block Filter Query` | When a new filter is applied to a block | | `Update Block Filter Query With Context Lines` | When the number of context lines for a block filter query is updated | | `Update Tab Close Button Position` | Updated the tab close button position | | `Updated Alt Screen Padding Mode` | Updated the custom padding setting for the alt-screen | | `Updated Sorting Choice` | Modified the sorting scheme for Warp Drive objects | | `Upgrade To Pro Modal CTA Clicked` | User clicked the CTA button in the UpgradeToProModal | | `Upgrade To Pro Modal Dismissed` | User dismissed the UpgradeToProModal | | `Used Warp AI Prepared Prompt` | Used one of the Warp-provided prompts, like "Show examples" | | `User Initiated Closing Something` | Attempted to either quit the app or close a window | | `User Initiated Log Out` | Confirms a user has explicitly logged out of the application | | `User Menu Upgrade Clicked` | Clicked the 'Upgrade' menu item in the user menu | | `Vim Keybindings Banner Dismissed` | Dismissed the banner to enable Vim keybindings in the Input Editor | | `Vim Keybindings Banner Displayed` | Displayed the banner asking whether Warp should enable Vim keybindings in the Input Editor | | `Vim Keybindings Enabled from Banner` | Enabled Vim keybindings in the Input Editor from the banner | | `Warp AI Action` | Executed a Warp AI action: Restart, Copy, Insert into terminal | | `Warp AI Character Limit Exceeded` | Attempted to ask a question longer than 1k chars to Warp AI | | `Warp AI Request Issued` | Issued a question to Warp AI | | `Warp Drive Opened` | Opened Warp Drive panel | | `Warp Drive Sharing onboarding block shown` | Showed onboarding block for Warp Drive sharing | | `Warp Drive object opened on desktop` | Warp Drive object on the web was opened on the desktop | | `Web session opened on desktop` | Shared session viewed on the web was opened on the desktop | | `Workflow Executed` | Executed workflow | | `Workflow Selected` | Selected workflow and populated into the Input Editor | | `Zero State Prompt Suggestion Used` | Used a zero state prompt suggestion | | `experiments.client.enroll_client` | Client assigned to A/B test | | `onboarding_callout_completed` | User completed the callout flow | | `onboarding_callout_displayed` | A callout was displayed to the user | | `onboarding_callout_next` | User clicked next on a callout | | `onboarding_folder_selected` | User selected a folder | | `onboarding_folder_selection_started` | User started folder selection | | `onboarding_get_started_clicked` | User clicked the Get Started button | | `onboarding_setting_changed` | User changed a setting during onboarding | | `onboarding_slide_navigated_back` | User navigated to the previous slide | | `onboarding_slide_navigated_next` | User navigated to the next slide | | `onboarding_slide_viewed` | User viewed a slide in the onboarding flow | | `onboarding_slides_completed` | User completed the onboarding slides | | `onboarding_started` | User started the onboarding flow | | `perf_metrics.memory_usage_high` | Total application memory usage exceeded a significant threshold | | `perf_metrics.resource_usage` | Periodic report on application resource usage statistics | | `revenue.AutoReloadModalClosed` | User closed the auto-reload modal (either dismissed or enabled auto-reload) | | `revenue.AutoReloadToggledFromBillingSettings` | User toggled auto-reload in Billing & Usage settings | | `revenue.OutOfCreditsBannerClosed` | User closed the 'Out of credits' banner (dismissed or purchased credits) | --- # Source: https://docs.warp.dev/terminal/appearance/prompt.md # Prompt ### Warp prompt Warp has a native prompt that is customizable and can show a variety of information including cwd, git, svn, kubernetes, pyenv, date, time, an so on. You can visit `Settings > Appearance > Input > Classic > Current prompt > Warp Prompt` to drag and drop context chips into your Warp prompt until it displays the pieces of information you'd like to include. #### Git and Subversion Git and Subversion context chips show which branch you are on locally, as well as the number of uncommitted changed files. This includes any new files, modified files, and deleted files that are staged or unstaged. #### Kubernetes Kubernetes context chip shows relevant information when you're using one of the following commands: `kubectl|helm|kubens|kubectx|oc|istioctl|kogito|k9s|helmfile|flux|fluxctl|stern|kubeseal|skaffold|kubent|kubecolor|cmctl|sparkctl|etcd|fubectl` {% hint style="info" %} Warp respects the `KUBECONFIG` environmental variable, make sure you set it to your preferred configuration file location, if it's not the default path of `~/.kube/config` {% endhint %} ### Same line prompt By default, Warp's prompt displays on two lines where the command line input is one line below the prompt. If you'd like to set your prompt such that the command line input and the prompt display together inline, you can configure this under `Settings > Appearance > Input > Classic > Current prompt > Warp Prompt` and check the box for "Same line prompt." If you're using a [Shell prompt (PS1)](#custom-prompt), Warp will use the same line prompt settings to respect any styles or theme configurations. You may optionally configure a new line prompt with PS1 but you will need to write your configuration, according to your theme of choice. {% hint style="info" %} If you want to add back the new line on your Shell prompt, please run the following based on your shell or prompt: ```sh # Bash echo -e '\nPS1="${PS1}"$'\''\\n'\''' >> ~/.bashrc # Zsh echo -e '\nPROMPT="${PROMPT}"$'\''\\n'\''' >> ~/.zshrc # Fish echo -e '\nfunctions --copy fish_prompt fish_prompt_orig; function fish_prompt; fish_prompt_orig; echo; end' >> ~/.config/fish/config.fish # Powershell $rawString = @' $originalPrompt = Get-Item Function:\prompt Set-Item -Path Function:\prompt_original -Value $originalPrompt function prompt { "$(& prompt_original)`n" } '@ Add-Content -Path $PROFILE -Value "`n$rawString`n" # Powerlevel10k p10k configure # Starship Prompt echo '[line_break]\ndisabled = false' >> ~/.config/starship.toml ``` {% endhint %} ### Shell prompt (PS1) You can also set up a Shell prompt by configuring the **PS1** variable or installing a supported shell prompt plugin, see [Shell Prompt Compatibility Table](#shell-prompt-compatibility-table). Visit `Settings > Appearance > Input > Classic > Current prompt > Shell Prompt (PS1)` to enabled it. {% hint style="info" %} The PS1 is a variable used by the shell to generate the prompt, it represents the primary prompt string (hence the “PS”) - which the terminal typically displays before typing new commands. {% endhint %} #### Multi-Line and Right-Sided Prompts The Shell prompt supports multi-line or right-sided prompts in zsh and fish, not bash. However, you can't have a multiline right-side prompt, only a multiline left prompt. ## How to access it * Toggle the prompt by right-clicking on the prompt area above the input and selecting `Settings > Appearance > Input > Classic > Current prompt`. There you will be able to select and customize the Warp prompt or select the Shell prompt (PS1). * When using Warp prompt, you can right-click the prompt to copy the entire prompt, working directory, current git branch, git uncommitted file count, etc. * When using a Shell prompt, you can right-click the prompt to copy the entire prompt or select any part of the custom prompt in previously run blocks in your session. ## How it works <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-79eae94dc5a59ae0085534de4dc77d0c6d43a6d4%2Fclassic-prompt.gif?alt=media" alt=""><figcaption><p>Classic input</p></figcaption></figure> <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-8b122e4df5d9c51a70da30de03ee1d10e9ffffb5%2Fwarp-custom-prompt-demo.gif?alt=media" alt="Warp Prompt + Custom Prompt Demo"><figcaption><p>Warp Prompt | Shell Prompt Demo</p></figcaption></figure> <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-462ef97281a686730bbf123d404ecf7ae1606988%2Fedit-prompt-modal%20(1).png?alt=media" alt=""><figcaption><p>Prompt edit modal</p></figcaption></figure> ### Shell Prompt Compatibility Table | Shell | Tool | Does it work? | | --------------------------- | ------------------------------------------------------------------------- | --------------------------------------------------------------- | | bash \| zsh | [PS1](https://www.warp.dev/blog/whats-so-special-about-ps1) | Working | | bash \| zsh \| fish \| pwsh | [Starship](https://github.com/starship/starship) | [Working\*](#starship) | | bash \| zsh \| fish \| pwsh | [oh-my-posh](https://github.com/JanDeDobbeleer/oh-my-posh) | Working | | zsh | [Powerlevel10k](https://github.com/romkatv/powerlevel10k) | [Working\*](#powerlevel10k) | | zsh | [Spaceship](https://github.com/spaceship-prompt/spaceship-prompt) | [Working\*](#spaceship) | | zsh | [oh-my-zsh](https://github.com/ohmyzsh/ohmyzsh) | Working | | zsh | [prezto](https://github.com/sorin-ionescu/prezto) | [Working\*](#prezto) | | ssh | | Working | | bash | [oh-my-bash](https://github.com/ohmybash/oh-my-bash) | Not supported | | bash | [bash-it](https://github.com/Bash-it/bash-it) | Not supported | | bash | [SBP](https://github.com/brujoand/sbp) | Not supported | | bash | [synth-shell-prompt](https://github.com/andresgongora/synth-shell-prompt) | Not supported | | bash \| zsh | [Powerline-shell](https://github.com/b-ryan/powerline-shell) | Not supported | | zsh | [zplug](https://github.com/zplug/zplug) | Not supported | | fish | [tide](https://github.com/IlanCosman/tide) | [Not supported](https://github.com/warpdotdev/Warp/issues/3358) | | fish | [oh-my-fish](https://github.com/oh-my-fish/oh-my-fish) | [Not supported](https://github.com/warpdotdev/Warp/issues/3796) | ## Known incompatibilities If you're having issues with prompts, please see below or our [Known Issues](https://docs.warp.dev/support-and-community/troubleshooting-and-support/known-issues#configuring-and-debugging-your-rc-files) for more troubleshooting steps. ### Starship #### Starship Settings Some `~/.config/starship.toml` settings are known to cause errors in Warp. `#` or `DEL` the following lines to resolve known errors: ``` # Get editor completions based on the config schema '' = 'https://starship.rs/config-schema.json' # Disables the custom module [custom] disabled = false ``` For `fish` shell, optional for `bash|zsh`, disable the multi-line prompt in Starship by putting the following in your `~/.config/starship.toml`: ``` [line_break] disabled = true ``` You may also see an error relating to timeout. You can set the `command_timeout` variable in your `~/.config/starship.toml` to fix this. See more in the [starship docs](https://starship.rs/config/#prompt). #### Starship + bash Starship prompt may not render properly if your [default shell](https://docs.warp.dev/getting-started/supported-shells#changing-default-shell) is `/bin/bash`. To [workaround](https://github.com/warpdotdev/Warp/issues/3066#issuecomment-1548643121) the issue, we recommend you upgrade bash, find the path with `echo $(which bash)`, then put the path in your `Settings > Features > Session > "Startup shell for new sessions" > Custom`. #### Starship + zsh If you want to restore the additional line after the Starship prompt on `zsh`, add the following to the bottom of your `~/.zshrc` file: `PROMPT="${PROMPT}"$'\n'` ### Powerlevel10k When installing the Powerlevel10k (P10k) prompt, we recommend you use the [Meslo Nerd Font](https://github.com/romkatv/powerlevel10k/blob/master/font.md).\ \ P10K may display the arrow dividers as grey instead of color. The color for those chars is rendered grey due to Warp's minimum contrast setting. To [workaround](https://github.com/warpdotdev/Warp/issues/2851#issuecomment-1605005256) this issue, go to `Settings > Appearance > Text > Enforce minimum contrast` and set it to "Never". <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-3a6ac0a4154cd83d02dda41e9d1e65f21fdeb7de%2Fp10k-grey-arrow-prompt.png?alt=media" alt="" width="563"><figcaption><p>Example of the grey dividers in p10k</p></figcaption></figure> Warp does support [p10k](https://github.com/romkatv/powerlevel10k#installation) version 1.19.0 and above. Ensure you have the latest version installed and restart Warp after the installation/update of p10k. Then enable the custom prompt as stated [above](#how-to-access-it) and it should work. {% hint style="info" %} Warp still doesn't fully support some p10k features like transient prompt and visual features like gradients. {% endhint %} {% embed url="<https://www.youtube.com/watch?t=18s&v=dIV9Cso4Mi8>" %} Installing Powerlevel10k {% endembed %} {% hint style="warning" %} Please note the Installing Powerlevel10k video mentions enabling a custom prompt in `Settings > Features > Honor users custom prompt (PS1)`, but it's now in `Settings > Appearance > Input > Classic > Current prompt > Shell Prompt (PS1)` . {% endhint %} ### Spaceship This prompt can cause an issue with typeahead in Warp's input editor. To [workaround](https://github.com/warpdotdev/Warp/issues/1973#issuecomment-1340150521) the issue, run `echo "SPACESHIP_PROMPT_ASYNC=FALSE" >>! ~/.zshrc`. ### Prezto Although Warp does have support for prezto's prompt, enabling the [prezto utility module](https://github.com/sorin-ionescu/prezto/blob/master/modules/utility/README.md) in the `.zpreztorc` is not supported as with many other autocompletion [plugins that are incompatible](https://docs.warp.dev/support-and-community/troubleshooting-and-support/known-issues#list-of-incompatible-tools). ### Disabling unsupported prompts for Warp We advise using Warp's default prompt or installing one of the supported tools, see [Compatibility Table](#custom-prompt-compatibility-table). You can disable unsupported prompts for Warp as such: ``` if [[ $TERM_PROGRAM != "WarpTerminal" ]]; then ##### WHAT YOU WANT TO DISABLE FOR WARP - BELOW # Unsupported Custom Prompt Code ##### WHAT YOU WANT TO DISABLE FOR WARP - ABOVE fi ``` #### iTerm2 The iTerm2 shell integration breaks Warp and your custom prompt will not be able to be visible with this on. If you're coming from iTerm2 please check your dotfiles for it. We advise disabling the integration for Warp like so: ``` if [[ $TERM_PROGRAM != "WarpTerminal" ]]; then ##### WHAT YOU WANT TO DISABLE FOR WARP - BELOW test -e "${HOME}/.iterm2_shell_integration.zsh" && source "${HOME}/.iterm2_shell_integration.zsh" ##### WHAT YOU WANT TO DISABLE FOR WARP - ABOVE fi ``` --- # Source: https://docs.warp.dev/knowledge-and-collaboration/warp-drive/prompts.md # Prompts ## What is a Prompt? A Prompt is a parameterized natural language query you can name and save in Warp to use with [Agent Mode](https://docs.warp.dev/agents/using-agents/). Prompts are searchable and easily accessed from the [Command Palette](https://docs.warp.dev/terminal/command-palette) so you can find and execute them without switching context. They allow you to save and reuse specific and complex AI workflows, making it easier to repeat multi-step tasks with Agent Mode. <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-4a7a7593ea9e583c8acde5950aff4814fd6953c1%2Fprompts-command-view.png?alt=media" alt="View of a Prompt in Warp Drive showing the command view interface"><figcaption><p>Command view of a Prompt in Warp Drive</p></figcaption></figure> ### Demo: Trigger Reusable Actions with Saved Prompts Here's an example from [Warp University](https://www.warp.dev/university), where Zach walks through what Prompts he uses for PRs and Git commits: {% embed url="<https://www.youtube.com/watch?ab_channel=Warp&v=pE15zjJmB4E>" %} There's other great examples of Prompts on [Do Things](https://dothings.warp.dev/) and [Warp University](https://www.warp.dev/university). ## How to save and edit Prompts You can create a new Prompt from Warp Drive by clicking the + button and selecting "Prompt". * Name your Prompt * Edit the natural language query along with any arguments (also known as parameters) * Add a meaningful description that will be indexed for search (optional) * Add arguments, descriptions for arguments, and default values (optional) <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-b5f0aa58be3db8f09ff0288c2a04ee3d3c2a9b18%2Fprompts-edit-view.png?alt=media" alt="View of the Prompt editor interface showing the edit form with fields for name, query, description, and arguments"><figcaption><p>Edit view of a Prompt in Warp Drive</p></figcaption></figure> Once a Prompt has been created, you can edit it at any time, as long as you have access to an internet connection. ### Working with arguments In the Prompt editor, you can add arguments manually with "New argument" or by typing in double curly braces (`{{argument}}`) within the command field. If you select "New argument" while you have text selected, Warp will wrap that text in curly braces to create an argument. There are some rules for creating valid arguments: * Argument names can only include characters `A-Za-z0-9`, hyphens `-` and underscores `_` * The first character of an argument cannot be a number Arguments can be one of two types: text or enum. By default, all new arguments are text type. #### Enum type arguments Enums allow you to specify expected inputs to a Prompt argument. When you insert a Prompt with enums into the input editor, you will be prompted with suggestions for filling in the argument. You can open the suggestions menu by pressing `SHIFT-TAB` while selecting an argument. For detailed information about creating and using enum type arguments, please see the [Enum type arguments section in Workflows documentation](https://docs.warp.dev/knowledge-and-collaboration/workflows#enum-type-arguments). ### Editing Prompts with a team If the Prompt is shared with a team, all team members will have access to edit it and updates will sync immediately for all members of the team. If a Prompt in the Warp Drive has been edited by another team member or a user on another device while you are attempting to edit the same Prompt, you will not be able to save changes; you will need to check out the latest version and try again. ## How to execute Prompts You can execute a Prompt in several ways: * From Warp Drive, click the Prompt * From the [Command Palette](https://docs.warp.dev/terminal/command-palette) or [Command Search](https://docs.warp.dev/terminal/entry/command-search), search for a Prompt by name or type "prompts:" to see all available prompts and your prompt history * When a Prompt is selected, you can use `SHIFT-TAB` to cycle through the arguments. <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-390738e6639a1537144c71a295dbf0f2de7c4103%2Fprompts-command-palette.png?alt=media" alt="Command Palette interface showing a search for Prompts with results displayed"><figcaption><p>Search for Prompts in the Command Palette with <code>CMD + P</code></p></figcaption></figure> <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-b88aa05c6d16d5d02a0f72d1976d33c2450f66fe%2Fprompts-command-search.png?alt=media" alt="Command Search interface showing a search for Prompts with results displayed"><figcaption><p>Search for Prompts in Command Search with <code>CTRL + R</code></p></figcaption></figure> These options will paste the Prompt into your active terminal input. Prompt names and any relevant descriptions and arguments will be displayed in a dialog, so you can understand how to use the Prompt. You can make any adjustments you need to the arguments before running the Prompt in your input editor. ### Import and Export Prompts in Warp Drive Please see our [Warp Drive Import and Export](https://docs.warp.dev/knowledge-and-collaboration/warp-drive/..#import-and-export) instructions. --- # Source: https://docs.warp.dev/university/mcp-servers/puppeteer-mcp-scraping-amazon-web-reviews.md # Puppeteer MCP: Scraping Amazon Web Reviews {% hint style="info" %} This tutorial demonstrates how to configure and use the **Puppeteer MCP server** inside Warp to scrape Amazon web reviews. {% endhint %} {% embed url="<https://youtu.be/rrxfS9u1XRA?si=Bzaxm6Qb00okv03t&t=134>" %} *** ### 🧠 Overview **Puppeteer MCP** integrates Warp’s agents with the browser, letting you automate tasks such as navigation, form filling, screenshotting, and scraping content.\ \ Once configured, Warp can issue Puppeteer commands directly from prompts, enabling full **browser automation** without manual scripting. You’ll learn how to: * Set up the Puppeteer MCP server. * Use Warp’s voice input and AI to describe automation tasks. * Execute browser workflows hands-free. * Capture, scrape, and analyze web data programmatically. *** {% stepper %} {% step %} **Configure the Puppeteer MCP Server** Open the MCP panel in Warp: * Press **Cmd + Shift + P** (Mac) or **Ctrl + Shift + P** (Windows/Linux) to open the **Command Palette**. * Search for `MCP` and open the **MCP Panel**. Add the Puppeteer MCP config: * Click **Add**, then paste in the provided JSON configuration for Puppeteer: {% code title="puppeteer-mcp-config.json" %} ```json { "puppeteer": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-puppeteer" ], "env": {}, "working_directory": null } } ``` {% endcode %} Save your configuration. Available endpoints will include: * `puppeteer.navigate` * `puppeteer.fill` * `puppeteer.screenshot` * `puppeteer.evaluate` These represent actions Warp can call automatically through its AI agent. {% endstep %} {% step %} **Use Voice Input to Trigger Automation** Enable **voice input** by clicking the microphone icon in Warp. Then speak your automation prompt naturally. ``` Can you go to Amazon search for "white t-short women?" Scrape the results so the titles, prices, and links are extracted. Then open each product link and summarize the product reviews. Finally, give me a recommendation for which shirt to buy based on the combination of the pricing and review quality. ``` **Watch Puppeteer Automate the Workflow** Behind the scenes, Puppeteer: * Navigates to Amazon. * Fills the search bar with “white t-shirt woman.” * Scrapes the product results — capturing titles, prices, and product links. * Clicks into each product and extracts review data using JavaScript selectors. * Takes screenshots of the pages for reference. You can see the browser (Amazon) and Warp side-by-side as Puppeteer performs these steps autonomously. {% hint style="info" %} Puppeteer runs fully headless or in visible browser mode — you don’t need to touch your mouse or keyboard. {% endhint %} **Analyze and Summarize Results** Once the scrape is complete, Warp compiles the data and provides a ranked list of products. Example output (from transcript): | Product | Price | Rating | Summary | | ---------------- | ----- | ------ | --------------------- | | Cozy T-Shirt | $8 | ⭐ 4.5 | Soft fabric, good fit | | Comfy Cotton Tee | $10 | ⭐ 4.2 | Slightly looser fit | | Basic White Top | $6 | ⭐ 3.8 | Mixed quality reviews | Warp’s recommendation: > “The Cozy T‑Shirt — $8, 4.5 stars, good fit, and soft fabric.” **Apply Puppeteer MCP to Other Scenarios** The same setup works for: * Product research – Compare reviews or specs across multiple sites. * Competitive analysis – Scrape competitors’ pricing or product data. * Web testing – Automate user flows like login or checkout. * Repetitive data tasks – Periodic scraping or screenshot capture. {% hint style="success" %} Puppeteer MCP lets Warp act like your hands in the browser — navigating, scraping, and summarizing data while you focus on analysis. {% endhint %} {% endstep %} {% endstepper %} --- # Source: https://docs.warp.dev/terminal/more-features/quit-warning.md # Quit Warning ## What is it The quit warning feature ensures that you receive a warning before quitting the app with a running process, allowing you to save your work and avoid any unintended data loss.\ If you quit the app or close a window containing a session with a running process, you'll see the alert and need to confirm the action before proceeding. If you aren't sure which processes you have running, there is also an option to show those processes. ## How to access it * Open `Settings > Features > General`, there you can toggle the "Show warning before quitting". * You can also toggle the quit warning feature in the [Command Palette](https://docs.warp.dev/terminal/command-palette), by searching for \`Quit Warning'. * If enabled, when you try and close Warp you will see a pop-up window with a few options listed below: * Yes, quit, which will close all the Warps sessions and running processes. * Show running processes, which will bring up the [Session Navigation](https://docs.warp.dev/terminal/sessions/session-navigation) panel with a filter for running processes. * Cancel, which will prevent Warp from closing. * Don't ask again, which is a box you can check to disable the quit warning feature. ## How it Works {% embed url="<https://www.loom.com/share/bacb9d1c1e3947dca8365e15231cfcd3?hide_owner=true&hide_share=true&hide_title=true&hideEmbedTopBar=true>" %} Quit Warning Modal Demo {% endembed %} --- # Source: https://docs.warp.dev/changelog/readme.md # Source: https://docs.warp.dev/university/readme.md # Source: https://docs.warp.dev/reference/readme.md # Source: https://docs.warp.dev/support-and-community/readme.md # Source: https://docs.warp.dev/agent-platform/readme.md # Source: https://docs.warp.dev/getting-started/readme.md # Quickstart Guide ## Key Features: * [**Code**](https://docs.warp.dev/code/code-overview): Warp is optimized for writing code by prompt on large, existing codebases. When Warp detects an opportunity to write code, it will enter an advanced code generation flow. * [**Modern terminal**](https://docs.warp.dev/terminal/editor): A fast, editor-style input environment with cursor movement, multi-line editing, and rich completions. Every command or prompt appears in clean, navigable Blocks. Includes built-in SSH support, flexible window management, and full Mac/Windows/Linux compatibility. * [**Agents**](https://docs.warp.dev/agent-platform/agent/agents-overview): Warp autodetects whether you are typing a natural language prompt or a command. Use natural language prompts to have Warp write code, debug issues, or write commands for you. * [**Multi-agent management**](https://docs.warp.dev/agent-platform/using-agents/managing-agents): Warp is designed to have multiple agents running at once. Agents will send you notifications if they require your input, and you can see all your agents in one panel. * [**Universal Input**](https://docs.warp.dev/terminal/universal-input): Type naturally and let Warp understand what you mean. You can talk to it in plain English, ask for fixes or explanations, and invoke agents without switching modes or special syntax. * [**Code Review**](https://docs.warp.dev/code/code-review): Warp surfaces agent-generated code diffs in an integrated diff view, letting you inspect changes, refine them with natural language, or apply them when ready. You stay in control while agents produce and update code across your repo. * [**Ambient Agents (Beta)**](https://docs.warp.dev/agent-platform/ambient-agents/ambient-agents-overview): Warp can also run agents asynchronously in the cloud. Ambient Agents are designed for background, long-running, or event-driven work, like PR review, issue triage, dependency updates, and routine repo maintenance. * [**Integrations**](https://docs.warp.dev/agent-platform/integrations/integrations-overview): Warp connects directly with your team's tools. Use [Slack](https://docs.warp.dev/agent-platform/integrations/slack), [Linear](https://docs.warp.dev/agent-platform/integrations/linear), [GitHub Actions](https://docs.warp.dev/agent-platform/integrations/github-actions), and other integrations to trigger agents in the cloud, run workflows on your codebase, and make changes asynchronously. * [**Platform**](https://docs.warp.dev/agent-platform/platform/warp-platform): The underlying infrastructure that powers Ambient Agents and integrations, including the CLI, Agent API/SDK, orchestration layer, environments/execution, secrets, and management/observability. You can fully customize Warp's appearance, prompts, settings, and keybindings to fit your preferences. Warp works with zsh, bash, fish, and PowerShell, and is built with Rust for high performance. *** #### **Learn More** For an inside look at how Warp is built, you can read the blog post on [How Warp Works](https://www.warp.dev/blog/how-warp-works). To understand the product philosophy behind Warp's evolution, see [Warp 2.0: The Agentic Development Environment](https://www.warp.dev/blog/reimagining-coding-agentic-development-environment). To see Warp in action, watch this walkthrough: {% embed url="<https://youtu.be/0yAL7iA0po4>" %} ## Join the community Stay connected to the team at Warp and get updates on the latest releases: * Visit Warp's [Blog](https://www.warp.dev/blog) to read about new features and engineering topics. * Join Warp's [Slack community](https://go.warp.dev/join-preview) to interact directly with Warp engineers and other developers. * Subscribe to Warp's [YouTube](http://www.youtube.com/@warpdotdev) and [TikTok](https://www.tiktok.com/@warp.dev) channels for longer demos and insider stories. * Visit [Warp University](https://docs.warp.dev/getting-started/broken-reference) to get end-to-end workflows for coding, deploying, and becoming pro AI developer. * Follow Warp on [Twitter](https://twitter.com/warpdotdev) for updates and tips. --- # Source: https://docs.warp.dev/support-and-community/community/refer-a-friend.md # Refer a Friend & Earn Rewards {% hint style="info" %} Go to `Settings > Referrals` to open the invite a friend referral dialog. {% endhint %} **There are two ways you can invite a friend:** 1. Send them an invite link. They will be directed to our product download page. 2. Input their email address, which we'll use to email them with your referral link. ## Referral Rewards Program We give out themes, swag, and other perks as thanks for helping to grow our community. The tiers are as follows: | Referrals | Reward | Digital Gift Card Alternative | | --------- | -------------------- | :---------------------------: | | 1 | Exclusive Theme | $0 | | 5 | Stickers and Keycaps | $5 | | 10 | T-Shirt | $10 | | 20 | Moleskin Notebook | $20 | | 35 | Baseball Hat | $35 | | 50 | Hoodie | $50 | | 75 | Hydroflask | $75 | | 100 | North Face Backpack | $100 | By participating in Warp's Referral Program, you agree to the [Referral Program Terms and Conditions](#referral-program-terms-and-conditions). ### Your friend gets a theme If your friend joins and activates their Warp account after clicking your invite link, they will receive a unique theme. ## Referral Program Terms and Conditions > **Last Updated:** November 27, 2024 ### 1 referral: An exclusive theme When someone joins Warp with your referral code, the referral theme will become available in your theme picker after you restart the app. We also send an email alerting you. This reward is available to all users worldwide. ### All other referral tiers Once you've hit the other referral tiers, we'll email you with details on how to claim your reward. Physical rewards are available to users residing in the United States, and Warp will cover shipping costs for these users. International users can also claim physical rewards; however, they will be responsible for any customs fees. For all users, there's an option to claim a digital reward (gift card) instead of physical Warp swag. ### International users International users who choose physical rewards are responsible for paying any customs fees associated with shipping. Estimated costs are provided in the [approximate customs fees by region](#approximate-customs-fees-by-region) section below. Please note that once the package leaves the United States, Warp no longer has visibility or control over the shipment process, including any customs-related issues or fees that may arise. Alternatively, international users may opt to receive a digital gift card instead of a physical reward. Note: for users who qualified for referral rewards before October 15th, 2024, Warp will cover all shipping and customs costs. Starting from that date onwards, international users receiving referral rewards will be responsible for paying any customs fees associated with shipping. ### Shipping time frame Physical rewards may take 2 to 3 weeks to arrive for users located in the United States, and 4 to 12 weeks for international users. After claiming your order, you will receive an email with a shipping confirmation and a tracking link from Printfection, our swag vendor. If you have any questions about the status of your shipment or order, please reach out to <support@printfection.com> with your order number. ### General terms and conditions Referrals must be valid and confirmed by Warp to count towards rewards. This means the referred user must accept the referral via the referral link and log into Warp's desktop application. Warp reserves the right, at its sole discretion, to disqualify any referrals deemed fraudulent. Any users who refer fake emails or users will be disqualified at the sole discretion of Warp. Warp reserves the right to modify or terminate the referral rewards program at any time without prior notice. Participation in the swag program constitutes acceptance of these terms and conditions. If you have any questions about the referral program, please contact <referrals@warp.dev>. ### Digital gift card rewards All amounts are listed in USD. Rewards are based on the number of valid referrals. | Number of referrals | Gift card amount | | :-----------------: | :--------------: | | 1 | $0 | | 5 | $5 | | 10 | $10 | | 20 | $20 | | 35 | $35 | | 50 | $50 | | 75 | $75 | | 100 | $100 | ### Approximate customs fees by region All amounts are listed in USD. Fees are estimates and may vary regardless of package size. | Country / region | Approximate customs fees | | :-------------------------------------------------: | :----------------------: | | Canada & Mexico | $40 to $70 | | Europe | $40 to $80 | | Others (Asia, South America, Africa, Oceania, etc.) | $50 to $120 | \*Note: The approximate customs fees provided are estimates and may vary based on your country's specific import regulations, taxes, and duties. Actual fees can differ due to factors such as package contents, declared value, and current customs policies. We recommend checking with your local customs office or postal service for precise information relevant to your situation. ## Referral Rewards Program FAQs #### **"I have referred people but have not received an email."** Please allow a few hours for the referral system to process and send email updates. If you still haven’t received an email after a reasonable amount of time, contact us at <referrals@warp.dev> and we'll look into it. #### **"I've claimed my physical reward but have issues receiving my package."** If you experience issues with your shipment, please respond to the shipping notification email you should have received from Printfection. For further assistance, contact our swag vendor’s operations team at <support@printfection.com> with your order number. #### **"I've referred friends, but they didn't use the link. Does it still count?"** Unfortunately, any referrals who didn't use your link will not count towards the rewards, and we have no way of modifying the referral count. #### **"I've referred friends, but they joined anonymously. Does it still count?"** For a referral to count, new users must sign up and actively use Warp. Unfortunately, we’re unable to associate anonymous users with specific referral links at this time. We’re actively working on solutions to make the referral process more seamless and reliable for anonymous users. Stay tuned for updates as we improve this experience. #### **"The reward tiers recently changed with the new swag items. I previously qualified for X. What happens now, and are the new swag items retroactive?"** Our referral program was updated on November 21, 2024, with new reward tiers and exciting swag options. To ensure a smooth transition, we will honor previous reward tiers alongside the updated program until December 15, 2024. If you’re unsure how these changes impact your previous qualifications or eligibility for the new swag items, feel free to reach out to us at <referrals@warp.dev> for assistance. --- # Source: https://docs.warp.dev/code/reviewing-code.md # Code Diffs in Agent Conversations ## Reviewing Code Diffs During an Agent Conversation, Warp can generate code diffs that open directly in a built-in diff editor. This lets you review proposed changes line by line, refine them with natural language, or make manual edits before choosing whether to apply them. It’s a fast, transparent way to stay in control of agent-generated code. **Note**: If the `Apply Code Diffs` permission is set to `Agent decides` or `Always allow` in [Agent Profiles & Permissions](https://docs.warp.dev/agent-platform/agent/using-agents/agent-profiles-permissions), code diffs will not be surfaced for you to review. If it's set to `Always ask`, you'll always be prompted to review them. {% hint style="info" %} Code diffs generated by Warp are never stored on our servers. Warp's coding agent only works on local repositories. The agent can make changes on remote or docker repositories, but fallback to using terminal commands (i.e. `sed`, `grep` ) to make the changes. {% endhint %} <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-b46a55cb41760b643577d70244140211ccd0291a%2Fgenerated_blocklist_diff.png?alt=media" alt=""><figcaption><p>A code diff surfaced in an Agent Conversation.</p></figcaption></figure> You can also choose whether Warp automatically opens the [Code Review](https://docs.warp.dev/code/code-review) panel the first time you accept a diff in a conversation. This behavior can be toggled in `Settings > Features > General > Auto-open Code Review Panel`. ## **Navigating and applying diffs** When a Warp Agent generates a code diff, Warp opens it in a built-in text editor with a visual diff view. Changes are grouped into clear hunks for easy inspection. * Use the `UP` and `DOWN` arrow keys (or mouse clicks) to move between hunks. * For multi-file changes, use `LEFT` and `RIGHT` arrow keys to switch between files. * Once satisfied with the changes, you can apply the diffs using `ENTER` or clicking "**Accept Changes**" to apply the modifications. {% hint style="warning" %} These modifications will not be applied to the files unless you explicitly accept them. {% endhint %} ## **Refining or editing the diffs** If the initial suggestion needs more work: * Press `R` or select the "**Refine**" button to provide follow-up instructions in natural language. The agent will regenerate the diff based on your input. * To manually adjust the code, press `E` or click "**Edit**" to switch into an editable view. * To cancel a pending operation, use `CTRL-C` (on Mac, Windows, or Linux systems). Similarly, you can exit the editor at any time with `ESC` . {% hint style="info" %} You can open up code files in Warp in various different ways, refer to: [Opening files in Warp](https://docs.warp.dev/code-editor#opening-files-in-warp) {% endhint %} <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-3e295beac4f441f221dddee6b480b4d3ea792ffa%2Feditting_diff.png?alt=media" alt=""><figcaption><p>Editing the code diff directly in Warp's native code editor.</p></figcaption></figure> ### Demo: Editing Agent Code in Warp Here's an example from [Warp University](https://www.warp.dev/university), where Zach demonstrates a how to review and edit Agent code diffs natively in Warp: {% embed url="<https://www.youtube.com/watch?time_continue=111&v=dm-P63USsVg>" %} --- # Source: https://docs.warp.dev/knowledge-and-collaboration/rules.md # Rules Warp’s **Rules** feature lets you create reusable guidelines that inform how agents respond to your prompts. Rules help tailor responses to match your coding standards, project conventions, and personal preferences, making agent interactions smarter and more consistent. Warp supports two types of rules: **Global Rules** and **Project Rules**. {% embed url="<https://youtu.be/fDr0-3bLxMQ>" %} ## Global Rules Global Rules apply across all projects and contexts. They're ideal for: * Coding standards and best practices * Workspace-wide guidelines * Tool configurations or preferences you want applied everywhere Warp may also suggest Global Rules based on your usage patterns to make future interactions smarter and more consistent. ## Project Rules Project Rules live in your codebase and apply automatically when working within that project. They're stored in an `AGENTS.md` file (or `WARP.md` for backwards compatibility) and can be: * Placed in the root of your repository * Added in subdirectories for more targeted guidance {% hint style="info" %} Warp uses `AGENTS.md` as the default project rules file. Existing `WARP.md` files are still fully supported—if you have `WARP.md`, it will continue to work as expected. You can also rename `WARP.md` to `AGENTS.md` at any time without additional changes. {% endhint %} {% hint style="warning" %} The filename must be in **all caps** for Warp to recognize it (e.g., `AGENTS.md`, not `agents.md` or `Agents.md`). We recommend creating `AGENTS.md` for new projects. {% endhint %} **When you're in a directory:** * Warp automatically applies the `AGENTS.md` (or `WARP.md`) in the root and in the current directory. * If you edit files in another subdirectory, Warp makes a best-effort attempt to include that subdirectory's rules file as well. Example project structure: ``` project/ api/ AGENTS.md # API-specific rules ui/ AGENTS.md # UI-specific rules AGENTS.md # Project-wide rules ``` How Warp applies these Project Rules: * **If the current directory is `ui/`** * Automatically applied: `project/AGENTS.md` and `project/ui/AGENTS.md` * Best effort: `project/api/AGENTS.md` if editing files there * **If the current directory is `api/`** * Automatically applied: `project/AGENTS.md` and `project/api/AGENTS.md` * Best effort: `project/ui/AGENTS.md` if editing files there ### **Rules precedence** When multiple rules apply, Warp follows this order of precedence: 1. Rules in the current subdirectory's project rules file 2. Rules in the root directory's project rules file 3. Global Rules This ensures the most specific, project-relevant rules take priority over broader ones. *** ## How to access Rules * From [Warp Drive](https://docs.warp.dev/knowledge-and-collaboration/warp-drive): Personal > Rules * From the [Command Palette](https://docs.warp.dev/terminal/command-palette): search for "Open AI Rules" * From the Settings panel: `Settings > AI > Knowledge > Manage Rules` * Here, you can manage both Global as well as Project Rules. * From the macOS Menu: `AI > Open Rules` * From the Slash Commands menu: `/open-project-rules` to open Project Rules directly in Warp's code editor <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-e9984714550343faa2746aaf7d263fd3606c6c84%2Fproject-scoped-rules-pane.png?alt=media" alt=""><figcaption><p>Project Rules UI open in a Rules pane</p></figcaption></figure> ## How to create, edit, or delete Rules #### Global Rules * **From Warp Drive Rules pane:** `Personal > Rules > Global`\ Add, edit, or delete any number of rules. Each rule can include: * Name (optional) * Description (what the rule does and when to apply it) * **From the Slash Commands menu:** `/add-rule` in Auto or Agent input modes to create a new Global Rule (automatically opens the Warp Drive Rules pane). {% embed url="<https://www.loom.com/share/3a49462c01e149cf9c040130cebe1184?hideEmbedTopBar=true&hide_owner=true&hide_share=true&hide_title=true>" %} Rules Demo (legacy) with just Global Rules. Project rules can also be found there. {% endembed %} #### Project Rules * **When in a directory, set up Project Rules with a slash command:** Use `/init` in Auto or Natural language modes to: * Begin indexing your codebase or display indexing status * Generate an `AGENTS.md` file with initial context, or * Link an existing Rules file to `AGENTS.md` * Warp currently supports the following Rules files: `WARP.md`, `CLAUDE.md`, `.cursorrules`, `AGENT.md`, `GEMINI.md`, `.clinerules`, `.windsurfrules`, `.github/copilot-instructions.md` To view all Project Rules and open them in Warp, access it via the Warp Drive Rules pane: `Personal > Rules > Project-based` ### Rules as Agent context When relevant, Warp agents automatically pull in applicable rules to guide their responses. Rules used in an interaction will appear in the conversation under **References** or marked as derived from a specific rule. <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-87a00de59467e7881853e667870d0e3f72d04fe8%2Fcontext-derived-from-memory.png?alt=media" alt="Context derived from memory"><figcaption><p>Derived from rules</p></figcaption></figure> <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-580cbe282a47aa93d4ee6e6b0063f003a1629aa1%2Fcontext-references-memory.png?alt=media" alt="Context derived from memory"><figcaption><p>Rules as references</p></figcaption></figure> ### Rules Privacy See our [Privacy Page](https://docs.warp.dev/support-and-community/privacy-and-security/privacy) for more information on how we handle data with Rules. --- # Source: https://docs.warp.dev/university/how-warp-uses-warp/running-multiple-agents-at-once-with-warp.md # Running Multiple Agents At Once With Warp {% embed url="<https://youtu.be/w0bJFC0u0pE?si=XdP88cSCMXTK6Ec5>" %} ### 1. Why Multiple Agents Matter Sometimes you need to work on several coding tasks at once — fix a PR, add a feature, debug a build — without losing context.\ \ Warp lets you run multiple agent tasks simultaneously, all within one workspace. *** ### 2. How It Works Each agent runs in its own thread, complete with: * Progress tracking * Notifications when blocked or completed * Separate command histories Because Warp is a desktop app, it can send system notifications to alert you when an agent finishes or when it needs review. *** ### 3. Example: Reverting a PR and Editing a Shortcut Ben uses voice mode to quickly start tasks. Prompt Example:\ “Find the PR where we added the keyboard shortcut to the UDI input and revert it.” He pastes in the PR number, and the agent: * Locates the relevant diff * Reverts the change automatically * Pushes it to the correct branch Warp notifies him when the task completes. Then, he runs another prompt: Prompt Example:\ “Change the keyboard shortcut to `Cmd + Shift + I`.” Warp modifies `input.rs`, previews the diff, and Ben applies the change directly from Warp. *** ### 4. Managing Multiple Tasks You can switch between concurrent agents: * Each task appears in a Task List panel * Completed, canceled, and running tasks are color-coded * Toast notifications appear when tasks are blocked You can even fast-forward agents to auto-approve all code diffs once you trust their trajectory. *** ### 5. Parallel Contexts In another repo, Ben adds a new Eval test via a different agent: Prompt Example:\ “Create a Python hello world function and verify it prints ‘Hello World.’” Warp’s second agent: * Locates the correct file * Writes the test code * Verifies execution Meanwhile, the first agent continues working on the keyboard shortcut task. *** ### 6. Reviewing All Active Agents Open the Agent Mode Dashboard to see: * Active tasks * Completed tasks * Logs and outputs You can refine or cancel tasks mid-run if needed, or switch back to manual commands. --- # Source: https://docs.warp.dev/agent-platform/ambient-agents/managing-ambient-agents/scheduled-agents.md # Scheduled Agents Warp's Scheduled Agents let you run Ambient Agents automatically on a **recurring schedule**. They are designed for routine, repeatable tasks that should happen without manual intervention, such as dead code cleanup, dependency maintenance, issue triage, or periodic refactors. {% embed url="<https://www.youtube.com/watch?feature=youtu.be&v=wX9cDbsRXHs>" %} Scheduled Agents run in the background on Warp’s infrastructure. Each run starts from a clean session, executes a fixed prompt, and produces its own task and session history that can be inspected after the fact. *** ### What are Scheduled Agents? A Scheduled Agent is an [Ambient Agent](https://docs.warp.dev/agent-platform/ambient-agents/ambient-agents-overview) that runs on a cron-based schedule. **Key characteristics:** * Runs automatically based on a cron expression. * Uses a fixed prompt defined at schedule creation time. * Starts a fresh agent session for every run. * Executes in a specific Warp Environment, if provided. * Consumes AI credits when it runs. * Can be paused, updated, or deleted at any time. Scheduled Agents are ideal for work that should happen regularly and predictably, without needing a human to trigger the agent manually. ### Common Use Cases Scheduled Agents are best suited for maintenance-style workflows, including: * Dead code or unused feature flag cleanup. * Dependency updates or security scans. * Issue or PR triage on a recurring cadence. * Periodic documentation refreshes. * Repository hygiene tasks like formatting or lint checks. * Scheduled reporting or audits. Because each run is isolated, Scheduled Agents are safe to use for tasks that benefit from a clean, repeatable execution environment. *** ### Scheduling Agents with the Warp CLI Warp Scheduled Agents are managed through the warp schedule family of CLI commands. All scheduling operations require the Warp CLI and an authenticated session #### Creating a Schedule Use `warp schedule create` (with required flags) to define a new Scheduled Agent. **Each schedule requires:** * A name, for identification. * A cron schedule. * A prompt that the agent will execute. * An optional environment in which the agent will run. * An optional [model selection](https://docs.warp.dev/reference/cli/README#using-agent-profiles). * [Optional MCP server configuration](https://docs.warp.dev/agent-platform/ambient-agents/mcp-servers-for-agents). ```bash warp schedule create \ --name=NAME \ --cron=SCHEDULE \ --prompt=PROMPT \ [--environment=ENVIRONMENT_ID] ``` {% hint style="info" %} Currently, environments are never required - if you don't specify one, the scheduled agent runs in a barebones sandbox. {% endhint %} **Example** The following command schedules an agent to clean up old feature flags every four days: ```bash warp schedule create \ --name "Feature Flag Cleanup" \ --cron "0 10 */4 * *" \ --prompt "Scan the repository for stale feature flags and remove any that are no longer referenced. Open a PR with the changes and include a summary." \ --environment "KB1ndNMQAs5kjPdX2jatA8" ``` Once created, the agent will automatically run at the specified times without further action. Scheduled Agents support the same [model selection](https://docs.warp.dev/reference/cli/) and [MCP server configuration](https://docs.warp.dev/agent-platform/ambient-agents/mcp-servers-for-agents) as other Ambient Agent triggers. This allows you to control which model is used for scheduled runs and to equip agents with external tools via MCP, such as issue trackers, CI systems, or internal services. #### Cron Schedule Format Warp uses standard cron syntax to define schedules. A cron expression consists of five fields: ``` minute hour day-of-month month day-of-week ``` For example: * `0 10 * * *` runs every day at 10:00 AM. * `0 10 */4 * *` runs every four days at 10:00 AM. * `0 8 1 * *` runs at 8:00 AM on the first day of every month. Make sure your cron expression reflects the cadence you want, as Scheduled Agents will run exactly according to this schedule. ### Listing Scheduled Agents To view all Scheduled Agents for your team, use: ```bash warp schedule list ``` This command prints a table with details about each schedule, including: * Schedule ID * Name * Cron schedule * Paused * Last run time * Next scheduled run * Current status (active or paused) * Scope | ID | Name | Schedule | Last Ran | Next Run | Scope | Paused | | ------ | -------------------- | -------------- | -------------------------------------------- | --------------------- | ----- | ------ | | abc123 | Feature Flag Cleanup | `10 0 */4 * *` | `2025-11-24 10:00 AM<task id><session link>` | `2025-11-28 10:00 AM` | Team | No | | def456 | Issue Triage | `8 0 0 1 * *` | `2025-11-24 10:00 AM<task id><session link>` | Paused | - | Yes | Each completed run also includes links to: * The task created by the agent. * The full agent session, including logs and outputs. This makes it easy to audit what ran, when it ran, and what the agent did. #### Viewing a Specific Scheduled Agent Use `warp schedule get` to view detailed information about a single Scheduled Agent. ```bash warp schedule get SCHEDULE_ID ``` This command returns additional details not shown in the list view, including: * Full schedule configuration * Prompt and model configuration * Environment and MCP settings * Recent runs and execution metadata * Links to related tasks and agent sessions This is useful when auditing behavior, debugging failures, or reviewing how a Scheduled Agent is configured. ### Pausing and Unpausing Schedules Scheduled Agents can be temporarily disabled without deleting them. ```bash warp schedule pause SCHEDULE_ID ``` When paused, the agent will not run at its scheduled times. **Example** ```bash warp schedule pause abc123 ``` #### Unpausing a Schedule ```bash Unpausing a Schedule ``` Once unpaused, the agent resumes running according to its original cron schedule. ### Editing Scheduled Agents You can modify an existing schedule using warp schedule update. You may update one or more properties at a time, including: * The schedule name. * The cron schedule. * The prompt used for future runs. * The environment used for execution. * The model and MCP configuration used for future runs. #### Command ```bash warp schedule update SCHEDULE_ID \ [--name=NAME] \ [--schedule=SCHEDULE] \ [--prompt=PROMPT] \ [--environment=ENVIRONMENT_ID] ``` #### Examples Change when a scheduled agent runs, leaving everything else unchanged: ```bash warp schedule update abc123 --schedule "0 9 */4 * *" ``` Update the environment used for future runs: ```bash warp schedule update abc123 --environment=jkl789 ``` Changes apply only to future runs. Past runs and their session history remain unchanged. ### Deleting a Scheduled Agent To permanently remove a schedule, use: ```bash warp schedule delete SCHEDULE_ID ``` **Example** ```bash warp schedule delete abc123 ``` Deleting a schedule immediately stops all future runs. Previous runs and their session history remain accessible for auditing and review. *** ### Execution Model and Behavior Each scheduled run behaves like a standard Ambient Agent run, with a few important guarantees: * Every run starts a fresh session. * No state is carried over between runs unless your environment explicitly persists data. * Runs execute automatically without human intervention. * All usage is billed to the team’s shared AI credit balance. If a scheduled run fails, it does not block future runs. Each execution is independent. ### Permissions and Responsibility Scheduled Agents are created and managed by authorized users on a Warp team. By creating a Scheduled Agent, you are responsible for: * The cron schedule and how often the agent runs. * The instructions provided in the prompt. * The environment and integrations the agent has access to. * The AI credits consumed by scheduled executions. Carefully review prompts and schedules before deploying them broadly, especially for agents that can modify production code or infrastructure. ### When to Use Scheduled Agents vs Triggers Scheduled Agents are best when work should happen on a predictable cadence. If you want an agent to run in response to an event, such as a Slack mention, PR update, or issue change, use triggered Ambient Agents instead. Many teams use both together: triggers for reactive workflows, and Scheduled Agents for proactive maintenance. --- # Source: https://docs.warp.dev/support-and-community/privacy-and-security/secret-redaction.md # Secret Redaction ## How to access it Disabled by default, to enable Secret Redaction open `Settings > Privacy > Secret redaction` or type in "Secret Redaction" to toggle it in the [Command Palette](https://docs.warp.dev/terminal/command-palette). ## How it works Secret Redaction attempts to detect sensitive data (including secrets, passwords, API keys, and PII) using your list of regex patterns. Any identified secret will be redacted instead of being sent to our servers or any LLM provider. Additionally, Warp Drive will prevent you from saving any secrets in plain text (workflows, MCP servers, prompts, etc.).\ \ Warp ships with a [list of recommended regex](#secret-regex-list) you can easily add to the list. Additionally you can add custom regex for secrets you want to include in `Settings > Privacy > Secret redaction > Custom secret redaction`. ## Visually hiding secrets By default, identified secrets will be displayed with a strikethrough visual treatment, i.e. ` echo`` `` `~~`password`~~. If instead you'd prefer to visually hide the secrets as well, i.e. `echo ********`, the setting to obfuscate secrets with asterisks can be found in `Settings > Privacy > Secret redaction > Hide secrets in blocklist`. Clicking on a secret will display a tooltip that lets you reveal the secret or copy the secret's contents. When trying to copy terminal output containing secrets, it will be copied as asterisks (e.g. `echo password` becomes `echo ********`) unless revealed or copied from the tooltip. Secret redaction is not applied in [Session Sharing](https://docs.warp.dev/warp/knowledge-and-collaboration/session-sharing/). ## Case sensitivity Secret redaction regexes are case-sensitive by default (i.e. the regex `password` will not match the text `Password`). If you want a regex to be case-sensitive, you can prepend `(?i)` like so: `(?i)password` to ensure that `PASSWORD`, `Password`, and `password` would all match. ## Secret Regex List Here is a list of the recommended regular expressions that Warp uses to identify secrets: | Secret Type | Regex Pattern | | ----------------------------------------- | ----------------------------------------------------------------------------------------- | | IP V4 Address | `\b((25[0-5]\|(2[0-4]\|1\d\|[1-9]\|)\d)\.?\b){4}\b` | | IP V6 Address | `\b((([0-9A-Fa-f]{1,4}:){1,6}:)\|(([0-9A-Fa-f]{1,4}:){7}))([0-9A-Fa-f]{1,4})\b` | | Slack App Token | `\bxapp-[0-9]+-[A-Za-z0-9_]+-[0-9]+-[a-f0-9]+\b` | | Phone Number | `\b(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4}\b` | | AWS Access ID | `\b(AKIA\|A3T\|AGPA\|AIDA\|AROA\|AIPA\|ANPA\|ANVA\|ASIA)[A-Z0-9]{12,}\b` | | MAC Address | `\b((([a-zA-z0-9]{2}[-:]){5}([a-zA-z0-9]{2}))\|(([a-zA-z0-9]{2}:){5}([a-zA-z0-9]{2})))\b` | | Google API Key | `\bAIza[0-9A-Za-z-_]{35}\b` | | Google OAuth ID | `\b[0-9]+-[0-9A-Za-z_]{32}\.apps\.googleusercontent\.com\b` | | Github Classic Personal Access Token | `\bghp_[A-Za-z0-9_]{36}\b` | | Github Fine Grained Personal Access Token | `\bgithub_pat_[A-Za-z0-9_]{82}\b` | | Github OAuth Access Token | `\bgho_[A-Za-z0-9_]{36}\b` | | Github User to Server Token | `\bghu_[A-Za-z0-9_]{36}\b` | | Github Server to Server Token | `\bghs_[A-Za-z0-9_]{36}\b` | | Stripe Key | `\b(?:r\|s)k_(test\|live)_[0-9a-zA-Z]{24}\b` | | Firebase Auth Domain | `\b([a-z0-9-]){1,30}(\.firebaseapp\.com)\b` | | JSON web token | `\b(ey[a-zA-z0-9_\-=]{10,}\.){2}[a-zA-z0-9_\-=]{10,}\b` | | OpenAI API Key | `\bsk-[a-zA-Z0-9]{48}\b` | | Anthropic API Key | `\bsk-ant-api\d{0,2}-[a-zA-Z0-9\-]{80,120}\b` | | Fireworks API Key | `\bfw_[a-zA-Z0-9]{24}\b` | --- # Source: https://docs.warp.dev/agent-platform/agent/using-agents/agent-context/selection-as-context.md # Selection as Context ### Attaching selections from Warp's native code editor When you have Warp’s [native code editor](https://docs.warp.dev/code/code-editor/) open beside a regular pane, you can easily attach specific lines of code as context: 1. **Select text** in the editor. A tooltip will appear in the bottom-right corner of the selection. 2. **Add as context** by clicking the tooltip or using the keyboard shortcuts `Cmd + L` (macOS) or `CTRL + SHIFT + L` (Windows or Linux). 3. Warp automatically adds the relative file path and context, in addition to the line numbers of the hunk, as a formatted string into the prompt. This makes it easy to highlight just the lines you want the Agent to analyze or modify. <figure><img src="https://769506432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAULCelT4yIUOcSwWWvPk%2Fuploads%2Fgit-blob-a89c3696c9e73dd6a438ef8b2882033e9450d338%2Fselection-as-context.png?alt=media" alt=""><figcaption><p>Selecting a function and attaching it as context from Warp's native code editor.</p></figcaption></figure> ### Attaching selections from Warp’s Code Review panel You can also directly attach context from the [Code Review panel](https://docs.warp.dev/code/code-review/): 1. Hover over any **diff hunk** to reveal the option to attach it as context. <figure><img src="https://769506432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAULCelT4yIUOcSwWWvPk%2Fuploads%2Fgit-blob-c30d5ecb033398472f18c58d7e4144b7d44bd5c7%2FAdd%20diff%20as%20context.png?alt=media" alt=""><figcaption><p>On-hover option to attach diff as context into the prompt.</p></figcaption></figure> 2. Attaching a diff will automatically insert the relevant file path and changed lines into your prompt. This helps the Agent understand exactly what has been modified, making it easier to request explanations, feedback, or follow-up edits. <figure><img src="https://769506432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAULCelT4yIUOcSwWWvPk%2Fuploads%2Fgit-blob-47423aa917a4c53595a1eda0523841bdfd86cbaf%2Fgit%20diff%20full%20view.png?alt=media" alt=""><figcaption><p>Code Review panel with diffs for review.</p></figcaption></figure> --- # Source: https://docs.warp.dev/support-and-community/troubleshooting-and-support/sending-us-feedback.md # Sending Feedback & Logs ### Sending Warp feedback * Open a new bugs or feature request in our [GitHub repository](https://github.com/warpdotdev/warp/issues/new/choose). * Join our [Warp Community Slack](https://go.warp.dev/join-preview) and share feedback in **#feedback-general**, or **#feedback-preview** if it is specific to [Warp Preview](https://docs.warp.dev/support-and-community/community/warp-preview-and-alpha-program). * Join our [Discord](https://discord.com/invite/warpdotdev) server, and ask questions or share feedback in [`#questions-and-feedback`](https://discord.com/channels/851854972600451112/1154432424873296012). * For security issues or questions, email <security@warp.dev>. * For questions about privacy, email <privacy@warp.dev>. #### Subscriber and Enterprise * For subscriber technical issues or questions (bugs, credits, etc.), email <support@warp.dev>. * For subscriber billing issues or questions (refunds, cancellation, etc.), email <billing@warp.dev>. * For enterprise, please direct all feedback and issues to your designated Slack Channel. <figure><img src="https://2974137108-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD4dBaHbuMVNs0iB2iqZ1%2Fuploads%2Fgit-blob-9268c761926444cfe505027d78b13dcce21275d0%2Fsend-feedback-demo.gif?alt=media" alt="sending feedback from the mac menu and warp essentials"><figcaption><p>Send Feedback</p></figcaption></figure> ## Gathering Warp Logs You can retrieve Warp's logs by following the instructions for your platform below. Locate the log file and attach it to your GitHub issue or email. {% hint style="info" %} Warp's logs and crash reports ***do not*** contain any console input or output. See more on how we handle [Crash Reports and Telemetry](https://docs.warp.dev/support-and-community/privacy-and-security/privacy#what-telemetry-data-are-you-collecting-and-why). {% endhint %} {% tabs %} {% tab title="macOS" %} The Warp log files are located at `~/Library/Logs/`. **Warp logs on macOS** Run the following to zip the Warp logs to your Desktop: ```bash zip -j ~/Desktop/warp-logs.zip ~/Library/Logs/warp.log* ``` **Warp Preview logs on macOS** Run the following to zip the Warp Preview logs to your Desktop: ```bash zip -j ~/Desktop/warp_preview-logs.zip ~/Library/Logs/warp_preview.log* ``` {% hint style="warning" %} If your issue is graphical (e.g. no display of windows) or a crash, please run Warp with the following command to capture more log information: ```bash # Run if Warp on macOS is installed RUST_LOG=wgpu_core=info,wgpu_hal=info /Applications/Warp.app/Contents/MacOS/stable # Run if Warp Preview on macOS is installed RUST_LOG=wgpu_core=info,wgpu_hal=info /Applications/WarpPreview.app/Contents/MacOS/preview ``` {% endhint %} {% endtab %} {% tab title="Windows" %} The Warp log files are located at `$env:LOCALAPPDATA\warp\Warp\data\logs\`. **Warp logs on Windows** Close Warp and run the following from another terminal to zip the logs to your Desktop: ```powershell Compress-Archive -Path "$env:LOCALAPPDATA\warp\Warp\data\logs\warp.log*" -DestinationPath "$([Environment]::GetFolderPath('Desktop'))\warp-logs.zip" ``` **Warp Preview logs on Windows** Close Warp Preview and run the following from another terminal to zip the logs to your Desktop: ```powershell Compress-Archive -Path "$env:LOCALAPPDATA\warp\WarpPreview\data\logs\warp_preview.log*" -DestinationPath "$([Environment]::GetFolderPath('Desktop'))\warp_preview-logs.zip" ``` {% hint style="warning" %} If your issue is graphical (e.g. no display of windows) or a crash, please run Warp with the following command to capture more log information: ```powershell # Run if Warp on Windows is installed for a single user $env:RUST_LOG="wgpu_core=info,wgpu_hal=info"; & "$env:LOCALAPPDATA\Programs\Warp\warp.exe" # Run if Warp on Windows is installed for all users $env:RUST_LOG="wgpu_core=info,wgpu_hal=info"; & "$env:PROGRAMFILES\Warp\warp.exe" # Run if Warp Preview on Windows is installed for a single user $env:RUST_LOG="wgpu_core=info,wgpu_hal=info"; & "$env:LOCALAPPDATA\Programs\WarpPreview\preview.exe" # Run if Warp Preview on Windows is installed for all users $env:RUST_LOG="wgpu_core=info,wgpu_hal=info"; & "$env:PROGRAMFILES\WarpPreview\preview.exe" ``` {% endhint %} {% endtab %} {% tab title="Linux" %} The Warp log files are located at `~/.local/state/warp-terminal/`. **Warp logs on Linux** Run the following to zip the Warp logs to your home directory: ```bash tar -czf ~/warp-logs.tar.gz -C ~/.local/state/warp-terminal warp.log* ``` **Warp Preview logs on Linux** Run the following to zip the Warp Preview logs to your home directory: ```bash tar -czf ~/warp_preview-logs.tar.gz -C ~/.local/state/warp-terminal-preview warp_preview.log* ``` {% hint style="warning" %} If your issue is graphical (e.g. no display of windows) or a crash, please run Warp with the following command to capture more log information: <pre class="language-bash"><code class="lang-bash"># Run if Warp on Linux is installed <strong>RUST_LOG=wgpu_core=info,wgpu_hal=info MESA_DEBUG=1 EGL_LOG_LEVEL=debug warp-terminal </strong> # Run if Warp Preview on Linux is installed RUST_LOG=wgpu_core=info,wgpu_hal=info MESA_DEBUG=1 EGL_LOG_LEVEL=debug warp-terminal-preview </code></pre> {% endhint %} {% endtab %} {% endtabs %} ## Gathering AI debugging ID <a href="#gathering-ai-debugging-id" id="gathering-ai-debugging-id"></a> To gather the debugging ID, `RIGHT-CLICK` on the AI conversation block in question and select "Copy debugging ID", then paste that into the [bug report](#sending-warp-feedback) that you submit so that our team can investigate the issue. Whenever there is an error in the Agent Conversation, there will also be an option to directly copy the debugging ID for the bug report. <figure><img src="https://2974137108-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD4dBaHbuMVNs0iB2iqZ1%2Fuploads%2Fgit-blob-e7404c6201c657b444be485af3941d97f7024e67%2Fsend-feedback-debugging-information.png?alt=media" alt=""><figcaption></figcaption></figure> --- # Source: https://docs.warp.dev/university/mcp-servers/sentry-mcp-fix-sentry-error-in-empower-website.md # Sentry MCP: Fix Sentry Error in Empower Website {% hint style="info" %} This tutorial is based solely on the provided transcript. It teaches how to use the **Sentry MCP Server** within Warp to fetch live error data from Sentry, analyze stack traces, and automatically generate fixes for issues in your codebase. {% endhint %} {% embed url="<https://youtu.be/rrxfS9u1XRA?si=fVUfjQJSOlyLFBJT>" %} ### Overview The **Sentry MCP server** gives Warp’s AI agents access to authenticated Sentry error data.\ This enables detailed diagnostics and automated fixes that would otherwise be impossible using AI alone. You’ll learn how to: * Connect the Sentry MCP server inside Warp. * Trigger live error retrieval from Sentry. * Diagnose code issues and generate patches automatically. * Integrate Sentry debugging into your daily development loop. {% stepper %} {% step %} **Set Up the Sentry MCP Server** Open the MCP panel in Warp: * Mac: Cmd + Shift + P * Windows/Linux: Ctrl + Shift + P\ Search for “MCP” and select the **MCP Panel**. Click **Add**, then paste your configuration: {% code title="sentry-mcp-config.json" %} ```json { "sentry": { "command": "npx", "args": [ "-y", "mcp-remote@latest", "https://mcp.sentry.dev/mcp" ], "env": {}, "working_directory": null } } ``` {% endcode %} Save the configuration and ensure it appears in the MCP panel. {% endstep %} {% step %} **Run Your App and Trigger an Error** We're using the [**Empower Plant** repository](https://github.com/sentry-demos/empower) — Sentry’s official demo project. This fake e-commerce app includes a React frontend and multiple backends, each containing intentional bugs for testing. Run the app locally: ```bash npm install npm start ``` Open the site in your browser and trigger a few known errors. {% endstep %} {% step %} **Capture the Error in Sentry** 1. Go to your **Sentry Dashboard**. 2. Locate the triggered issue (for example, a `TypeError`). 3. Copy the issue’s URL from the Sentry interface. Example: ``` https://sentry.io/organizations/demo/issues/12345/ ``` {% endstep %} {% step %} **Diagnose the Error Using Warp** Back in Warp, prompt the AI agent to fetch and analyze the issue: ``` Diagnose this Sentry error and show where it’s coming from in my code. Create a fix. ``` The Sentry MCP calls `getIssueDetails`, fetching the stack trace and error metadata directly from Sentry. Warp then scans your local codebase, cross-references the error location, and identifies the root cause. From this example: > The issue was caused by calling `.toUpperCase()` on an array instead of a string. Warp’s agent automatically writes a fix — changing the code to handle the array properly. {% endstep %} {% step %} **Apply the Generated Fix** Warp produces a suggested code change inline. Review the diff and apply it automatically with one click. {% endstep %} {% step %} **Integrate Into Your Workflow** Use Sentry MCP whenever you encounter production or staging errors. Warp can pull the latest issues, analyze them, and suggest patches. Ideal for: * Debugging live production errors. * Triaging complex stack traces. * Creating immediate hot-fixes without switching tools. {% hint style="success" %} With Sentry MCP, Warp becomes a live debugging console — connecting your code editor, terminal, and Sentry into a single intelligent feedback loop. {% endhint %} {% endstep %} {% endstepper %} --- # Source: https://docs.warp.dev/terminal/sessions/session-navigation.md # Session Navigation ## How to access Session navigation 1. Open the Session Navigation palette with the [Command Palette](https://docs.warp.dev/terminal/command-palette), click on **session >\_** or type in "sessions:". 2. Jump to a session by using your mouse or the `UP ↑`/`DOWN ↓` arrow keys and `ENTER`. 3. Refine the session results by searching for sessions by prompt, the currently running command, last run command, and command status (ex: “Running…”, “Completed 10 minutes ago”, “Empty Session”). {% hint style="info" %} Sessions are ordered by recency, so the most recently focused sessions show up first. The Session Navigation palette does not have **PS1** support and can only show Warp's native prompt. {% endhint %} ### CTRL-TAB Behaviour `CTRL-TAB` shortcut defaults to activate the previous / next [Tabs](https://docs.warp.dev/terminal/windows/tabs). You can configure the shortcut to cycle the most recent session, including any [Split Panes](https://docs.warp.dev/terminal/windows/split-panes), in `Settings > Features > Keys > Ctrl-Tab behavior` ## How Session Navigation Works {% embed url="<https://www.loom.com/share/2147adc6749c4f4ea5da432eadda7995>" %} Session Navigation Demo {% endembed %} --- # Source: https://docs.warp.dev/terminal/sessions/session-restoration.md # Session Restoration ## What is it Session restoration allows you to quickly pick up where you left off in your previous terminal session. ## How to access Session Restoration * Session Restoration comes enabled by default in Warp. {% hint style="info" %} On Linux, opening windows at a specific position is not supported in Wayland. {% endhint %} * You can disable Session Restoration by going to `Settings > Features`, then toggling off `Restore windows, tabs, and panes on startup`. {% hint style="warning" %} Toggling off Session Restoration will not clear the [SQLite database](#session-restoration-database); however, Warp will stop recording new output. {% endhint %} ## How Session Restoration works ![Session Restoration Demo](https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-eea5d549c432c9c124c175120bc2b901b1add9fb%2Fsessions-block_restoration.gif?alt=media) #### Session Restoration database Warp saves the data from your previous session's windows, tabs, and panes to a SQLite database on your computer, and every time you quit the app, this data is overwritten by your latest session. You can open the database directly and inspect its full contents like so: {% tabs %} {% tab title="macOS" %} ```bash sqlite3 "$HOME/Library/Group Containers/2BBY89MBSN.dev.warp/Library/Application Support/dev.warp.Warp-Stable/warp.sqlite" ``` {% endtab %} {% tab title="Windows" %} ```powershell sqlite3 $env:LOCALAPPDATA\warp\Warp\data\warp.sqlite ``` {% endtab %} {% tab title="Linux" %} ```bash sqlite3 "${XDG_STATE_HOME:-$HOME/.local/state}/warp-terminal/warp.sqlite" ``` {% endtab %} {% endtabs %} **How to clear the Session Restoration database** Sometimes, you may want to prevent a sensitive Block from being saved on your computer, or you may want to clear blocks from a machine entirely. {% hint style="info" %} This interferes with the running session's ability to save content and may require you close Warp before running the database removal commands. {% endhint %} {% hint style="danger" %} The following guidance is destructive and will delete any sessions and block history. {% endhint %} There are two ways to do this: {% tabs %} {% tab title="macOS" %} * Clear the blocks from your running Warp session with `CMD-K`. * Delete the SQLite file entirely with the following command: ```bash rm -f "$HOME/Library/Group Containers/2BBY89MBSN.dev.warp/Library/Application Support/dev.warp.Warp-Stable/warp.sqlite" ``` {% endtab %} {% tab title="Windows" %} * Clear the blocks from your running Warp session with `CTRL-SHIFT-K`. * Delete the SQLite file entirely with the following command: ```powershell Remove-Item -Force $env:LOCALAPPDATA\warp\Warp\data\warp.sqlite ``` {% endtab %} {% tab title="Linux" %} * Clear the blocks from your running Warp session with `CTRL-SHIFT-K`. * Delete the SQLite file entirely with the following command: ```bash rm -f "${XDG_STATE_HOME:-$HOME/.local/state}/warp-terminal/warp.sqlite" ``` {% endtab %} {% endtabs %} --- # Source: https://docs.warp.dev/knowledge-and-collaboration/session-sharing.md # Session Sharing {% hint style="warning" %} This action sends command information to Warp’s servers and is explicitly opt-in. Read more about privacy for cloud features in the [privacy overview](https://www.warp.dev/privacy/overview). {% endhint %} <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-49346a9f4cbf5ef87cdada308b4f7708d41fc938%2Fsession_sharing_preview.png?alt=media" alt=""><figcaption><p>Session Sharing allows multiple teammates to edit the input at the same time</p></figcaption></figure> ### Share a session To start sharing: 1. From the [Command Palette](https://docs.warp.dev/terminal/command-palette), search for and select "Share New Session" or "Share Current Session". 2. From the Pane header overflow menu, select "Start Session sharing" 3. From the `RIGHT-CLICK` context menu, select "Share session..." #### How to control a starting point for sharing If you select to share a current session, you will be given the option to share without scrollback or from the start of the session. When you share access from the start of a session (with scrollback), collaborators will be able to view and interact with your entire session history including command outputs from before sharing was initiated. If you initiate a shared session using Block actions, you will be given the option to start sharing from the selected block onwards. This option gives you the precision to select a specific block of output in your session history as the starting point, excluding all previous scrollback before that block. <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-9eff70e46ce75eaed56052c14b2b54226d0e1b61%2Fstart-session-sharing.png?alt=media" alt=""><figcaption><p>Start sharing from a selected block onward or an entire session with or without scrollback</p></figcaption></figure> #### How to allow access to collaborators in your session After starting a shared session, Warp will copy a link to your clipboard that you can share. Share links open the Warp's native app or the Web. {% hint style="warning" %} By default the links are restricted to only emails that have access. It’s critical you only share your session links in private channels with known teammates and approved collaborators. Do not include your session-sharing links in any public forums. {% endhint %} You can adjust who has view or edit access to your session and specifically: * Add emails to grant access * Allow anyone with the link * Allow anyone on your team * Revoke edit access from collaborators * Remove collaborators from the session <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-cbc2de4884896428461d94ea4930edf5e4e45345%2Fsession-who-has-access.png?alt=media" alt=""><figcaption><p>Update permissions through the share icon</p></figcaption></figure> When somebody accesses your shared session, they will be able to: * View your session in Warp including your command line input and output * Highlight blocks and text in your session * Request control to edit and enter commands in the sharer’s session If granted access, collaborators can edit the input together in real-time and execute commands. You can also: * Reference avatars and usernames for every collaborator who has access to your session * Jump to a collaborator’s selection by clicking on their avatar <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-8bd8c322de21dbc965dc969d693a9b2469c681c9%2Fsession-sharing-native-web-demo.gif?alt=media" alt=""><figcaption><p>Session Sharing Native to Web Demo</p></figcaption></figure> #### How to end a shared session When you’re ready to end a shared session, click `Share > Stop` sharing to wrap up and close access for all collaborators. #### Multiple shared sessions You may share multiple sessions simultaneously. If you have multiple shared sessions, you will find *Other shared sessions* listed in the Share dropdown menu. You may also end multiple shared sessions at the same time with `Share > Stop` sharing all. <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-72dc9022fb52487a8704ea93fd558b45ce9c1c57%2Fswitch-stop-session-sharing%20(1).png?alt=media" alt=""><figcaption><p>Switch between shared sessions or stop all shared sessions at once</p></figcaption></figure> ### Known limitations * Even if enabled, [Secret Redaction](https://docs.warp.dev/support-and-community/privacy-and-security/secret-redaction) is not applied during session sharing. * There is a session size limit of 100MB per session, 1GB per user per day, and a maximum of 10 participants per session (excluding the sharer). These limits are subject to change. * Some of Warp's plans are limited to 5 shared sessions and the session limits do not reset. Upgrade to a [paid plan](https://www.warp.dev/pricing) to get unlimited sessions. {% hint style="info" %} If you have any questions, please email <feedback+ss@warp.dev>. {% endhint %} --- # Source: https://docs.warp.dev/terminal/sessions.md # Session Management 1. [Launch Configurations](https://docs.warp.dev/terminal/sessions/launch-configurations) supports saving a configuration of windows, tabs, and panes to open later. 2. [Session Navigation](https://docs.warp.dev/terminal/sessions/session-navigation) enables you to easily navigate to any session in Warp. 3. [Session Restoration](https://docs.warp.dev/terminal/sessions/session-restoration) automatically restores the window and tabs from your previous session. ## Launch Configuration {% embed url="<https://www.loom.com/share/daa2a9e55c27458c8bbf722d90078880?hideEmbedTopBar=true&hide_owner=true&hide_share=true&hide_title=true>" %} Launch Configuration Demo {% endembed %} ## Session Navigation {% embed url="<https://www.loom.com/share/2147adc6749c4f4ea5da432eadda7995>" %} Session Navigation Demo {% endembed %} ## Session Restoration ![Session Restoration Demo](https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-eea5d549c432c9c124c175120bc2b901b1add9fb%2Fsessions-block_restoration.gif?alt=media) --- # Source: https://docs.warp.dev/terminal/more-features/settings-sync.md # Settings Sync (Beta) ## How to toggle settings sync * You can toggle Settings Sync within the `Settings > Account` pane * Through the [Command Palette](https://docs.warp.dev/terminal/command-palette) by searching for “Settings Sync” <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-662986453e3d04b84693ebfa18afc07802c85cdf%2Fsettings-sync-account.png?alt=media" alt=""><figcaption><p>Settings Sync in Account pane</p></figcaption></figure> <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-15ccabe97d60491d7005c4f1c7fd8243bf48d542%2Fsettings-sync-palette.png?alt=media" alt=""><figcaption><p>Settings Sync in Command Palette</p></figcaption></figure> ## How settings sync works **Settings Sync** works by syncing the state of most of your Warp settings to our cloud servers. When you log in to Warp on another device or through the browser with [Session Sharing](https://docs.warp.dev/knowledge-and-collaboration/session-sharing), if you have Settings Sync enabled, most of your settings will be the same as they were when you were logged in before. That means your themes, most features, privacy settings, AI settings, **are all the same everywhere you use Warp**, saving you the time from having to set them up again. When you first enable Settings Sync, the settings from the computer you enabled it on becomes the default settings for all devices. This is true if you toggle Settings Sync off and on as well - the synced settings are always from **the last device you enabled Settings Sync on**, so toggling effectively causes all of your devices to have settings from the current logged in instance. {% hint style="info" %} Read more about privacy for cloud features in the [privacy overview](https://www.warp.dev/privacy/overview). {% endhint %} ### Non-synced settings Not all settings are synced, however. Notably, Warp does not sync: * Custom keybindings (we may in the future). Alhough, you can set [custom keybinds with a file](https://docs.warp.dev/getting-started/keyboard-shortcuts#custom-keyboard-shortcuts) * Custom themes (we may in the future) * Device specific settings (e.g. what editor you prefer using, startup shell) * Platform-specific settings are synced across devices on the same platform (e.g. your settings for how to interact with the Linux clipboard are synced across all Linux devices, but not on Mac, Windows or Web). You can tell when a setting is not synced because it will have a special cloud strikethrough icon in the settings panel. <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-697734a14c0718b40ea2513bfdbe2d6ce8d1ea82%2Fsettings-not-synced.png?alt=media" alt=""><figcaption><p>Settings not synced</p></figcaption></figure> --- # Source: https://docs.warp.dev/terminal/appearance/size-opacity-blurring.md # Size, Opacity, & Blurring ## How to use it ### Window Size To access size settings, go to `Settings > Appearance > Window`. * Enable "Open new windows with custom size", Then configure your preferred columns and rows. {% hint style="info" %} If [Session Restoration](https://docs.warp.dev/terminal/sessions/session-restoration) is enabled, Warp will restore the size of the last window closed when you quit the app. Either make sure the custom-sized window is the last one closed, or disable Session Restoration to ensure Warp launches with the custom-sized window. {% endhint %} ### Window Opacity To access it, go to `Settings > Appearance > Themes` * The slider supports setting the opacity value between `1` and `100` where `100` is completely opaque or solid. ### Window Blurring After decreasing Opacity (moving the slider to a value less than `100`), you can also blur the background. * On MacOS, this is done using the blur slider. Increasing the slider increases the blur radius that's applied to the background image. * On Windows, this is done by toggling the Acrylic background texture on or off. {% hint style="warning" %} On macOS, large blur radiuses may affect performance, especially on Retina displays. On Linux, window blurring is not supported. On Windows, some graphics drivers may not support rendering transparent or translucent windows. See below for troubleshooting tips. {% endhint %} ## How it works <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-79a7d9b64b98fad12b103e20f755d20d59d1f88c%2Fwindow_size_demo.gif?alt=media" alt="Window Size Demo"><figcaption><p>Window Size Demo</p></figcaption></figure> {% embed url="<https://www.loom.com/share/22c9ef25392e4a5e80f9e01394c84dc4?hide_owner=true&hide_share=true&hide_title=true&hideEmbedTopBar=true>" %} Window Opacity and Blurring Demo {% endembed %} ### Troubleshooting transparency on Windows {% hint style="info" %} At the moment, window opacity in Warp on Windows **does not work** in the following circumstances: * When using DirectX 12 as the rendering backend * When using any rendering backend with an Nvidia GPU when "Auto" or "Prefer layered" is selected as the value for "Vulkan/OpenGL present method" in NVIDIA Control Panel > Manage 3D Settings {% endhint %} Some graphics drivers and rendering backends may not support rendering transparent windows. You can select the Vulkan or OpenGL graphics backend to render new Warp windows in the Settings menu, under `Features` > `System` > `Preferred graphics backend`. You can also opt to render new Warp windows with an integrated GPU, under `Features` > `System` > `Prefer rendering new windows with integrated GPU (low power)`. --- # Source: https://docs.warp.dev/agent-platform/integrations/slack.md # Slack ### Overview The Slack integration lets your team trigger Warp agents directly from conversations in Slack. When you tag **@Warp** in a message or DM the bot, Warp will start an agent in the cloud, clone the repositories defined in your environment, and begin working through the task with full context from your codebase and the Slack thread. Agents keep you updated as they work, generate pull requests using your GitHub account, and share a link to a live remote session so you can watch or guide the workflow in real time. This page explains what the integration does, how it behaves inside Slack, and how to configure it for your Warp team. *** ### Using Warp inside Slack Assigning Warp to a message or tagging @Warp in a thread starts an agent run. The agent clones the repositories in your environment, sets up your development environment using your Docker image and setup commands, and begins working with the context from the Slack conversation. Warp posts updates back into the thread as it progresses so you can follow along without opening your terminal. Agents also share a link to an interactive remote session using Warp’s [Ambient Agent Session Sharing](https://docs.warp.dev/knowledge-and-collaboration/session-sharing/ambient-agents-session-sharing). Opening this link gives you a live terminal view of the cloud agent running your code. You can interrupt or steer the agent by providing additional instructions, and the agent will pick up where it left off with the new context. When the work is complete, Warp will create a pull request on your behalf using your GitHub permissions and send a summary and PR link back to the original Slack thread. ### Triggering an agent You can start an agent in three ways: * **Tag @Warp in a channel message** Describe the task, and Warp will begin working with full context from the thread. * **Tag @Warp inside a thread** Warp will automatically collect the thread’s prior messages and use them as context. * **DM Warp directly** Useful for private tasks or experimentation. Warp will acknowledge the request in Slack and start running the task immediately. ### Monitoring agent progress Agents keep you informed directly in Slack via: * Activity updates showing progress throughout the run * An evolving task list and timeline * Checkpoints indicating major steps completed * A session-sharing link that opens a live terminal view of the remote agent [Ambient Agents Session Sharing](https://docs.warp.dev/knowledge-and-collaboration/session-sharing/ambient-agents-session-sharing) works in Warp or in your browser and supports multiple teammates joining the same live session. ### Joining the live remote session Selecting `View agent` opens the active agent session. Inside the session you’ll see: * The agent’s full execution log * The plan/task list * Real-time output just like a local Warp task * An input box for follow-up instructions Any instruction you type will interrupt the agent, incorporate the new guidance, and then resume execution. This is the best way to debug or steer multi-step tasks. ### Pull requests and output Once the agent finishes, it will: * Commit changes using your GitHub account * Create a pull request via the GitHub CLI * Generate a clean title and description referencing your Slack request * Post the summary and PR link directly into the Slack thread Because PRs are created as you, the workflow slots seamlessly into your team’s existing review process. *** ### Requirements * Cloud agents are available only to paid Warp users. * You must be logged into Warp with the same email used in your Slack workspace. * You must authorize the **Warp GitHub app** the first time you trigger a Slack integration request. * The repositories involved must be included in your environment and accessible to the Warp GitHub app. * You must have write access for Warp to open PRs on your behalf. ### How to configure the Slack integration Setup involves two steps, powered by the [Warp CLI](https://docs.warp.dev/reference/cli/README). #### 1. Create an environment An environment defines everything the agent needs to run your code in the cloud: * A Docker image (public on Docker Hub) * The GitHub repos the agent should clone * Optional setup commands that run before the agent starts Create an environment via: * **Warp CLI** ```bash warp environment create \ --name <name> \ --docker-image <image> \ --repo <owner/repo> \ --setup-command "<command>" ``` * **Guided setup using `/create-environment`** ( [Slash Commands](https://docs.warp.dev/agent-platform/agent/slash-commands)) This flow analyzes your repos, recommends a Docker image, suggests setup commands, and can build + push a custom image if needed. See the [Environment Setup](https://docs.warp.dev/agent-platform/integrations/integrations-overview) docs for detailed instructions. #### 2. Create the Slack integration Once your environment is ready, create the integration: ``` warp integration create slack --environment <ENV_ID> ``` The CLI will open a browser window to install the Warp app into your Slack workspace. After installation, the integration becomes available to all members of your Warp team. You can optionally attach a custom prompt that is applied to every agent run: ``` warp integration create slack \ --environment <ENV_ID> \ --prompt "Always prefix PR titles with '[WARP]' and include detailed test steps." ``` ### Identity mapping and team access * Integrations are scoped to your Warp team. * Any teammate in the same Slack workspace and Warp team can use the integration. * Warp maps Slack users to Warp accounts by email address. * Teammates must individually authorize GitHub on their first run. *** ### Uninstallation instructions To remove the Warp app from your Slack workspace: 1. Open Slack and go to **Apps** in the left sidebar. 2. Search for Warp. 3. Select the app, then open the **About** tab. 4. Click **Configuration**. This will open your workspace’s app configuration page in the browser. 5. Scroll to the bottom and select **Remove App**. 6. Confirm the removal. Once removed, Slack will immediately disable the integration for all teammates. <figure><img src="https://769506432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAULCelT4yIUOcSwWWvPk%2Fuploads%2Fgit-blob-d1cf0fe6e7b0ea723e9133bbd12361b14df3ee8b%2Fdelete-warpy.png?alt=media" alt=""><figcaption><p>Warpy is just an internal Slackbot, your Warp slackbot should be called Warp.</p></figcaption></figure> <figure><img src="https://769506432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAULCelT4yIUOcSwWWvPk%2Fuploads%2Fgit-blob-2241f1e227f9036171d894743eeeeefdf1ec6ea8%2Fremove-slack-app.png?alt=media" alt=""><figcaption></figcaption></figure> ### Troubleshooting If something isn’t working—missing repos, Slack not detecting @Warp, PR failures, or environment configuration issues—see the [Integrations Troubleshooting](https://docs.warp.dev/agent-platform/integrations-overview#troubleshooting) page. It covers: * GitHub authorization and repo access * Docker image pull errors * Environment visibility * Email and identity mismatches * Integration installation issues --- # Source: https://docs.warp.dev/agent-platform/agent/slash-commands.md # Slash Commands When using Agent Mode or Auto-Detection Mode, typing `/` in the input field opens the Slash Commands menu. <figure><img src="https://769506432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAULCelT4yIUOcSwWWvPk%2Fuploads%2Fgit-blob-d74394b5f83dd754c9a5132ccd44345c75b4b0f7%2Fslash-commands-menu.png?alt=media" alt=""><figcaption><p>Slash Commands menu</p></figcaption></figure> As you type, the menu filters results in real time, making it easy to find and run the command or prompt you need. ## Static Slash Commands Warp currently supports the following built-in Slash Commands: <table><thead><tr><th width="211.64453125">Slash Command</th><th>Description</th></tr></thead><tbody><tr><td><code>/add-mcp</code></td><td>Add a new <a href="https://docs.warp.dev/knowledge-and-collaboration/mcp">MCP server</a>.</td></tr><tr><td><code>/add-prompt</code></td><td>Add a new <a href="https://docs.warp.dev/knowledge-and-collaboration/warp-drive/prompts">Agent Prompt</a> in Warp Drive.</td></tr><tr><td><code>/add-rule</code></td><td>Add a new <a href="https://docs.warp.dev/knowledge-and-collaboration/rules">Global Rule</a> for the Agent.</td></tr><tr><td><code>/compact</code></td><td>Free up context by summarizing convo history.</td></tr><tr><td><code>/create-environment</code></td><td>Create a <a href="https://docs.warp.dev/agent-platform/integrations/integrations-overview">Warp Environment</a> (Docker image + repos) via guided setup. <code>*</code></td></tr><tr><td><code>/create-new-project</code></td><td>Have the agent walk you through creating a new coding project. <code>*</code></td></tr><tr><td><code>/diff-view</code></td><td>Open the <a href="https://docs.warp.dev/code/reviewing-code">diff view pane</a>.</td></tr><tr><td><code>/fork</code></td><td><a href="using-agents/agent-conversations/conversation-forking">Forks the current conversation</a> into a new thread with the full context and history of the original.<br><br>You can optionally include a prompt that will be sent immediately in the forked conversation.</td></tr><tr><td><code>/fork-and-compact</code></td><td><a href="using-agents/agent-conversations/conversation-forking">Forks the current conversation</a> and automatically compacts the forked version.<br><br>Useful when you want a fresh, summarized starting point that preserves relevant context while trimming the rest.</td></tr><tr><td><code>/index</code></td><td>Index the current codebase using <a href="https://docs.warp.dev/code/codebase-context">Codebase Context</a>.</td></tr><tr><td><code>/init</code></td><td>Index the current codebase and generate an <a href="https://docs.warp.dev/knowledge-and-collaboration/rules">AGENTS.md file</a>. <code>*</code></td></tr><tr><td><code>/new-conversation</code></td><td>Start a new <a href="using-agents/agent-conversations">agent conversation</a>.</td></tr><tr><td><code>/plan</code></td><td>Prompt the agent to do some research and create a <a href="using-agents/planning">plan</a> for a task.</td></tr><tr><td><code>/open-project-rules</code></td><td>Open the <a href="https://docs.warp.dev/knowledge-and-collaboration/rules#project-rules">Project Rules</a> file (<code>AGENTS</code>).</td></tr><tr><td><code>/view-mcp</code></td><td>View the status of your <a href="https://docs.warp.dev/knowledge-and-collaboration/mcp">MCP servers</a>.</td></tr></tbody></table> {% hint style="warning" %} Slash commands marked with a `*` consume AI credits to complete the task. {% endhint %} #### Using Prompts via Slash Commands In addition to static commands, the menu also shows [Agent Prompts](https://docs.warp.dev/knowledge-and-collaboration/warp-drive/prompts) saved in your [Warp Drive](https://docs.warp.dev/knowledge-and-collaboration/warp-drive/). * These prompts can be custom ones you’ve created or ones shared with you. * As you type after `/`, prompts are filtered dynamically, so you can quickly run them without leaving the input field. <figure><img src="https://769506432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAULCelT4yIUOcSwWWvPk%2Fuploads%2Fgit-blob-15807b88aca5d87bf4df6de5147fa7715dfe5299%2Fslash-commands-prompts.png?alt=media" alt=""><figcaption><p>Slash Commands menu with filtered Agent Prompts</p></figcaption></figure> ### Tips * **Context-aware:** Many Slash Commands use your current working directory or file selection as context. * **Quick access:** Use `/` from anywhere in Agent Mode or Auto-Detection Mode to avoid navigating through menus. ### Example of using a Slash Command Below is an example interaction when `/init` is ran: <figure><img src="https://769506432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAULCelT4yIUOcSwWWvPk%2Fuploads%2Fgit-blob-6f17d3c88d28b77d8dbdda74f5a4249335b8168c%2Finit-setup-flow-1.png?alt=media" alt=""><figcaption><p>/init setup flow; 1 of 2</p></figcaption></figure> <figure><img src="https://769506432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAULCelT4yIUOcSwWWvPk%2Fuploads%2Fgit-blob-a32d318f47a11bf5a2cbcbebdc0fbc37f01eacb1%2Finit-setup-flow-2.png?alt=media" alt=""><figcaption><p>/init setup flow; 2 of 2</p></figcaption></figure> --- # Source: https://docs.warp.dev/terminal/windows/split-panes.md # Split Panes ## How to use Split Panes {% tabs %} {% tab title="macOS" %} * Split Panes to the right / down with `CMD-D` / `SHIFT-CMD-D` or in any direction by right-clicking on any Pane. * Activate the Previous / Next Pane with `CMD-[` / `CMD-]` or by clicking a pane. * Navigate among Split Panes with `OPT-CMD-ARROW`, the active pane will be marked with a triangle in the top corner. * Toggle Maximize Pane with `CMD-SHIFT-ENTER`. * Close the active Pane with `CMD-W`. * You can also drag and drop panes. Click and drag a Pane’s header around a given tab, drag the Pane to the tab bar to move it to another Tab, or make it into a Tab. {% endtab %} {% tab title="Windows" %} * Split Panes to the right / down with `CTRL-SHIFT-D` / `CTRL-SHIFT-E` or in any direction by right-clicking on any Pane. * Activate the Previous / Next Pane with `CTRL-SHIFT-{` / `CTRL-SHIFT-}` or by clicking a pane. * Navigate among Split Panes with `CTRL-ALT-ARROW`, the active pane will be marked with a triangle in the top corner. * Toggle Maximize Pane with `CTRL-SHIFT-ENTER`. * Close the active Pane with `CTRL-SHIFT-W`. * You can also drag and drop panes. Click and drag a Pane’s header around a given tab, drag the Pane to the tab bar to move it to another Tab, or make it into a Tab. {% endtab %} {% tab title="Linux" %} * Split Panes to the right / down with `CTRL-SHIFT-D` / `CTRL-SHIFT-E` or in any direction by right-clicking on any Pane. * Activate the Previous / Next Pane with `CTRL-SHIFT-{` / `CTRL-SHIFT-}` or by clicking a pane. * Navigate among Split Panes with `CTRL-ALT-ARROW`, the active pane will be marked with a triangle in the top corner. * Toggle Maximize Pane with `CTRL-SHIFT-ENTER`. * Close the active Pane with `CTRL-SHIFT-W`. * You can also drag and drop panes. Click and drag a Pane’s header around a given tab, drag the Pane to the tab bar to move it to another Tab, or make it into a Tab. {% endtab %} {% endtabs %} {% hint style="info" %} You can quickly find all the **pane** shortcuts by using the [Command Palette](https://docs.warp.dev/terminal/command-palette). You can also remap the shortcuts to your liking. See [Custom Keyboard Shortcuts](https://docs.warp.dev/getting-started/keyboard-shortcuts#custom-keyboard-shortcuts) for more details. {% endhint %} ### CTRL-TAB Behaviour `CTRL-TAB` shortcut defaults to activate the previous / next [Tabs](https://docs.warp.dev/terminal/windows/tabs). You can configure the shortcut to cycle the most recent session, including any Split Panes, in `Settings > Features > Keys > Ctrl-Tab behavior` ## How Split Panes work {% embed url="<https://www.loom.com/share/c1104b51cab848a9bef6792ec4fd8421?hide_owner=true&hide_share=true&hide_title=true&hideEmbedTopBar=true>" %} Split Panes Demo {% endembed %} <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-44512f81f876be15ad0a63749dc0740ddcc2e9cd%2Fsplit-panes-dragging-demo.gif?alt=media" alt=""><figcaption><p>Split Panes Drag and Drop Demo</p></figcaption></figure> --- # Source: https://docs.warp.dev/university/mcp-servers/sqlite-and-stripe-mcp-basic-queries-you-can-make-after-set-up.md # SQLite and Stripe MCP: Basic Queries You Can Make After Set Up This tutorial teaches you how to use **MCP servers** to connect Warp to **Stripe** and **SQLite**, showing how AI transforms the command line into a connected, conversational workspace. {% embed url="<https://x.com/svpino/status/1937896922297311390>" %} {% stepper %} {% step %} **Enabling MCP in Warp** Warp now supports configuring any MCP server directly from the terminal. To set it up: * Open **Settings → AI → MCP Servers** in Warp. * Click **Add Server**, and choose from a list of available MCP configurations. * Once added, Warp automatically connects and authorizes the agent to use those tools. In this demo, two MCP servers were enabled: * **SQLite Server** – for running local database queries * **Stripe Server** – for retrieving and analyzing payment data {% endstep %} {% step %} **Querying Stripe** Once configured, you can issue conversational prompts to the terminal — no manual API calls required. Example — Querying Stripe ``` How many customers do I have in Stripe? ``` Warp connects to the Stripe MCP server, confirms the action, and returns: > “You have 3 customers.” You can continue naturally: ``` List the payments made by the first customer. ``` The agent retrieves seven payment intents — one successful, six canceled — all live from your Stripe test account. Note: MCP’s confirmation prompts can be disabled once you trust a given server or agent. {% endstep %} {% step %} **Querying SQLite** The same workflow applies to databases. Example — Querying SQLite ``` What SQL tables do I have access to? ``` Warp lists all available tables from the local SQLite database. ``` Break down female penguins by island. ``` Warp translates this into a structured SQL query and executes it, returning: > “Bisco Island — 51 female penguins; Dream Island — ...” Follow-up prompts work contextually: ``` Do the same with male penguins. ``` Warp runs the updated SQL query and displays results inline. {% endstep %} {% step %} **Why This Matters** This demo highlights how Warp’s AI and MCP support combine to make your terminal: * **Connected** — Access cloud APIs, local data, or enterprise tools instantly. * **Conversational** — Run natural language prompts for structured data retrieval. {% endstep %} {% step %} {% hint style="info" %} “Even two years ago, no one could’ve imagined a terminal capable of this. Warp has officially redefined what a terminal can be.” — Santiago {% endhint %} {% endstep %} {% endstepper %} --- # Source: https://docs.warp.dev/terminal/warpify/ssh-legacy.md # SSH Legacy {% hint style="info" %} If you are looking to troubleshoot the TMUX SSH feature, see the [SSH](https://docs.warp.dev/terminal/warpify/ssh). {% endhint %} When you SSH into a remote box, you get all the features of Warp without any configuration on your part. The input editor, auto-completions, and history search work the same, regardless of machine. {% hint style="warning" %} [Limitations of SSH](https://github.com/warpdotdev/Warp/issues/578) (as of May 2024): * The SSH Wrapper only supports `bash`or `zsh` shells in remote sessions. * If you're using a different shell, you'll want to use `command ssh` directly (see below for more details). * For zsh, xxd is required to bootstrap warp. * For Windows, [Cygwin](https://www.cygwin.com/) is required to bootstrap the SSH Wrapper. * RemoteCommand causes the ssh wrapper to fail. * [Tmux is not currently supported.](https://github.com/warpdotdev/Warp/discussions/501) {% endhint %} {% hint style="info" %} If you're using zsh on the remote host, Warp creates a temp folder to act as the ZDOTDIR during the bootstrapping process and removes it when the shell is set up. {% endhint %} <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-d1dfbe0032fc3388c17b2ecb4eaff36a7a2b5d6c%2Fssh%20(1).png?alt=media" alt="SSH"><figcaption><p>SSH</p></figcaption></figure> ## Implementation We create a wrapper (around `/usr/bin/ssh`) to set up the shell for Warp's feature set. We authenticate normally using `/usr/bin/ssh`, and bootstrap the remote shell to work with Warp Blocks and the Input Editor. You can opt out of this functionality by invoking `command ssh` directly. * Warp takes over the prompt which enables us to build a modern input editor. * Warp configures histcontrol to ignore commands with leading spaces. We do this so our bootstrapping code does not clutter the history. You can see the SSH wrapper by using `which warp_ssh_helper` in zsh, `type warp_ssh_helper` in bash. *Note:* The ssh wrapper is only *initialized* on your local machine. We don’t currently support bootstrapping nested ssh sessions. {% hint style="info" %} Warp [Completions](https://docs.warp.dev/terminal/command-completions/completions) for ssh show entries in `~/.ssh/config` and `~/.ssh/known_hosts` {% endhint %} ## Troubleshooting SSH ### channel 2: open failed: connect failed: open failed If you're seeing these errors, you may have some config on your server (usually in `/etc/ssh/sshd_config`) preventing Warp's ControlMaster connection from working. In this state, completions that require information from your remote host won't work and your history also won't work. You should ensure that `MaxSessions` is either commented out or is at least `2`. Write access in `/etc/ssh/` typically requires sudo access. After any edits, you'd also need to restart the `sshd` daemon. ### SSH Wrapper fails There are several [known issues with SSH Wrapper](https://github.com/warpdotdev/Warp/issues?q=is%3Aissue+is%3Aopen+sort%3Acreated-desc+label%3ABugs+label%3ASSH). As a workaround to the SSH Wrapper, you can add `command ssh` to your `Settings > Subshells > Added commands`, then run `command ssh <user@server>` to connect to a remote session, this will attempt to enable Warp features as a [subshell](https://docs.warp.dev/terminal/warpify/subshells). {% hint style="info" %} If the subshell workaround helps, we recommend you disable the SSH Wrapper in `Settings > Features.`You'll need to start a new session before a change is reflected or try invoking the SSH binary directly with `command ssh`. {% endhint %} <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-5cfba89554e738ad331b86151eae6b7bb819e306%2Fsubshell-ssh-demo.gif?alt=media" alt="Command SSH subshell workaround"><figcaption><p>Warpify SSH Demo</p></figcaption></figure> --- # Source: https://docs.warp.dev/terminal/warpify/ssh.md # SSH {% hint style="warning" %} This page is dedicated to the SSH features powered by `tmux`. If you are looking to troubleshoot the legacy SSH implementation, see the [SSH (Legacy)](https://docs.warp.dev/terminal/warpify/ssh-legacy). {% endhint %} Warpifying your SSH session gives you all the features of Warp while connected to a remote machine: the input editor, auto-completions, history search, and more. We achieve this by running commands like `ls` on the remote machine on your behalf. **Warpifying a remote SSH Session** [**will never make lasting changes to the remote machine without your explicit consent**](#will-warpifying-a-remote-ssh-session-make-changes-to-the-remote-machine)**.** ![SSH](https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-d750cd2460fe3cc59aef6a301b61fdccc4970088%2Fwarpify_ssh_prompt.png?alt=media) ## FAQs #### Will Warpifying a remote SSH session make changes to the remote machine? Only to install [`tmux`](#why-do-i-need-tmux-on-the-remote-machine) (a popular open source terminal multiplexer) and only with your explicit permission. If `tmux` is not installed, Warp will offer to install it for you and will show you the list of commands that will be run. You can always decline and continue to use your ssh session without some of Warp's features (or install `tmux` yourself and re-run Warpification [via the command palette](#what-if-warp-fails-to-detect-my-ssh-session)). #### Why do I need `tmux` on the remote machine? `tmux` is used to asynchronously run commands on the remote machine without disrupting your interactive session. [tmux](https://github.com/tmux/tmux/wiki) is a popular open source terminal multiplexer, which lets you run multiple sessions within one ssh connection. It requires minimal permissions and is widely adopted (⭐ 35k+ on GitHub). Warpifying a remote SSH session uses [tmux Control Mode](https://github.com/tmux/tmux/wiki/Control-Mode) to run adhoc background tasks (like those required to autocomplete a `cd` command, or populate the contents of a custom prompt). #### Can I ssh to remote machines that I don't want to Warpify? Yes! You can always cancel Warpification and continue to use SSH, just without some of Warp's additional features. You can also explicitly add hosts to the Denylist to ensure you’re never asked to Warpify that host again. ### Do I have to manually Warpify every time? After you successfully Warpify an SSH connection manually, we provide a brief script you can run to append a message at the end of your shell's rcfile. This allows us to know when your shell is ready to be Warpified, and be found at the bottom of your rcfile for the best results. ![Setting up Auto-Warpify](https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-b2a6821c94e4894c2e0313ccc5b328897106949d%2Fwarpify_ssh_auto_script.png?alt=media) #### What shells and operating systems are supported? At the time of writing, we support macOS and most flavors of Linux as remote hosts. Supported shells are `bash` and `zsh`. #### What if Warp fails to detect my SSH session? If you are ever in a remote SSH Session and would like to manually Warpify, you can do so by using the [Command Palette](https://docs.warp.dev/terminal/command-palette) and searching for "Warpify SSH Session". #### What triggers SSH Session Detection for Warpification? If SSH Session Detection is enabled, Warp will detect when you run an `ssh` command with arguments that suggest it's starting an interactive session. If you've aliased `ssh` or are running it as part of a script, we will not perform SSH Session Detection. Once we have confidence you have successfully authenticated (by detecting `Last login:` or something resembling a basic prompt) we will prompt you to Warpify your active SSH session. If SSH Session Detection does not detect your session, you can still [Warpify manually](#what-if-warp-fails-to-detect-my-ssh-session). --- # Source: https://docs.warp.dev/terminal/blocks/sticky-command-header.md # Sticky Command Header {% hint style="info" %} For long-running commands that take up the full screen, the sticky header only shows after you start scrolling up. This is to prevent the header from blocking the top part of the output for commands like `git log` that simulate full-screen apps. {% endhint %} ## How to access Sticky Command Header {% tabs %} {% tab title="macOS" %} * Sticky Command Header is enabled by default. * Toggle Sticky Command Header by going to `Settings > Features` > toggle “Show sticky command header”. * Toggle by searching for “Sticky Command Header” within the [Command Palette](https://docs.warp.dev/terminal/command-palette) or by pressing `CTRL-CMD-S`. * You can also "Toggle the Sticky Command Header in the Active Pane" with `CTRL-S`. This won't disable the feature entirely, only minimize it on the active session. {% endtab %} {% tab title="Windows" %} * Sticky Command Header is enabled by default. * Toggle the Sticky Command Header by going to `Settings > Features` > toggle “Show sticky command header”. * Toggle by searching for “Sticky Command Header” within the [Command Palette](https://docs.warp.dev/terminal/command-palette) or by setting up a key bind in `Settings > Keyboard Shortcuts`. * You can also "Toggle the Sticky Command Header in the Active Pane" in the Command Palette or by setting up a key bind in `Settings > Keyboard Shortcuts`. This won't disable the feature entirely, only minimize it on the active session. {% endtab %} {% tab title="Linux" %} * Sticky Command Header is enabled by default. * Toggle the Sticky Command Header by going to `Settings > Features` > toggle “Show sticky command header”. * Toggle by searching for “Sticky Command Header” within the [Command Palette](https://docs.warp.dev/terminal/command-palette) or by setting up a key bind in `Settings > Keyboard Shortcuts`. * You can also "Toggle the Sticky Command Header in the Active Pane" in the Command Palette or by setting up a key bind in `Settings > Keyboard Shortcuts`. This won't disable the feature entirely, only minimize it on the active session. {% endtab %} {% endtabs %} ## How to use Sticky Command Header * If a Block has a large output ( e.g. `seq 1 1000`), the header of the Block will show on the top of the active Window, Tab, or Pane. * Click on the Sticky Command Header to quickly jump to the top of the Block. * While active you can also minimize the Sticky Command Header on the active pane by clicking the UP/DOWN arrow in the middle of the header. ## How Sticky Command Header works {% embed url="<https://www.loom.com/share/a86967c057e44ab4bee4860ba80538b9?hide_owner=true&hide_share=true&hide_title=true&hideEmbedTopBar=true>" %} Sticky Command Header Demo {% endembed %} <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-242f19a3d854b7d78baad1fbfab7eb39e99406c9%2Fsticky-header-toggle-active-demo.gif?alt=media" alt=""><figcaption><p>Toggle active header and Jump to bottom of block demo</p></figcaption></figure> --- # Source: https://docs.warp.dev/terminal/warpify/subshells.md # Subshells ## What is a subshell? Within the context of the Warp terminal, a "subshell" is defined as any nested interactive shell session that's spawned and running within the context of an existing, running shell. This might be a nested session running locally on your machine, a shell session running within a Docker container, or a remote server accessed through SSH. [See more on SSH Warpification](https://docs.warp.dev/terminal/warpify/ssh). Note that Warp's definition of a subshell differs from the more common definition of a Unix subshell, which typically refers to any shell process spawned as a child of the interactive shell. For example, in bash, a command wrapped in parentheses is executed in a subshell with its own PID and addressable memory space. ## How to Warpify the subshell By default, Warp automatically recognizes the following commands as **subshell-compatible**: * bash, fish, zsh * docker exec * gcloud compute ssh * eb ssh * poetry shell When you run a command that's subshell-compatible, Warp will prompt you and invite you to "Warpify" the subshell which makes all of the modern IDE features of Warp available in that subshell. The list of subshell-compatible commands is configurable in Subshell settings as described [below](#configuring-subshell-compatible-commands). {% hint style="info" %} bash, zsh, or fish (3.6 or above) must be set as the default shell within containers and ssh sessions for the Warpification of the subshells to work. {% endhint %} <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-bbd768d41f956ba63cc7410138fc2e5980c74d30%2Fsubshells-demo.gif?alt=media" alt=""><figcaption><p>Subshells Demo</p></figcaption></figure> ### Configuring subshell-compatible commands To configure subshell-compatible commands, navigate to the Settings > Subshells. #### Adding compatible commands You can add any command that spawns a bash, fish, or zsh subshell to ‘Added commands’ to make it eligible for "Warpification." Furthermore, you can add regular expressions to the Added commands list. Any commands that match an added regex will be eligible for "Warpification." #### Blocklisting commands Some types of subshells are not compatible, and you may also want to control Warp so it never invites you to "Warpify" the subshells for specific commands. When you add commands to the Blocklist, Warp will never invite you to "Warpify" subshells spawned by those commands. ### Automatically "Warpify" subshells To remember your preferences for a command and bypass the confirmation banner, you can manually paste the appropriate snippet to the end of the RC file corresponding to your subshell (bash, fish, or zsh). ```bash # For zsh subshells, add to ~/.zshrc. printf '\eP$f{"hook": "SourcedRcFileForWarp", "value": { "shell": "zsh"}}\x9c' # For bash subshells, add to ~/.bashrc or ~/.bash_profile. printf '\eP$f{"hook": "SourcedRcFileForWarp", "value": { "shell": "bash"}}\x9c' # For fish subshells, add to ~/.config/fish/config.fish. if status is-interactive printf '\eP$f{"hook": "SourcedRcFileForWarp", "value": { "shell": "fish"}}\x9c' end ``` Once added, Warp will automatically "Warpify" subsequent subshell sessions for the corresponding shell on the machine with the newly updated RC file. Under the hood, this snippet prints a Device Control String ([DCS](https://vt100.net/docs/vt510-rm/chapter4.html)) to be read by Warp, signaling that a subshell session has started and is ready to be "Warpified." In turn, Warp executes a setup script in the session that enables the full suite of Warp features like blocks, completions, and the input editor. For this reason, it’s best to ensure the snippet is added to the end of the RC file, so Warp does not attempt to execute the setup script before the shell has finished sourcing your RC file. To disable automatic integration, simply remove the snippet from the corresponding RC file. If you happen to encounter issues in subshell sessions where the RC file is sourced, don’t hesitate to [file a GitHub issue](https://github.com/warpdotdev/Warp/issues/new/choose). ## Background commands Warp runs background commands to power useful features like completions, syntax highlighting, and command corrections. For example, in order to provide completions for git checkout, Warp runs a background command that lists all git branches in the current repo. In local subshell sessions, these commands are run in forked shell processes, isolated from your interactive shell session. This is the same implementation used for any non-subshell session. In remote sessions, however, Warp takes a different approach – while a forked shell process is running on your local machine (where the Warp app is running), your remote session might be running on a server elsewhere. In these cases, Warp takes advantage of the session’s “idle time” – when no command is currently running – to run background commands directly in the session itself. These commands are executed in a non-interactive subshell process to prevent modifications to the session state (they cannot modify an environment variable, for instance). ### Show/hide background blocks By default, blocks for background commands are hidden. To show background command blocks, select ‘Show background blocks’ in the ‘Blocks’ menu of the macOS menu bar. ### Disable background commands in remote sessions We understand that some developers may want to disable background commands for certain or all environments. To disable background commands in remote subshell sessions, you can execute the following command in a top-level terminal session: {% tabs %} {% tab title="macOS" %} Update the settings defaults located in `dev.warp.Warp-Stable` to include the following name-value pair: `"DisableInBandCommands": "true"`. ```bash defaults update dev.warp.Warp-Stable DisableInBandCommands true ``` {% endtab %} {% tab title="Windows" %} Update the settings registry located at `HKCU:\Software\Warp.dev\Warp` to include the following name-value pair: `"DisableInBandCommands": "true"`. ```powershell Set-ItemProperty -Path "HKCU:\SOFTWARE\Warp.dev\Warp" -Name DisableInBandCommands -Value true ``` {% endtab %} {% tab title="Linux" %} Update the settings file located at `~/.config/warp-terminal/user_preferences.json` to include the following name-value pair: `"DisableInBandCommands": "true"`. ```bash cd ~/.config/warp-terminal/ jq '.prefs += {"DisableInBandCommands": "true"}' user_preferences.json > tmp.json && mv tmp.json user_preferences.json ``` {% endtab %} {% endtabs %} This will effectively disable tab completions, syntax highlighting, command corrections, and the git status prompt indicator in remote subshells. --- # Source: https://docs.warp.dev/getting-started/supported-shells.md # Supported Shells ## Warp default shell Warp tries to load your login shell by default. Currently, Warp supports bash, fish, zsh, and PowerShell (pwsh). If your login shell is set to something else (e.g. Nushell) Warp will show a banner indicating it's not supported and load the default shells listed below: * On macOS, zsh is the default shell. * On Windows, PowerShell (pwsh) is the default shell. * On Linux, bash is the the default shell. {% hint style="info" %} If you run into issues configuring your RC files (`~/.bashrc`, `~/.zshrc`, `config.fish`, `Microsoft.PowerShell_profile.ps1`) with Warp, please see [Configuring and debugging your RC files](https://docs.warp.dev/support-and-community/troubleshooting-and-support/known-issues#configuring-and-debugging-your-rc-files). {% endhint %} ### Changing what shell Warp uses To change the default shell, e recommend you choose a shell in Warp by going to `Settings > Features` and scrolling to the `Session` section, then select the "Startup shell for new sessions" {% hint style="info" %} The changes to your shell will only take effect when you start a new session. {% endhint %} ## Customizing Your Shell Environment ### Customize Your zsh Shell Environment Zsh can be customized via the `~/.zshrc` file, which runs whenever a new session starts (window, tab, or pane). Use it to set environment variables, aliases, and customize the [prompt](https://docs.warp.dev/terminal/appearance/prompt). #### Editing the .zshrc File Edit `~/.zshrc` using `nano ~/.zshrc` or `vi ~/.zshrc`. {% hint style="info" %} Files starting with a dot (`.`) are hidden by default. Check your file explorer’s settings to show hidden files. {% endhint %} #### Reloading the zshrc File Apply changes by running `source ~/.zshrc` or restarting Warp/opening a new session. ### Customize Your Bash Shell Environment Bash is pre-installed on macOS and can be customized using `~/.bashrc` (for non-login shells) or `~/.bash_profile` (for login shells). Use these files to set environment variables, aliases, and customize the [prompt](https://docs.warp.dev/terminal/appearance/prompt). #### Editing the .bashrc File Edit `~/.bashrc` using `nano ~/.bashrc` or `vi ~/.bashrc`. #### Reloading the bashrc File Apply changes by running `source ~/.bashrc` or restarting Warp/opening a new session. {% hint style="info" %} Files starting with a dot (`.`) are hidden by default. Check your file explorer’s settings to show hidden files. {% endhint %} ### Customize Your Fish Shell Environment Fish is a user-friendly shell with autosuggestions and syntax highlighting. Its configuration file is `~/.config/fish/config.fish`. #### Editing the config.fish File Edit `~/.config/fish/config.fish` using `nano ~/.config/fish`. Use it to set environment variables, aliases, and functions. #### Reloading the config.fish File Apply changes by running `source ~/.config/fish` or restarting Warp/opening a new session. {% hint style="info" %} Unlike Bash and Zsh, Fish does not use `export VAR=value`. Use `set -Ux VAR value` for persistent environment variables. {% endhint %} ### Customize Your PowerShell Shell Environment PowerShell can be customized via its profile script, located at `$PROFILE`. Check if it exists with `Test-Path $PROFILE`, and create it if needed with `New-Item -Path $PROFILE -ItemType File -Force`. #### Editing the PowerShell Profile Edit the profile using `code $PROFILE`, and use it to set environment variables, aliases, custom prompts, and scripts. #### Reloading the PowerShell Profile Apply changes by restarting Warp or opening a new session. {% hint style="info" %} PowerShell’s execution policy may block scripts. Enable profile execution with: ```powershell Set-ExecutionPolicy RemoteSigned -Scope CurrentUser ``` {% endhint %} ## Additional shell guidance for macOS #### Setting up zsh on Warp By default, macOS ships with [zsh](https://zsh.sourceforge.io/Doc/Release/zsh_toc.html) located in `/bin/zsh`. You can confirm this location by typing `which zsh` in Warp. You can also check the version of zsh installed on your system by simply typing the following: `$ zsh --version` ### Using fish shell with Warp on macOS #### Step 1: Install fish While bash, and zsh come pre-installed on macOS systems, fish shell does not. So before using fish with Warp, you will need to install it. Install fish 3.6 or above using one of the methods listed below - 1. With Homebrew: If you already have homebrew installed, you can simply type `brew install fish`, and follow the instructions. 2. Download the installer at [fishshell.com](https://fishshell.com/) #### Step 2: Switch to fish as the default shell Once you’ve installed fish on your computer, you can set it as your default shell, so Warp will use it every time a new tab, pane, or window is opened. You can either make fish the default shell for only Warp, from the session settings (`Settings > Features > Session`), or for your user account. To change your account's default shell, you need to run two commands. **If you used Homebrew to install fish on a macOS or if you used the Mac installer** available on fishshell.com to install fish, type the following two commands in Warp: ``` echo $(which fish) | sudo tee -a /etc/shells chsh -s $(which fish) ``` {% hint style="info" %} If you prefer, you can also manually edit the `/etc/shells` file using the editor of your choice (you may need sudo privileges). {% endhint %} {% hint style="info" %} **Why the different locations?** The location of fish depends on how it was installed. Homebrew installs programs under `/usr/local` on Macs running Intel processors, but under `/opt/homebrew` for Macs running Apple Silicon. So, if you used Homebrew to install fish on a Mac with Apple Silicon, the location of the executable is - `/opt/homebrew/bin/fish`.\ You can identify where fish is installed by running `which fish`. {% endhint %} ### Using PowerShell (pwsh) with Warp on macOS #### Step 1: Install PowerShell While bash, and zsh come pre-installed on macOS systems, PowerShell shell does not. So before using PowerShell with Warp, you will need to install it. Install PowerShell 7.0 or above using one of the methods listed below - 1. With Homebrew: If you already have homebrew installed, you can simply type `brew install powershell/tap/powershell`, and follow the instructions. 2. Download from the [official Microsoft website](https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell). #### Step 2: Switch to pwsh as the default shell Once you’ve installed PowerShell on your computer, you can set it as your default shell, so Warp will use it every time a new tab, pane, or window is opened. You can either make pwsh the default shell for only Warp, from the session settings (`Settings > Features > Session`), or for your user account. To change your account's default shell, you need to run two commands. ``` echo $(which pwsh) | sudo tee -a /etc/shells chsh -s $(which pwsh) ``` {% hint style="info" %} If you prefer, you can also manually edit the `/etc/shells` file using the editor of your choice (you may need sudo privileges). {% endhint %} {% hint style="info" %} **Why the different locations?** The location of pwsh depends on how it was installed. Homebrew installs programs under `/usr/local` on Macs running Intel processors, but under `/opt/homebrew` for Macs running Apple Silicon. So, if you used Homebrew to install pwsh on a Mac with Apple Silicon, the location of the executable is - `/opt/homebrew/bin/pwsh`.\ You can identify where pwsh is installed by running `which pwsh`. {% endhint %} ## Using Warp with shells on Windows On Windows, Warp's default shell is PowerShell 7 (pwsh). Warp for Windows supports several shells: * PowerShell 7 (default) * PowerShell 5 * Windows Subsystem for Linux (WSL2) * Git Bash {% hint style="info" %} Windows Command Prompt (cmd.exe) is not currently supported. For more information and updates about cmd.exe support, please see [this GitHub issue](https://github.com/warpdotdev/Warp/issues/5882). {% endhint %} --- # Source: https://docs.warp.dev/terminal/entry/synchronized-inputs.md # Synchronized Inputs ### Synchronized inputs vs. broadcast input Synchronized inputs in Warp work similarly to “broadcast input” settings in other terminals, but there are some differences. With Warp’s synchronized inputs, whatever command you enter in one session will sync to the other sessions in its entirety. Whereas, "broadcast input" typically allows you to "broadcast" individual keystrokes, which may be more suitable for editing parts of commands. ## How to access it There are three ways to access controls to synchronize inputs: * [Command Palette](https://docs.warp.dev/terminal/command-palette) in Warp: Search for “synchronize” * Mac menus for the Warp app: `Edit > Synchronize Input` ## How to use it {% tabs %} {% tab title="macOS" %} There are two modes available to scope how input is synchronized and one to stop any synchronization: * Synchronize All Panes in All Tabs * Synchronize All Panes in Current Tab `OPT-CMD-I` * Stop Synchronizing Any Panes `OPT-CMD-I` {% endtab %} {% tab title="Windows" %} There are two modes available to scope how input is synchronized and one to stop any synchronization: * Synchronize All Panes in All Tabs * Synchronize All Panes in Current Tab `CTRL-ALT-I` * Stop Synchronizing Any Panes `CTRL-ALT-I` {% endtab %} {% tab title="Linux" %} There are two modes available to scope how input is synchronized and one to stop any synchronization: * Synchronize All Panes in All Tabs * Synchronize All Panes in Current Tab `CTRL-ALT-I` * Stop Synchronizing Any Panes `CTRL-ALT-I` {% endtab %} {% endtabs %} When inputs are synchronized, you can start typing in one input editor and that same input will be entered into all of the input editors for all panes in your current tab or all tabs, depending on the scope you selected. If you are working in an alternative editor mode (like vim), synchronized inputs will only apply to all tabs with that same editor type running. When you get done, you can select “Stop Synchronizing Any Panes” to end the synchronization. ## How it works --- # Source: https://docs.warp.dev/terminal/editor/syntax-error-highlighting.md # Syntax & Error Highlighting ## What is Syntax Highlighting Warp supports Syntax Highlighting in the [Input Editor.](https://docs.warp.dev/terminal/editor) It colors each part of a command to help differentiate between sub-commands, options/flags, arguments, and variables. {% hint style="warning" %} Newly installed apps or newly created aliases will not trigger syntax highlighting until you open a new Warp session (new window, tab, or pane), even if you `source` the RC files in the current session. {% endhint %} ### How to access Syntax Highlighting When Syntax Highlighting is enabled, Warp's [Input Editor](https://docs.warp.dev/terminal/editor) automatically recognizes each part of the command as you type it into the Input Editor, and syntactically highlight them. ### How to enable/disable Syntax Highlighting Syntax highlighting is enabled by default, to toggle it: * Through the [Command Palette](https://docs.warp.dev/terminal/command-palette), search for the "Syntax Highlighting" option and click it (or press enter) to enable/disable. * Through `Settings > Features > Editor` , toggle "Syntax highlighting for commands" ### How Syntax Highlighting Works {% embed url="<https://www.loom.com/share/87b15de13ee9407b98a24f1a31835784?hide_owner=true&hide_share=true&hide_title=true&hideEmbedTopBar=true>" %} Syntax Highlighting Demo {% endembed %} ## What is Error Underlining Warp highlights errors in commands that are typed within the [Input Editor](https://docs.warp.dev/terminal/editor) e.g. if the binary for the command you've typed does not exist. {% hint style="warning" %} Newly installed apps or newly created aliases will trigger error underlining until you open a new Warp session (new window, tab, or pane), even if you `source` the RC files in the current session. {% endhint %} ### How to access Error Underlining When Error Underlining is enabled, Warp automatically underlines any invalid commands with a dashed red underline. ### How to enable/disable Error Underlining Error underlining is enabled by default, to toggle it: * Through the [Command Palette](https://docs.warp.dev/terminal/command-palette), search for the "Syntax Highlighting" option and click it (or press enter) to enable/disable. * Through `Settings > Features > Editor` , toggle "Error underlining for commands" ### How Error Underlining works {% embed url="<https://www.loom.com/share/7721e06ed4aa4e1380abae4f5827ef6f?hide_owner=true&hide_share=true&hide_title=true&hideEmbedTopBar=true>" %} Error Underlining Demo {% endembed %} --- # Source: https://docs.warp.dev/terminal/appearance/tabs-behavior.md # Tabs Behavior ## Tab Indicators Tab indicators provide visual cues in the tab bar under certain specific conditions: When the current pane is maximized, when panes or tabs are syncronized, and when a command exits with an error. These indicators serve as quick references. ### How to toggle Tab Indicators * Navigate to `Settings > Appearance > Tabs`, and switch the "Show Tab Indicators" option. * Utilize the [Command Palette](https://docs.warp.dev/terminal/command-palette), then search for "Tab indicators" to toggle the tab indicators. <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-e15caaccd0a3cd50fde45eb6333367d7522289a9%2Ftab-indicator-demo.gif?alt=media" alt=""><figcaption><p>Tab Indicator Demo</p></figcaption></figure> ## Tab Bar The tab bar provides easy navigation between open tabs. By default, the tab bar is visible in windowed mode but hides in fullscreen. To access the tab bar when hidden, hover near the top of the window. You can customize its visibility based on your preferences. ### How to configure the Tab Bar * Navigate to `Settings > Appearance > Tabs > Show the tab bar` to toggle the visibility of the tab bar. Choose from the following options: * Always – Keeps the tab bar visible at all times. * Only on hover – Hides the tab bar in both modes. * When windowed – Displays the tab bar only in windowed mode. * Block dividers {% hint style="info" %} On macOS, traffic lights will not be shown when in windowed mode if the tab bar is set to show only on hover. {% endhint %} <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-136a85d4addad0cd9dacd621aff494bce668fd5d%2Ftab-bar-demo.gif?alt=media" alt=""><figcaption><p>Tab Bar Demo</p></figcaption></figure> ## Tab Close Button You can configure the position of the Tab close button to be either on the left or right side of the tab. ### How to configure the Tab Close Button Navigate to `Settings > Appearance > Tabs > Tab close button position`, then choose from the following options: * Left - the close button will be on the left side of the Tab (macOS style) * Right – the close button will be on the right side of the tab (Windows | Linux style)\\ <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-c01b6685d60d608e9f91e3da5b3406151fad8092%2Ftab-close-button-demo.gif?alt=media" alt=""><figcaption><p>Tab close button demo</p></figcaption></figure> ## Recommended AI prompts Recommended prompts can be shown in new tabs to help get quick help from Agent Mode with installing, coding, deploying, or something else. ### How to toggle recommended AI prompts * Navigate to `Settings > Features > General`, and switch the "Recommend AI Prompts on new tab" option. * Utilize the [Command Palette](https://docs.warp.dev/terminal/command-palette), then search for "Recommend AI Prompts" to toggle. <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-213f314c29024b9314510347a1125c7962e721dc%2Fai-prompts-new-tab.png?alt=media" alt=""><figcaption><p>Recommended AI Prompts in new tab</p></figcaption></figure> --- # Source: https://docs.warp.dev/terminal/windows/tabs.md # Tabs {% hint style="info" %} New Tabs will default to the active Tabs’ current [Working Directory](https://docs.warp.dev/terminal/more-features/working-directory) and the actual color values will be automatically derived from your Warp [Theme](https://docs.warp.dev/terminal/appearance/themes). {% endhint %} ## How to use Tabs {% tabs %} {% tab title="macOS" %} * Right-click on the new Tab button `+` to make a new tab, restore closed tab, or run a saved [Launch Configuration](https://docs.warp.dev/terminal/sessions/launch-configurations). * Open a new Tab with `CMD-T` or by clicking on the `+` in the top bar. * Close the current Tab with `CMD-W` or by clicking on the `X` on hover over a Tab. * Reopen closed tabs with `SHIFT-CMD-T`. * Move a Tab to the Left / Right with `CTRL-SHIFT-LEFT` / `CTRL-SHIFT-RIGHT` or by clicking and dragging a Tab. * Activate the Previous / Next Tab with `SHIFT-CMD-{` / `SHIFT-CMD-}` or by clicking a Tab. * Activate the first through eighth Tabs with `CMD-1` thru `CMD-8`. * Switch to the last Tab with `CMD-9`. * Double-click a Tab to rename it. * Right-clicking on a Tab reveals more options you can explore within the [Command Palette](https://docs.warp.dev/terminal/command-palette) or [Keyboard Shortcuts](https://docs.warp.dev/getting-started/keyboard-shortcuts#fundamentals). {% endtab %} {% tab title="Windows" %} * Right-click on the new Tab button `+` to make a new tab, restore closed tab, or run a saved [Launch Configuration](https://docs.warp.dev/terminal/sessions/launch-configurations). * Open a new Tab with `CTRL-SHIFT-T` or by clicking on the `+` in the top bar. * Close the current Tab with `CTRL-SHIFT-W` or by clicking on the `x` on hover over a Tab. * Reopen closed tabs with `CTRL-ALT-T`. * Move a Tab to the Left / Right with `CTRL-SHIFT-LEFT` / `CTRL-SHIFT-RIGHT` or by clicking and dragging a Tab. * Activate the Previous / Next Tab with `CTRL-PGUP` / `CTRL-PGDN` or by clicking a Tab. * Activate the first through eighth Tabs with `CTRL-1` thru `CTRL-8`. * Switch to the last Tab with `CTRL-9`. * Double-click a Tab to rename it. * Right-clicking on a Tab reveals more options you can explore within the [Command Palette](https://docs.warp.dev/terminal/command-palette) or [Keyboard Shortcuts](https://docs.warp.dev/getting-started/keyboard-shortcuts#fundamentals). {% endtab %} {% tab title="Linux" %} * Right-click on the new Tab button `+` to make a new tab, restore closed tab, or run a saved [Launch Configuration](https://docs.warp.dev/terminal/sessions/launch-configurations). * Open a new Tab with `CTRL-SHIFT-T` or by clicking on the `+` in the top bar. * Close the current Tab with `CTRL-SHIFT-W` or by clicking on the `x` on hover over a Tab. * Reopen closed tabs with `CTRL-ALT-T`. * Move a Tab to the Left / Right with `CTRL-SHIFT-LEFT` / `CTRL-SHIFT-RIGHT` or by clicking and dragging a Tab. * Activate the Previous / Next Tab with `CTRL-PGUP` / `CTRL-PGDN` or by clicking a Tab. * Activate the first through eighth Tabs with `CTRL-1` thru `CTRL-8`. * Switch to the last Tab with `CTRL-9`. * Double-click a Tab to rename it. * Right-clicking on a Tab reveals more options you can explore within the [Command Palette](https://docs.warp.dev/terminal/command-palette) or [Keyboard Shortcuts](https://docs.warp.dev/getting-started/keyboard-shortcuts#fundamentals). {% endtab %} {% endtabs %} {% hint style="success" %} **Terminal Tip**\ Using your `.zshrc` or `.bashrc` files on macOS or Linux, you can set a new Tab name: {% code overflow="wrap" %} ```bash # Set name, where MyTabName would be whatever you want to see in the Tab ( either a fixed string, $PWD, or something else ) function set_name () { echo -ne "\033]0;MyTabName\007" } # Add the function to the environment variable in either Zsh or Bash if [ -n "$ZSH_VERSION" ]; then precmd_functions+=(set_name) elif [ -n "$BASH_VERSION" ]; then PROMPT_COMMAND='set_name' fi ``` {% endcode %} Learn more about Tab names [here](https://learn.microsoft.com/en-us/windows/terminal/tutorials/tab-title#set-the-shells-title). {% endhint %} ### Tab Restoration Tab Restoration enables you to reopen recently closed tabs for up to 60 seconds. Configure this feature in `Settings > Features > Session > Enable reopening of closed sessions` ### CTRL-TAB Behavior `CTRL-TAB` shortcut defaults to activate the previous / next Tab. You can configure the shortcut to cycle the most recent session, including any [Split Panes](https://docs.warp.dev/terminal/windows/split-panes), in `Settings > Features > Keys > Ctrl-Tab behavior` ### Tabs Behavior Please see our [Appearance > Tabs Behavior](https://docs.warp.dev/terminal/appearance/tabs-behavior) docs for more Tab related settings. ### How Tabs work {% embed url="<https://www.loom.com/share/84d15cc7eb5a4a668bb86be9e827f261?hide_owner=true&hide_share=true&hide_title=true&hideEmbedTopBar=true>" %} Tabs Demo {% endembed %} --- # Source: https://docs.warp.dev/agent-platform/platform/team-access-billing-and-identity-permissions.md # Team Access, Billing, and Identity Permissions This page explains how access to integrations and Ambient Agents work across your Warp team, how billing and credits apply, and how Warp maps user identities across integrations such as Slack, Linear, and GitHub. *** ## Team Access Integrations are created at the team level, not per-user. Once a Slack or Linear integration is installed, everyone on your Warp team can use **@Warp** in the connected workspace. The integration behaves the same way for all teammates, and everyone shares the same underlying environment configuration. When someone triggers an ambient agent for the first time, Warp may prompt them to grant GitHub authorization so the agent can open pull requests or push branches under their identity. This allows each run to use the correct permissions without requiring additional setup from an admin. #### Team and billing requirements Integrations and [Ambient Agents](https://docs.warp.dev/agent-platform/ambient-agents/ambient-agents-overview) run inside Warp's cloud, which means usage is billed based on [AI credits](https://docs.warp.dev/support-and-community/plans-and-billing/ai-credits). Credits are shared at the team level. Your team must meet the following requirements to run integrations: * You must be on a plan that supports [**add-on credits**](https://docs.warp.dev/support-and-community/plans-and-billing/add-on-credits). * Supported: **Build, Business** * Not supported: Pro, Turbo, Lightspeed, legacy Business. * Your team needs at least **20 add-on credits** available to run an integration * All integration usage is billed to the team’s add-on credit balance Integrations do not draw from personal monthly base credits. If the team’s balance reaches zero, integrations and ambient agents will pause until credits are added. {% hint style="info" %} If you’re on an enterprise plan, please reach out to your dedicated Warp representative with any billing questions related to integrations. {% endhint %} ### Identity mapping Warp needs a reliable way to know which person an Ambient Agent run is acting for, across Warp, Slack, Linear, and GitHub. * Slack uses a dedicated account-linking flow to map a Slack user to their Warp account. This is the recommended path for Slack-triggered agents, since it doesn’t rely on email matching. * Linear currently maps identities using email address matching. Your Linear email must match your Warp account email for Warp to correctly attribute and scope agent runs. * Each teammate must authorize GitHub before an agent can write PRs or push branches on their behalf * Agents always operate using the GitHub permissions of the triggering user This ensures runs are scoped to what the user is allowed to see and modify, and that ownership of PRs remains clear across teams and repositories. *** ## Data & permissions #### Slack / Linear Installing the Warp app gives Warp access to the Slack channels or Linear teams where the app is installed. Access cannot be narrowed to individual issues or threads. **When a run is triggered, Warp receives:** * The content of the tagged thread or issue * Relevant surrounding context used to build the agent prompt Warp stores only the content required for the agent to complete its task. You can message @Warp directly, mention it in channels, or tag it on specific issues depending on the integration. #### GitHub Warp’s behavior in GitHub is defined by two layers of control: 1. **The Warp GitHub App installation scope** * Determines which organizations and repositories Warp can read and write to * Can be edited at any time in GitHub settings 2. **Permissions of the triggering user** * Agents inherit the user’s read/write privileges * Agents cannot elevate permissions, see additional repos, or write to repos the user cannot access **In practice, agents can only operate on repositories that:** * Are included in the environment configuration * Are accessible to both the GitHub app and the triggering user *** ## Additional Notes: How Ambient Agents Use Credits Ambient agents can run automatically in the background when activated by a trigger such as a Slack mention, a Linear update, or a scheduled task. These runs require compute and model usage, which translates to AI credit consumption. #### How credit usage works Ambient agents and integrations draw from your team’s add-on credit balance. * When a trigger activates, the agent starts a run and consumes credits until the workflow completes. * Depending on the integration and implementation of Ambient Agents, these runs may not require anyone to be present unless your workflow is designed to ask for input. #### Who configures triggers and workflows All triggers and instructions used by ambient agents are defined and controlled by your team’s authorized users. * Admins or other authorized users decide which triggers exist, when they fire, and what the agent should do in response. * Trigger behavior and the agent’s instructions (system prompts, workflow steps, repo access, etc.) are fully managed by your admins or other designated users. #### Staying aware of usage Because triggers and instructions are configured by your team, any AI credits used when an agent runs are billed to your team’s add-on credit balance. * It’s the team’s responsibility to manage triggers, confirm they behave as intended, and monitor usage. * Reviewing triggers, prompts, and agent behavior periodically helps ensure that credit usage aligns with expectations. --- # Source: https://docs.warp.dev/knowledge-and-collaboration/teams.md # Teams ## What is a team? A team is a group of Warp users who can collaborate on the command line together. Warp teams can share a dedicated workspace in Warp Drive. [Learn about pricing](https://www.warp.dev/pricing) and see our [Pricing FAQ](https://docs.warp.dev/support-and-community/plans-and-billing/pricing-faqs). {% hint style="info" %} Currently, each Warp user can only be an admin or member of one team at a time. {% endhint %} {% embed url="<https://www.youtube.com/watch?v=8UmreUTTrkg&start=199s&end=277s>" %} Teams Demo {% endembed %} ## Creating a team You can create a new team in the following ways: * Warp Drive, + Create a team * `Settings > Teams` Before you can invite team members, you will need to give your team a meaningful name. We suggest using a name to represent your organization, company, or project. {% hint style="info" %} You can rename the team by going to `Settings > Teams` and clicking on the team name, entering the new name, and pressing `ENTER` to accept. {% endhint %} <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-912c5f1cedfe6117a4f41db2b40fb97cf29907c1%2Fteam-creation-settings.png?alt=media" alt=""><figcaption></figcaption></figure> If you create a team, you become the team’s admin and will be the only person who can delete the team. Reference [Team roles and permissions](#team-roles-and-permissions) for more info. ### Inviting new team members Under `Settings > Teams` you can copy the invite link for your Warp team and paste it to your clipboard. {% hint style="warning" %} If you’re on a paid plan, upgrading will automatically include all team members in your billing. Adding new members after upgrading will also add them as paid seats. For more details on how team member billing works, please see our [billing FAQs](https://docs.warp.dev/support-and-community/plans-and-billing/pricing-faqs#what-counts-as-a-team-member-and-how-does-billing-work-for-members). {% endhint %} <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-b8ce320cfed05ef448e4ee97e8c7be4dbc7c6214%2Fteams-invite-demo.png?alt=media" alt=""><figcaption><p>Teams settings panel</p></figcaption></figure> When you share this link with your teammates directly (we suggest using a secure channel like Slack or email), they will be able to join your team in Warp. ## Restricting team invites by domain Sometimes you may want to control your team so that people can only join if they also authenticate with a specific email domain, such as your company’s email domain. Toggle on Restrict by domain to set an explicit allowlist. If you share an invite link with somebody who’s using Warp with a domain that does not match your allowlist, they will be prompted to authenticate from an emailed link sent to a matching domain to join your team. ## Joining a team If you have received an invite link, you can use that link to sign up or log in and join your team in Warp. If your team is using domain restriction, you will need to authenticate you have access to a specific domain before you can join your team. ## Leaving and deleting teams If you’re a member of a team, you can visit `Settings > Teams` to leave a team at any time. Team admins (who created teams) may delete a team only after removing all team members. ## Team discoverability Team admins can make their teams discoverable to colleagues from the same email domain. This feature is available under `Settings > Teams > Make team discoverable`. {% hint style="info" %} While discoverability is enabled, any new user who joins the team will add a prorated charge to the team's next month's bill. See more in our [pricing docs](https://docs.warp.dev/support-and-community/plans-and-billing/pricing-faqs#what-counts-as-a-team-member-and-how-does-billing-work-for-members). {% endhint %} ## Transferring team admin Team admins can transfer their role to another team member by going to `Settings > Teams > Transfer admin` and selecting the member to whom you'd like to transfer the admin role. ## Team roles and permissions {% hint style="warning" %} If you're a Team admin, and you choose to [delete your Warp](https://docs.warp.dev/support-and-community/privacy-and-security/privacy#manage-your-data) account, the deletion flow will require that you assign a team member as the new admin. {% endhint %} | | Admin | Member | | ------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- | -------------------------------------- | | | This is the Warp user who created a team. There can only be one. | All team members who belong to a team. | | Create a team | ✓ | | | Restrict by domain | ✓ | | | Invite members | ✓ | ✓ | | Remove team members | ✓ | | | Leave a team | | ✓ | | Delete a team | ✓ | | | Transfer admin | ✓ | | | [Manage billing](https://docs.warp.dev/support-and-community/plans-and-billing/plans-and-pricing) | ✓ | | --- # Source: https://docs.warp.dev/terminal/comparisons/terminal-features.md # Terminal features To make it more transparent & useful, we also show the results for 4 other popular macOS terminal emulators. | Feature | Warp | Terminal.app | Iterm | Alacritty | Wezterm | | --------------------------------------------------------- | ---- | ------------ | ----- | --------- | ------- | | 24-bit (true color) | YES | NO | YES | YES | YES | | Bold | YES | YES | YES | YES | YES | | Dim | NO | YES | YES | YES | YES | | Italic | NO | YES | YES | YES | YES | | Underline | YES | YES | YES | YES | YES | | Underline (alt) | YES | NO | YES | YES | YES | | Double underline | NO | NO | NO | NO | YES | | Double underline (alt) | YES | NO | YES | YES | YES | | Curly underline | NO | NO | YES | NO | YES | | Colored underline | NO | NO | NO | NO | YES | | Blink | NO | YES | NO | NO | NO | | Reverse | YES | YES | YES | YES | YES | | Invisible (but copy-paste-able) | NO | YES | NO | YES | NO | | Strikethrough | YES | NO | YES | YES | YES | | Overline | NO | NO | NO | NO | YES | | [Magic string](https://en.wikipedia.org/wiki/Unicode#Web) | YES | YES | YES | YES | YES | | Emojis | YES | YES | YES | YES | YES | | Right-to-left | NO | YES | NO | NO | NO | | Sixel graphics | NO | NO | YES | NO | NO | Based on the [terminal-testdrive.sh](https://gist.github.com/hellricer/e514d9615d02838244d8de74d0ab18b3). --- # Source: https://docs.warp.dev/university/developer-workflows/testing-and-security.md # Testing & Security Use Warp agents to improve code reliability and security. This section covers automated test generation, vulnerability scanning, dependency updates. Learn how to bring continuous testing and secure coding practices into your daily workflow. ### Jump right in <table data-view="cards"><thead><tr><th data-type="content-ref"></th><th data-hidden data-card-cover data-type="image"></th></tr></thead><tbody><tr><td><a href="testing-and-security/how-to-generate-unit-and-security-tests-to-debug-faster">how-to-generate-unit-and-security-tests-to-debug-faster</a></td><td><a href="https://298962004-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrXGUo2JtQbwWQPKjndDm%2Fuploads%2Fgit-blob-93993cd6a8a10aa2cdf8bcc6d14483cd4de59277%2FWarp%20Drive%20Prompts%20Debugging%20App.png?alt=media">Warp Drive Prompts Debugging App.png</a></td></tr><tr><td><a href="testing-and-security/how-to-prevent-secrets-from-leaking">how-to-prevent-secrets-from-leaking</a></td><td><a href="https://298962004-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrXGUo2JtQbwWQPKjndDm%2Fuploads%2Fgit-blob-134ca6e65d6fa5e48102ead003dd41277a708b1c%2FWarp%20Drive%20Edu%20Rules.jpg?alt=media">Warp Drive Edu Rules.jpg</a></td></tr></tbody></table> --- # Source: https://docs.warp.dev/terminal/appearance/text-fonts-cursor.md # Text, Fonts, & Cursor {% hint style="info" %} Once a new font is installed in your system, you need to restart Warp for it to show on the list of options. You may also need to check "View all available system fonts" to see the new font. {% endhint %} ## How to use it ### Text and Fonts To access it, go to `Settings > Appearance > Text` From there you can customize: * Font type * Font weight * Font size * Line height * Use thin strokes * The default setting prevents text from being blurry on low-DPI displays. {% hint style="warning" %} On Linux, Warp does not support the "Use thin stroke" feature. {% endhint %} * Enforce minimum contrast * The default setting tweaks named colors to meet accessibility standards. * Show ligatures in terminal {% hint style="info" %} Enabling ligatures can reduce performance. Warps default font, Hack, doesn't yet have ligature support. We recommend font that supports ligatures (e.g. [Fira Code](https://github.com/tonsky/FiraCode)) as a stopgap. {% endhint %} ### Cursor To access it, go to `Settings > Appearance > Cursor` From there you can customize: * Select the Cursor type to Bar, Block, or Underline. * Toggle the Blinking cursor or from the [Command Palette](https://docs.warp.dev/terminal/command-palette), type "Cursor blink" and toggle the setting. {% hint style="info" %} Cursor type preference is disabled while [Vim keybindings](https://docs.warp.dev/terminal/editor/vim) (vim mode) is active. {% endhint %} ## How it works {% embed url="<https://www.loom.com/share/be2fa6ab10a3494a8c57a5431966905b?hide_owner=true&hide_share=true&hide_title=true&hideEmbedTopBar=true>" %} Text and Fonts Demo {% endembed %} {% embed url="<https://www.loom.com/share/6ce3218472894763bb80a26b6c632c4d?hide_owner=true&hide_share=true&hide_title=true&hideEmbedTopBar=true>" %} Cursor Demo {% endembed %} --- # Source: https://docs.warp.dev/terminal/more-features/text-selection.md # Text Selection ## Smart Selection **Smart selection** goes beyond the typical double-click selection, which only highlights a single word. Instead, it uses semantic rules to treat common patterns (like URLs or file paths) as one unit, even when separated by punctuation or whitespace. <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-193352c4cee174eebbcff3d530b604da8c917e52%2Fsmart-selection.png?alt=media" alt=""><figcaption><p>Using smart selection to select a file path by double clicking.</p></figcaption></figure> Double-click on text in the input or blocklist. The following patterns are recognized: 1. URLs 2. File paths 3. Email addresses 4. IP addresses 5. Floating point numbers, including scientific notation. You can toggle smart selection on the `Settings > Features > Terminal > Double-click smart selection`. If disabled, you can instead manually select specific punctuation characters to be included within word boundaries. ## Rectangular Selection **Rectangular selection** lets you highlight text in a clean vertical block (also called *column* or *box* selection). This is especially useful for copying command output, logs, or prefixed text without grabbing unwanted characters. <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-98d2d2b41c2b0e0cc6cd62bf31087c63f1643a0a%2Frectangular-selection.png?alt=media" alt=""><figcaption><p>Using rectangular selection to select by columns in the block output.</p></figcaption></figure> Hold the modifier keys while dragging your mouse: * macOS: `CMD-OPT` * Windows and Linux: `CTRL-ALT` --- # Source: https://docs.warp.dev/terminal/appearance/themes.md # Themes ### Theme Picker The Theme Picker can be accessed by: 1. Navigating to `Settings > Appearance`. 2. Clicking the Custom Themes (shaded) box. 3. Upon selecting a theme, Warp's appearance will update accordingly. 4. Press the checkmark to save the selection, or the X to revert. {% hint style="info" %} The Theme setting persists, meaning Warp will open with the same settings in the next session. {% endhint %} ### Theme Creator Automatically create new themes based on a background image. 1. Go to `Settings > Appearance > Current Theme` or search "Open Theme Picker" within the [Command Palette](https://docs.warp.dev/terminal/command-palette). 2. Click the `+` button in the theme picker. 3. Upload the image and select the background color. 4. Click "Create Theme" to save and accept the new theme. ### OS Theme Sync Warp supports synchronizing your theme with the OS’s light and dark themes. To enable this: 1. Open the `Settings > Appearance` dialog. 2. Click the toggle "Sync with OS". 3. You will then be able to select a specific theme for when the OS is in light mode and dark mode. ## How it works <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-20d3599d5fd425ac06adcd83837e4d1f634007c2%2Ftheme-picker.gif?alt=media" alt=""><figcaption><p>Theme picker demo</p></figcaption></figure> <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-69f7fa985fdb3acdc6041af64bf848ba31a6698b%2Ftheme-creator.gif?alt=media" alt=""><figcaption><p>Theme creator demo</p></figcaption></figure> <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-1fa2c838244f1456a5aebf16a8037fa8eb9e9d6a%2Ftheme-sync-demo.gif?alt=media" alt="theme os sync demo"><figcaption><p>Theme sync demo</p></figcaption></figure> ## Default Themes By default, Warp ships with these themes: <table data-view="cards"><thead><tr><th align="center"></th><th align="center"></th></tr></thead><tbody><tr><td align="center"><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-72c990c1e5ed682da0cffad5eba740be47cc4c3a%2Fwarp-dark.png?alt=media" alt=""></td><td align="center">Warp Dark</td></tr><tr><td align="center"><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-b0abfd1f53b1783766aa380b576e2daf30359735%2Fwarp-light.png?alt=media" alt=""></td><td align="center">Warp Light</td></tr><tr><td align="center"><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-1e0219a8ecbe3bdba5006c597c3e6def69e95e81%2Fdracula.png?alt=media" alt=""></td><td align="center">Dracula</td></tr><tr><td align="center"><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-67eab274f75fc910b76a19a7a7947aa670f8b8cf%2Fsolarized-dark.png?alt=media" alt=""></td><td align="center">Solarized Dark</td></tr><tr><td align="center"><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-b03986790eb80a9087d659b7eb45a026593f4ec6%2Fsolarized-light.png?alt=media" alt=""></td><td align="center">Solarized Light</td></tr><tr><td align="center"><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-f6e839e7ad1200efd3b46f3ca37cd13822133ac1%2Fgruvbox-dark.png?alt=media" alt=""></td><td align="center">Gruvbox Dark</td></tr><tr><td align="center"><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-94f2d3bc7a8ca1ad8dfb9cf6b256c9823206be30%2Fgruvbox-light.png?alt=media" alt=""></td><td align="center">Gruvbox Light</td></tr><tr><td align="center"><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-d42e247d0d2dc8d282acc9ef25a7c2ab215014fe%2Fjellyfish.png?alt=media" alt=""></td><td align="center">Jellyfish</td></tr><tr><td align="center"><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-d7f6bf7d62fb8cdce0018dedb084ab4302efa1f0%2Fkoi.png?alt=media" alt=""></td><td align="center">Koi</td></tr><tr><td align="center"><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-70e5bf4ed6afcaeff767a8e419e0e9a76ff548ee%2Fleafy.png?alt=media" alt=""></td><td align="center">Leafy</td></tr><tr><td align="center"><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-09d390fb3a434925c2d1737487f52fa935a003d4%2Fmarble.png?alt=media" alt=""></td><td align="center">Marble</td></tr><tr><td align="center"><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-c9c84d02776d187532fbb09e032a931360903194%2Fpink-city.png?alt=media" alt=""></td><td align="center">Pink City</td></tr><tr><td align="center"><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-aeb07839e2c782c93f2f3f5dd770b86ef1fc48ab%2Fsnowy.png?alt=media" alt=""></td><td align="center">Snowy</td></tr><tr><td align="center"><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-17befdfb17abf9cc24fe987e167ae472f75b1dfb%2Fdark-city.png?alt=media" alt=""></td><td align="center">Dark City</td></tr><tr><td align="center"><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-8cb7c1179d71b0d823e88a3eb323a7b30a4853aa%2Fred-rock.png?alt=media" alt=""></td><td align="center">Red Rock</td></tr><tr><td align="center"><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-2016bedb055f6ba3f07e47c2e5796defaa531636%2Fcyber-wave.png?alt=media" alt=""></td><td align="center">Cyber Wave</td></tr><tr><td align="center"><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-aab7a9ff8985507e7ea67488a3135fc1ae2b8c7b%2Fwillow-dream.png?alt=media" alt=""></td><td align="center">Willow Dream</td></tr><tr><td align="center"><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-625611e115a2ee1566b5a2460ccc364432e25fed%2Ffancy-dracula.png?alt=media" alt=""></td><td align="center">Fancy Dracula</td></tr><tr><td align="center"><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-d94d4ec01ba78e9978b75519ba484fe8188b2fbe%2Fphenomenon.png?alt=media" alt="" data-size="original"></td><td align="center">Phenomenon</td></tr><tr><td align="center"><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-be7d03d1002c3e2e6d9761b72f941211d6d8af06%2Fsolar-flare.png?alt=media" alt="" data-size="original"></td><td align="center">Solar Flare</td></tr><tr><td align="center"><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-5c5a5a42ffc69b154b37dcab65475b56a2a94e48%2Fadeberry.png?alt=media" alt="" data-size="original"></td><td align="center">Adeberry</td></tr></tbody></table> --- # Source: https://docs.warp.dev/agent-platform/agent/using-agents/third-party-cli-agents.md # Third-Party CLI Agents Warp can show an agent utility bar when you’re working with third-party CLI coding agents. It provides integrated controls for images, voice, files, and diffs, giving those agents first-class support directly in Warp. {% embed url="<https://drive.google.com/file/d/1XQ5LpAdi6R36tszV7ZFnOwdqni-W025c/view?usp=sharing>" %} This includes: * Built-in [Voice](https://docs.warp.dev/agent-platform/agent/voice) transcription. * An easy way to [attach images as context](https://docs.warp.dev/agent-platform/agent/using-agents/agent-context/images-as-context) to your prompt * Browse files in the [Code Editor](https://docs.warp.dev/code/code-editor/) and review code changes directly in the [Code Review](https://docs.warp.dev/code/code-review/) panel. Note: when Warp detects an agent session, the utility bar appears automatically. ### Supported CLI agents Warp currently supports: * Claude Code * OpenAI Codex (CLI) * Amp * Gemini CLI * Droid * OpenCode {% hint style="info" %} If you’re using one of these and don’t see the utility bar, make sure you’re on the latest Warp version and that the command is being run inside Warp (not an external terminal). {% endhint %} --- # Source: https://docs.warp.dev/university/developer-workflows/beginner/trigger-reusable-actions-with-saved-prompts.md # Trigger Reusable Actions With Saved Prompts {% embed url="<https://www.youtube.com/watch?t=3s&v=pE15zjJmB4E>" %} ### 1. Automating Commits When working on a PR, instead of typing long commit messages, you can use a saved prompt. Warp’s agent: * Runs a `git diff` and summarizes the change * Generates a clean commit message * Pushes it automatically to your branch You can view the saved prompt in Warp Drive → Team Prompts, where it shows: * Who created it * When it was last used * How many times it’s been run Because it’s saved in your team drive, anyone can reuse it. *** ### 2. Reviewing Code with Prompts Before creating a PR, you can run another saved prompt. This agent: * Reads your current branch * Reviews the diffs * Highlights logical or stylistic issues * Suggests improvements Example output: > “Logic bug detected — potential race condition in async handler.” Warp automatically surfaces real issues before you even open a PR — saving time and reducing back-and-forth with reviewers. *** ### 3. Opening a Pull Request Automatically Once your code looks clean, trigger your final saved prompt. Warp will: * Generate a PR title and description * Push the branch * Open the PR on GitHub * Even link related issues if found in commit messages *** ### 4. Sharing and Team Usage All saved prompts live in your Team Warp Drive, meaning: * Anyone can discover and run them * You can parameterize or modify them * Usage history and creator info are visible This makes it easy for teams to standardize common actions like code reviews, deployments, or build runs. --- # Source: https://docs.warp.dev/support-and-community/troubleshooting-and-support/troubleshooting-login-issues.md # Troubleshooting Login ## Can't sign up for or log into Warp Clicking it should open a signup or login pop-up. If clicking the button opens a blank pop-up window, try using a proxy. Your ISP or Firewall may be blocking the app's call to `*.googleapis.com`. {% hint style="info" %} In some older Ruby development environments, `.dev` domains do not resolve properly and you may need to delete the `/etc/resolver/dev`, see more [here](https://superuser.com/questions/1374892/dev-domains-dont-resolve). {% endhint %} ## All browsers This error could occur if you installed an ad blocker or have stale browser cookies, including our Firebase auth pop-up. **To fix it:** 1. Disable your ad blocker for `app.warp.dev` 2. Clear any cookies and cache, or open a incognito / private browser window 3. Try <http://app.warp.dev/login> again ### Safari You are on Safari and you might notice in your console that you get the following messages: 1. `Unable to access localStorage` 2. And every time you click the "Sign Up" button, you get `Unhandled Promise Rejection: Error: This operation is not supported in the environment the application is running on. "location.protocol" must be http, https, or chrome-extension and web storage must be enabled.` This error occurs likely because you are blocking all cookies in Safari's security settings, but Firebase Auth requires the cookie to record whether the user is logged in. **To fix it:** 1. Go to Safari Preferences > Privacy 2. Uncheck the "Block all cookies" checkbox ## Proxies When behind a proxy, a possible workaround is to disable QUIC in the browser. It will then fall back to TCP and likely allow login. * In Chrome, or Chromium-based browsers like Edge, Opera, and Arc, type `chrome://flags` into the address bar. 1. In the search bar on the flags page, type `Experimental QUIC protocol`. 2. Locate the "Experimental QUIC protocol" flag and click on the drop-down menu next to it. 3. Select "Disabled" from the options. 4. Relaunch Chrome for the changes to take effect. * In Firefox, type `about:config` into the address bar. 1. You will see a warning message. Click on the "Accept the Risk and Continue" button. 2. In the search bar, type `network.http.http3.enable`. 3. Double-click on the `network.http.http3.enable` preference to set its value to `false`. This will disable QUIC in Firefox. 4. Restart Firefox for the changes to take effect. * In Safari, Unfortunately, there is no built-in option to disable QUIC in Safari. Safari uses QUIC as its default transport protocol and does not provide a user-accessible setting to disable it. ## SSO login ### Can't open Warp from SSO When directly launching Warp from Okta or other SSO providers', you may see an error message like "`Unable to process request due to missing initial state...`". This is due to a limitation with Warp authentication APIs. Instead, do the following: 1. Go to [app.warp.dev/login](http://app.warp.dev/login) 2. Choose “Continue with SSO” 3. Login with your normal SSO credentials ### I logged in with another method before and now can't use SSO In cases where you logged in with another method, please do the following to fix SSO login: 1. Go to [app.warp.dev/login](http://app.warp.dev/login) 2. Login with the original method that you used to create your Warp account (email, Google, Github). 3. Once logged in, go to [app.warp.dev/link\_sso](https://app.warp.dev/link_sso) 4. This should link your login to SSO. You can now proceed to login with "Continue with SSO". ## Flagged as Fraudulent If you received the message "This account has been flagged as fraudulent.", this means that you have failed one or more checks in our fraud detection system, and you will be unable to authenticate to Warp or leverage AI features. Please note that creating multiple accounts or using throwaway emails is against our [Terms of Service](https://www.warp.dev/terms-of-service) and increases the chance of triggering this system significantly. ### False Positives At times, ad-blockers or systems like Pi-hole may falsely trigger this system. You may be able to remediate this error by temporarily disabling these and attempting login again. ### Requesting an Appeal If you are still unable to authenticate, you may email <appeals@warp.dev> to request an appeal. Please include the email of the account you are experiencing the issue on so a member of our support team can investigate. This may take 5-10 days. If you have an active subscription and continue to have login issues, please see the rest of the recommendations on [this page](#get-help-with-login-issues). ## How to get an Auth token to login If the browser does not open from Warp directly when you click "Sign up" or "Sign in". Please go to the [Signup](https://app.warp.dev/signup) page to create an account or [Login](https://app.warp.dev/login) page if you already have one, then copy the auth token from the "here" link on the logged\_in page and paste it into Warp. If nothing happens when you click "Take me to Warp" on the logged-in page. If this happens to you, copy the "here" link on the web logged-in page (<https://app.warp.dev/logged\\_in>) to copy the authentication token, then paste it into the app as shown below. {% hint style="warning" %} The on Linux and Windows, the default copy-and-paste [Keyboard shortcuts](https://docs.warp.dev/getting-started/keyboard-shortcuts) are `CTRL+SHIFT+C` and `CTRL+SHIFT+V` respectively.\ \ On Linux and WSL you should install and set your default `$BROWSER` to `brave-browser` to workaround any copy-paste issues. Please see the workaround guide below. {% endhint %} <figure><img src="https://2974137108-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD4dBaHbuMVNs0iB2iqZ1%2Fuploads%2Fgit-blob-7ffe106c39bee67b4de47eddcf0f27d4093bfb0d%2Fauth-token-demo.gif?alt=media" alt=""><figcaption><p>Authentication Token Linux</p></figcaption></figure> ![Authentication Token Mac](https://2974137108-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD4dBaHbuMVNs0iB2iqZ1%2Fuploads%2Fgit-blob-274f6892c157adc07e85a64f2d9ca0d2cd58577c%2Fauth-token-flow.png?alt=media) If "Take me to Warp" is still not working it may be due to a [proxy issue](#proxies), please see this article for more information on a workaround [here](https://embiid.blog/post/WARP-does-not-work-after-submitting-an-invite-code/). ## Get help with login issues If Sign Up or Login does not work after trying the steps above, please [contact us](https://www.warp.dev/contact) for support. --- # Source: https://docs.warp.dev/reference/cli/troubleshooting.md # Troubleshooting ## Environments #### How do I see what environment my integration is using? List your integrations: ``` warp integration list ``` This shows each integration, its ID, and the environment it’s linked to. Use this to confirm which environment to inspect or update before making changes. #### How do I see what’s inside that environment? Once you know the environment ID, run: ``` warp environment get <ENV_ID> ``` This prints the full configuration, including: * The **environment ID** (used in other commands) * The **name** * The **Docker image** * Associated **repos** This is the most reliable way to verify what the agent will see when it runs. #### How do I add or remove repos and setup commands? Use `warp environment` update. You can modify environments incrementally without recreating them. **Add a repo:** ``` warp environment update <ENV_ID> --repo owner/repo ``` **Remove a repo:** ``` warp environment update <ENV_ID> --remove-repo owner/repo ``` **Add a setup command:** ``` warp environment update <ENV_ID> --setup-command "your command" ``` **Remove a setup command (must match exactly):** ``` warp environment update <ENV_ID> --remove-setup-command "exact command" ``` Notes: * Warp may prompt you to adjust GitHub app permissions when adding repos. * Setup commands run in the order they are defined. #### **How do I delete an environment?** If an environment is no longer needed: ``` warp environment delete <ID> ``` Only do this once you’ve confirmed no active integrations are relying on that environment. If an integration points to a deleted environment, requests from Slack/Linear will fail until you create a new integration with a valid environment. ### Integrations #### **How do I figure out what environment my integration is using?** List your integrations: ``` warp integration list ``` This shows each integration, its ID, and the environment it’s attached to. Use this when you’re unsure which environment to update or delete. #### **I created a new environment, but don’t see it when running warp integration create** Check: 1. Environment exists and is healthy: `warp environment list` 2. You’re on the correct Warp team. Make sure your local CLI is logged into the same team where the environment was created. 1. If both look correct and the environment still doesn’t appear, recreate it and confirm there were no errors during creation. ## GitHub & repo access issues #### **I’m being asked to authorize GitHub when creating/using an environment** This happens when: * You add a repo that Warp doesn’t have access to yet, or * You personally haven’t granted the Warp GitHub app permissions for that repo. Follow the GitHub popup flow to install/adjust the Warp GitHub app. #### **The agent can’t open PRs or push changes to my repo** Check the following: 1. **Repo is part of your environment**. 1. Make sure the repo is listed in: `warp environment get <id>` 2. **Warp GitHub app has access to that repo** 1. In GitHub’s settings, confirm the Warp app is installed and that the repo is selected. 3. **You have write access** 1. The agent inherits your GitHub permissions. If you only have read access, Warp can’t open PRs or push branches on your behalf. ### Docker image & environment failures #### **I see errors like “pull access denied” or “repository does not exist”** Check: 1. The Docker image name and tag are correct. 2. The image is public on Docker Hub. 3. You can pull it locally: `docker pull <image_name>` If local docker pull fails, fix the image visibility/name first, then recreate or update the environment with a working image. #### **The agent can’t find tools or runtimes inside the environment** This usually means the Docker image is missing required dependencies. Fix by either: * Updating the Dockerfile used to build the image, then pushing a new version to Docker Hub and updating the environment with the new image, or * Adding additional setup commands to install the missing tools: `warp environment update --setup-command "apt-get update && apt-get install -y "` --- # Source: https://docs.warp.dev/university/how-warp-uses-warp/understanding-your-codebase.md # Understanding Your Codebase {% embed url="<https://www.youtube.com/watch?v=pohnoRZas-E>" %} ### 1. The Challenge Kevin, who worked on Warp’s Windows and Linux builds, wanted to jump into a feature he hadn’t touched before: Block Sharing.\ \ This feature spans two codebases — Warp’s client (Rust) and server (Go) — making onboarding tough. That’s where Codebase Context comes in. *** ### 2. What Is Codebase Context? Warp’s Codebase Context uses semantic search to understand your code.\ It doesn’t rely on exact function or variable names — instead, it searches based on meaning. You can use it through a shared workflow in Warp Drive. This prompt tells Warp to: * Search across both client and server codebases * Summarize how a feature works end-to-end * Include clickable links to relevant files *** ### 3. Real Example: Block Sharing Kevin types `block sharing` into Warp’s shared workflow.\ Warp: 1. Searches the client codebase for the rendering logic 2. Searches the server codebase for GraphQL handlers 3. Generates a summary combining both perspectives The output includes: * Architecture overview * Linked file paths * Function and module summaries No more manual onboarding or guessing file names. *** ### 4. Incremental Syncing Whenever you change a file in an indexed repo: * Warp detects the update automatically * Re-embeds just that file * Keeps your code context fresh That means agents never reference stale code. *** ### 5. Why It’s Game-Changing Codebase Context helps teams: * Understand large or unfamiliar codebases * Onboard faster * Jump between client and server logic seamlessly * Generate accurate, clickable documentation > “This saved us hours of one-on-one walkthroughs.” — Lucy --- # Source: https://docs.warp.dev/support-and-billing/uninstalling-warp.md # Logging Out & Uninstalling ## Logging out You can log out of Warp through: * `Settings > Account`, with the "Log out" button * [Command Palette](https://docs.warp.dev/terminal/command-palette), with the "Log Out" item. <figure><img src="https://2297236823-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MbqIgTw17KQvq_DQuRr%2Fuploads%2Fgit-blob-5906d41458bb7f76b7df89941c20e995c6cfab94%2Flogout.gif?alt=media&token=d344f745-4250-4187-b740-9bfc4358d814" alt=""><figcaption><p>Logout Demo</p></figcaption></figure> ### Known issues: 1. When you log out, you will lose all running processes and all unsaved objects. 2. When you log out and log in to Warp with another account, the following preferences will be preserved from the original account: 1. Theme 2. Keybindings 3. Settings (e.g. autosuggestion, notifications, font size, welcome tips status) 3. Whenever you log in to Warp, you will receive the onboarding survey. ## Uninstalling Warp Removing Warp from your computer involves uninstalling Warp and then removing any files or data. {% hint style="info" %} If you're using Warp Preview, replace "Warp-Stable" with "Warp-Preview" in the commands below (e.g., `defaults delete dev.warp.Warp-Preview`). {% endhint %} {% tabs %} {% tab title="macOS" %} **Uninstalling Warp by dmg** * Remove Warp with `sudo rm -r /Applications/Warp.app` * Go to Mac `Finder > Applications` and right-click on Warp, and "Move to Trash" **Uninstalling Warp by Homebrew** * Remove Warp with `brew uninstall warp` **Removing Warp settings, files, logs, and database** ```bash # Remove Warp settings defaults defaults delete dev.warp.Warp-Stable # Remove Warp logs sudo rm -r $HOME/Library/Logs/warp.log # Remove Warp database, codebase context, and mcp logs sudo rm -r "$HOME/Library/Group Containers/2BBY89MBSN.dev.warp/Library/Application Support/dev.warp.Warp-Stable" # Remove Warp user files, themes, and launch configurations sudo rm -r $HOME/.warp # Note: Removing $HOME/.warp will delete files for both Stable and Preview. # If you wish to delete it all, then: sudo rm -r $HOME/.warp ``` **For Warp Preview users:** ```bash # Remove Warp Preview settings defaults defaults delete dev.warp.Warp-Preview # Remove Warp Preview logs sudo rm -r $HOME/Library/Logs/warp_preview.log # Remove Warp Preview database, codebase context, and mcp logs sudo rm -r "$HOME/Library/Group Containers/2BBY89MBSN.dev.warp/Library/Application Support/dev.warp.Warp-Preview" # Note: Removing $HOME/.warp will delete files for both Preview and Stable. # If you wish to delete it all, then: sudo rm -r $HOME/.warp ``` {% endtab %} {% tab title="Windows" %} **Uninstalling Warp installed by Installer** * Search for "Installed apps" section of the Control Panel. * Search for and Uninstall the Warp application **Removing Warp settings, files, logs, and database** ```powershell # Remove Warp settings in the Windows Registry Remove-Item -Path "HKCU:\Software\Warp.dev\Warp" -Recurse -Force # Remove Warp user files, logs, database, codebase context, and mcp logs Remove-Item -Path "$env:LOCALAPPDATA\warp\Warp" -Recurse -Force # Remove Warp themes and launch configurations Remove-Item -Path "$env:APPDATA\warp\Warp" -Recurse -Force ``` **For Warp Preview users:** ```powershell # Remove Warp Preview settings in the Windows Registry Remove-Item -Path "HKCU:\Software\Warp.dev\Warp-Preview" -Recurse -Force # Remove Warp Preview user files, logs, database, codebase context, and mcp logs Remove-Item -Path "$env:LOCALAPPDATA\warp\Warp-Preview" -Recurse -Force # Remove Warp Preview themes and launch configurations Remove-Item -Path "$env:APPDATA\warp\Warp-Preview" -Recurse -Force ``` {% endtab %} {% tab title="Linux" %} **Uninstalling Warp by package manager** ```bash # apt uninstall sudo apt remove warp-terminal # dnf uninstall sudo dnf remove warp-terminal # zypper uninstall sudo zypper remove warp-terminal # pacman uninstall sudo pacman -R warp-terminal ``` * Uninstall Warp using the same package manager that you used to [install](https://docs.warp.dev/getting-started/readme) it. **Removing Warp settings, files, logs, and database** ```bash # Remove Warp settings files rm -r ${XDG_CONFIG_HOME:-$HOME/.config}/warp-terminal # Remove Warp user files, logs, database, codebase context, and mcp logs rm -r ${XDG_STATE_HOME:-$HOME/.local/state}/warp-terminal # Remove Warp themes and launch configurations rm -r ${XDG_STATE_HOME:-$HOME/.local/share}/warp-terminal ``` **For Warp Preview users:** ```bash # apt uninstall sudo apt remove warp-terminal-preview # dnf uninstall sudo dnf remove warp-terminal-preview # zypper uninstall sudo zypper remove warp-terminal-preview # pacman uninstall sudo pacman -R warp-terminal-preview ``` * Uninstall Warp Preview using the same package manager that you used to install it. ```bash # Remove Warp Preview settings files rm -r ${XDG_CONFIG_HOME:-$HOME/.config}/warp-terminal-preview # Remove Warp Preview user files, logs, database, codebase context, and mcp logs rm -r ${XDG_STATE_HOME:-$HOME/.local/state}/warp-terminal-preview # Remove Warp Preview themes and launch configurations rm -r ${XDG_STATE_HOME:-$HOME/.local/share}/warp-terminal-preview ``` {% endtab %} {% endtabs %} --- # Source: https://docs.warp.dev/terminal/universal-input.md # Universal Input The **Universal Input** is the main input interface for using Warp. It accepts both terminal commands and natural language [Agent](https://docs.warp.dev/agent-platform/agent/agents-overview) prompts, letting you run shell workflows and kick off agentic tasks from the same place. <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-766a60f8279296a57ecf75be97c6f290c3a0fcfc%2Funiversal-input-header.png?alt=media" alt=""><figcaption><p>The Universal Input with an Agent prompt and multiple contextual chips active.</p></figcaption></figure> {% embed url="<https://www.youtube.com/watch?v=4c05OEqzQIA>" %} Using the Universal Input {% endembed %} ### Breaking down the Universal Input The Universal Input brings together all of Warp's input features into one streamlined editor: * **Natural language auto-detection**: Warp can automatically detect when you're writing in plain English, as opposed to a shell command, and switch you into [Agent Mode](https://docs.warp.dev/agent-platform/agent/using-agents#what-is-agent-mode). * **Contextual chips**: See your current directory, previous conversations, Git status, node version, and more, all inline with your input. * [**Modern text editing**](https://docs.warp.dev/terminal/editor): Enjoy IDE-like editing features such as [completions](https://docs.warp.dev/terminal/command-completions), [syntax highlighting](https://docs.warp.dev/terminal/editor/syntax-error-highlighting), mouse support, [rectangular selection](https://docs.warp.dev/terminal/more-features/text-selection), and [Next Command](https://docs.warp.dev/agent-platform/agent/active-ai) predictions. * **Input toolbelt**: Quickly access [@-context](https://docs.warp.dev/agent-platform/agent/using-agents/agent-context/using-to-add-context), [Slash Commands](https://docs.warp.dev/agent-platform/agent/slash-commands), [voice input](https://docs.warp.dev/agent-platform/agent/voice), [image attachments](https://docs.warp.dev/agent-platform/agent/using-agents/agent-context/images-as-context) as context, and other AI features. If you prefer a more traditional terminal input experience, you can switch to [Classic Input](https://docs.warp.dev/terminal/universal-input/classic-input) in `Settings > Appearance > Input`. Classic input also supports oh-my-posh, PS1 customizations, and [same line prompt.](https://docs.warp.dev/appearance/prompt#same-line-prompt) ## Input Modes The Universal Input supports three modes, shown in the input switcher: #### 1. Agent Mode (natural language) Ask Warp's agent to build, debug, or run tasks in natural language. Warp uses leading LLMs to interpret your request, run the right commands, surface code diffs, and stream results directly into your session. *Indicator:* Agent icon is highlighted in the switcher. <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-44313f3ec0b837a7e2511a5697ef9ccfc20df579%2Fagent-mode-locked-universal-input.png?alt=media" alt=""><figcaption><p>Universal Input locked in Agent Mode.</p></figcaption></figure> #### 2. Terminal Mode (shell commands) Enter shell commands just like any terminal, with the benefit of Warp’s modern editor features—completions, syntax highlighting, error underlining, and more included. *Indicator*: Terminal icon highlighted in the switcher <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-333abe5879df0e4996845818c6533a815b814c05%2Funiversal-input-terminal-mode.png?alt=media" alt=""><figcaption><p>Universal Input locked in Terminal Mode.</p></figcaption></figure> #### 3. Auto-detection Mode Warp automatically detects whether your input is natural language or a shell command. You can stay in detection mode or explicitly lock into Terminal or Agent Mode. *Indicator*: Neither mode highlighted. <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-d5dcbebd1f2e208464691577da766cc4b778b3d7%2Fzero-state-universal-input.png?alt=media" alt=""><figcaption><p>Universal Input in an empty / zero state.</p></figcaption></figure> When Warp detects an input type, the input switcher softly highlights the corresponding mode. | Agent (natural language) mode detected | Terminal (shell) mode detected | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | <img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-30040589c9a8ed14324dee4c86aace157d4ed6e5%2Fauto-detection-agent-mode%20(1).png?alt=media" alt="" data-size="original"> | <img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-4a1d11df3d7a2172061b4cf4fdbd71a358244451%2Fauto-detection-terminal-mode.png?alt=media" alt="" data-size="original"> | {% hint style="info" %} The model Warp uses to detect natural language automatically is completely local. {% endhint %} #### Disabling Natural Language Auto-detection By default, auto-detection is enabled. This means Warp decides whether to treat your input as a command or an Agent prompt. * **To turn off auto-detection**: go to `Settings > AI > Input > Natural Language Detection` * When disabled: You’ll explicitly be in either Terminal or Agent Mode. Use the following keyboard shortcuts to switch between modes: * `CMD+I` (macOS) * `CTRL+I` (Windows/Linux) | Agent (natural language) mode enabled | Terminal (shell) mode enabled | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | <img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-3347460337471dc4b017a308c4deabf46f9da05d%2Fauto-detection-off-terminal-mode.png?alt=media" alt="" data-size="original"> | <img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-18af28c161f1ef2a6277fb3fae7b21009cf1f4ac%2Fauto-detection-off-agent-mode.png?alt=media" alt="" data-size="original"> | ### Entering Agent Mode [Agent Mode](https://docs.warp.dev/agent-platform/agent/using-agents) is how you interact directly with Warp's AI to ask questions, run tasks, and collaborate in natural language. There are multiple ways to enter Agent Mode depending on where you are in your workflow: {% tabs %} {% tab title="macOS" %} * **Type natural language directly**: If auto-detection is enabled, you can type a task or question into the input, and Warp will recognize it as natural language using its local auto-detection feature. * **Use keyboard shortcuts**: Quickly toggle into Agent Mode with `CMD + I`. * **Attach blocks to a prompt**: From any block you want to use as context, click the ✨ icon in the toolbelt or select "Attach block(s)" to AI query from the block’s context menu. * **Force a mode with special characters**: * `!` at the start of input forces Terminal Mode. * `*` at the start of input forces Agent Mode. * **Switch modes manually**: Click the Agent icon in the input switcher to lock into Agent Mode, or click the terminal icon to switch to Terminal Mode. {% endtab %} {% tab title="Windows" %} * **Type natural language directly**: If auto-detection is enabled, you can type a task or question into the input, and Warp will recognize it as natural language using its local auto-detection feature. * **Use keyboard shortcuts**: Quickly toggle into Agent Mode with `CTRL + I`. * **Attach blocks to a prompt**: From any block you want to use as context, click the ✨ icon in the toolbelt or select "Attach block(s)" to AI query from the block’s context menu. * **Force a mode with special characters**: * `!` at the start of input forces Terminal Mode. * `*` at the start of input forces Agent Mode. * **Switch modes manually**: Click the Agent icon in the input switcher to lock into Agent Mode, or click the terminal icon to switch to Terminal Mode. {% endtab %} {% tab title="Linux" %} * **Type natural language directly**: If auto-detection is enabled, you can type a task or question into the input, and Warp will recognize it as natural language using its local auto-detection feature. * **Use keyboard shortcuts**: Quickly toggle into Agent Mode with `CTRL + I`. * **Attach blocks to a prompt**: From any block you want to use as context, click the ✨ icon in the toolbelt or select "Attach block(s)" to AI query from the block’s context menu. * **Force a mode with special characters**: * `!` at the start of input forces Terminal Mode. * `*` at the start of input forces Agent Mode. * **Switch modes manually**: Click the Agent icon in the input switcher to lock into Agent Mode, or click the terminal icon to switch to Terminal Mode. {% endtab %} {% endtabs %} When you're in Agent Mode, the **Agent icon** will be highlighted in the [Universal Input](https://docs.warp.dev/terminal/universal-input) <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-459e3d0871237902108a86d93231039a60126d95%2Fusing-agents-universal-input.png?alt=media" alt=""><figcaption><p>The Agent icon in the Universal input indicates that Agent Mode is active.</p></figcaption></figure> In Classic Input, you’ll also see a ✨ sparkles indicator inline. <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-f886e83dea97c4d46e3af7e2ee5274d8da4c79a1%2Fundo_my_git_commit.png?alt=media" alt="The sparkles on the command line indicate Agent Mode is active."><figcaption><p>The sparkles in the Classic input indicates that Agent Mode is active.</p></figcaption></figure> By default, entering Agent Mode starts you in *Pair Mode*, where you can continue an ongoing conversation by asking follow-up questions or assigning tasks. From here, you can ask the agent to build, debug, fix, or even deploy code as needed. ### Exiting Agent or Terminal Modes You can leave Agent or Terminal Modes in several ways: {% tabs %} {% tab title="macOS" %} * **Keyboard shortcuts** * Press `ESC` to quit the current mode. * Toggle modes with `CMD + I` * **Force modes with special characters** * `!` at the start of input forces Terminal Mode. * `*` at the start of input forces Agent Mode. * **Manual switching**: click the Agent icon or Terminal icon in the input switcher to swap modes directly. {% endtab %} {% tab title="Windows" %} * **Keyboard shortcuts** * Press `ESC` to quit the current mode. * Toggle modes with `CTRL + I` * **Force modes with special characters** * `!` at the start of input forces Terminal Mode. * `*` at the start of input forces Agent Mode. * **Manual switching**: click the Agent icon or Terminal icon in the input switcher to swap modes directly. {% endtab %} {% tab title="Linux" %} * **Keyboard shortcuts** * Press `ESC` to quit the current mode. * Toggle modes with `CTRL + I` * **Force modes with special characters** * `!` at the start of input forces Terminal Mode. * `*` at the start of input forces Agent Mode. * **Manual switching**: click the Agent icon or Terminal icon in the input switcher to swap modes directly. {% endtab %} {% endtabs %} ### Natural Language Auto-detection Settings Warp can automatically detect when you’re writing in plain English and switch you into Agent Mode. If needed, you can customize or disable this behavior. #### Fixing false detections If certain shell commands are mistakenly detected as natural language, you can add them to the denylist: `Settings > AI > Input > Natural language denylist` #### Turning off auto-detection To disable natural language detection entirely, go to: `Settings > AI > Input Auto-detection` When auto-detection is turned off, you’ll need to explicitly switch between Terminal Mode and Agent Mode using `CMD + I` (macOS) or `CTRL + I` (Windows/Linux). #### First-time setup The first time you enter Agent Mode, Warp will display a banner with the option to disable natural language detection for your command line: <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-33884cb98a4271fb1f7f91f543c69a916201ad4e%2Fbanner_for_auto-detection_first_experience.png?alt=media" alt="Warp displays an option to toggle natural language detection on / off"><figcaption><p>Warp displays an option to toggle natural language detection on / off</p></figcaption></figure> *** ## Contextual Input Chips <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-d17dca10aa39d057a67cf1f658d6ccb70136a9f1%2Funiversal-input.png?alt=media" alt=""><figcaption><p>Universal Input's contextual input chips, from left to right: conversation management, node version, active directory, Git and code diffs, and 2 attached images.</p></figcaption></figure> The Universal Input includes **contextual chips** that provide inline information about your current environment. These chips surface relevant details such as directory paths, Git status, conversations, or runtime versions, making it easier to navigate, manage context, and take quick actions without leaving the input. #### Conversation Management chip The conversation management chip shows your recent [Agent conversations](https://docs.warp.dev/agent-platform/agent/using-agents/agent-conversations), allowing you to reference or reopen them directly. These chips appear in both Agent Mode and Terminal Mode, so you can continue a previous conversation without starting from scratch. For more details, see [Agent Conversations](https://docs.warp.dev/agent-platform/agent/using-agents/agent-conversations). <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-e6aebd77f638d66aa5b8139f15e723a1640d88a1%2Fconversation-management-chip-universal-input.png?alt=media" alt=""><figcaption><p>The Conversation Management chip displays recent Agent conversations and lets you continue or reopen them directly from the input.</p></figcaption></figure> These chips appear in both Agent Mode and Terminal Mode, helping you continue a previous conversation without starting from scratch. For more details, refer to [Agent Conversations](https://docs.warp.dev/agent-platform/agent/using-agents/agent-conversations). #### Active directory chip The active directory chip displays your current working directory and enables simple file navigation. Clicking on a folder moves you into that folder, while clicking on a file opens it in [Warp’s native code editor](https://docs.warp.dev/code/code-editor). This makes it possible to move around your workspace seamlessly from within the input. <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-fbafa08ab1d21e589fb926d91f1f1adb53d01ea4%2Factive-directory-chip.png?alt=media" alt=""><figcaption><p>The Active Directory chip lets you browse directories and open files directly from the input.</p></figcaption></figure> #### Git Status chip When you’re in a Git-tracked repository, the Git Status chip displays file- and line-level changes. You can switch branches by clicking on the branch name or review modified files in Warp’s [native Code Review panel](https://docs.warp.dev/code/code-review). The chip updates automatically as files are added, removed, or changed, giving you a real-time view of your repository state. <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-e0404cd113606edbb9935fcf1a1e09fae9c41e84%2Fgit-branch-chip.png?alt=media" alt=""><figcaption><p>The Git Status chip highlights repository changes and provides quick access to code review.</p></figcaption></figure> #### File attachments chips The file attachments chip lets you attach images and other files directly to a prompt. You can upload up to five [images at a time (as Agent Context)](https://docs.warp.dev/agent-platform/agent/using-agents/agent-context/images-as-context) using the upload button in the toolbelt or by dragging and dropping files into the input. This makes it possible to add screenshots, diagrams, PDFs, or other references directly to your query, giving the Agent richer context. <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-7d042eb500539619b25cc68a4e2dd7d3aa7f7ec9%2Fimages-as-context-chip.png?alt=media" alt=""><figcaption><p>The File Attachments chip allows you to add images or files as context for your queries.</p></figcaption></figure> **Node version chip** In repositories that include a `package.json`, a Node Version chip appears to show the detected Node.js version. This gives you visibility into your runtime environment without needing to run additional commands. <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-70bfe906800315b7d2c69f88959b0ad88ae233c6%2Fnode-version-chip.png?alt=media" alt=""><figcaption><p>The Node Version chip displays the Node.js version detected in your repository.</p></figcaption></figure> {% hint style="info" %} At this time, contextual chips are not configurable, but they update automatically based on your workspace and repository state. {% endhint %} *** ## Input toolbelt The **Input Toolbelt** provides quick-access controls alongside the Universal Input. These tools allow you to attach context, run shortcuts, and configure Agent behavior without leaving the input field. Depending on the mode you are in, some features are automatically enabled or will place you into Agent Mode. <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-355d68a2299029c670c9c5acaee63d414e51f728%2Finput-toolbar.png?alt=media" alt=""><figcaption><p>The Input Toolbelt in Warp’s Universal Input, showing quick-access controls for context, slash commands, voice input, attachments, profiles, and model selection.</p></figcaption></figure> #### @ - Context The [@ context chip](https://docs.warp.dev/agent-platform/agent/using-agents/agent-context/using-to-add-context) is available when you are working in a Git repository. Outside of a Git repo, it appears dimmed. This feature allows you to attach specific files, folders, code symbols, Warp Drive objects, or blocks from other sessions as context for a prompt. Typing **@** inside the input also opens a context menu where you can search for and select files or directories to include. Attaching context with @ works in both Agent mode (when interacting with Agents) and classic Terminal commands (for referencing file paths). **Slash Commands** [Slash Commands](https://docs.warp.dev/agent-platform/agent/slash-commands) are available in Agent Mode and Auto-detection Modes. They allow you to quickly run built-in actions or saved prompts without leaving the input field. Typing / displays a menu of available commands, which can be customized or extended. **Voice Input** [Voice Input](https://docs.warp.dev/agent-platform/agent/voice) automatically places you in Agent Mode. Speaking directly into Warp lets you phrase tasks, commands, or queries in natural language, and Warp will interpret them as if you had typed them. This feature is especially useful when you want hands-free interaction or when dictating longer tasks. **Image Attachments** You can [attach images as context](https://docs.warp.dev/agent-platform/agent/using-agents/agent-context/images-as-context) directly to a prompt, which will automatically place you in Agent Mode. This is useful when you want the Agent to reference visual materials such as screenshots, diagrams, or other assets. You can add images using the image upload button in the toolbelt (located at the bottom left or right, depending on your input layout). For additional methods of attaching images, see [Images as Context](https://docs.warp.dev/agent-platform/agent/using-agents/agent-context/images-as-context). **Fast Forward** Fast Forward gives the Agent full autonomy for the remainder of a task or conversation. When enabled, the next prompt you enter allows the Agent to execute commands, read files, and apply code diffs without asking for confirmation each time. This is useful for complex workflows where step-by-step approval would slow things down. #### Profile Picker The Profile Picker allows you to select from different [Agent Profiles](https://docs.warp.dev/agent-platform/agent/using-agents/agent-profiles-permissions), each with its own configuration of autonomy, tools, and default model. If you have only one profile, the picker will not appear in the UI. From the Profile Picker, you can view all available profiles, switch between them, and quickly see the default model attached to each one. Profiles make it possible to tailor Agent behavior for different types of tasks or projects. ### Model Picker The Model Picker is tied to your current Agent Profile. Each profile has a default model, but you can override it at any time using the picker. Warp curates a selection of top large language models (LLMs) for you to choose from, balancing speed, quality, and reasoning ability depending on your needs. For a full list of supported models and guidance on when to use them, see [Model Choice](https://docs.warp.dev/agent-platform/agent/using-agents/model-choice). --- # Source: https://docs.warp.dev/support-and-community/troubleshooting-and-support/updating-warp.md # Updating Warp Warp automatically checks for updates on startup. A notification will appear in the top right corner of the Warp window when a new update is available. ![Update Available](https://2974137108-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD4dBaHbuMVNs0iB2iqZ1%2Fuploads%2Fgit-blob-976978f8711aaeb81d33778ed5c3a9d0a5820831%2Fupdate-available%20\(1\).png?alt=media) To check for updates, search for "update" in the [Command Palette](https://docs.warp.dev/terminal/command-palette) or go to `Settings > Accounts` and click "Check for Update". ![Check for Update manually](https://2974137108-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD4dBaHbuMVNs0iB2iqZ1%2Fuploads%2Fgit-blob-99ab35e6148db2f437666654403f1e91bcb92151%2Fcheck-for-update.gif?alt=media) If nothing happens, it means you already have the latest stable build. ## Auto-Update Issues Warp cannot auto-update if it does not have the correct permissions to replace the running version of Warp If this is the case, a banner will prompt you to manually update Warp. ![Update Available](https://2974137108-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FD4dBaHbuMVNs0iB2iqZ1%2Fuploads%2Fgit-blob-5b32279175fc86324225ee14a9eb1b38db1f8489%2Fupdate-available-bar%20\(1\).png?alt=media) There are 2 main causes of this: 1. You opened Warp directly from the mounted volume instead of dragging it into your Applications directory. If this is the case, the easiest fix is to quit Warp, drag the application into /Applications, and restart Warp. 2. You are a non-Admin user. This can happen if you use a computer with multiple profiles. If you have admin access on the computer, opening the app with the admin user should fix the auto-update issues. {% hint style="info" %} (Oct 2022): There is a known issue with [auto-update on MacOS Ventura](https://docs.warp.dev/support-and-community/known-issues#auto-update-on-macos-ventura). {% endhint %} --- # Source: https://docs.warp.dev/terminal/more-features/uri-scheme.md # URI Scheme ## How to use it There are several ways to use the URI scheme: * Open new window `warp://action/new_window?path=<path_to_folder>` * Open new tab `warp://action/new_tab?path=<path_to_folder>` * Open Launch Configuration `warp://launch/<launch_configuration_path>` {% hint style="info" %} [Warp Preview](https://docs.warp.dev/support-and-community/community/warp-preview-and-alpha-program) URI scheme begins with `warppreview://` {% endhint %} ## How it works Example of Warp [URIs in use in Warp + Raycast Extension](https://github.com/raycast/extensions/blob/74521b70b62355004b0958393a64f9417b1ff3a6/extensions/warp/src/uri.ts). {% embed url="<https://twitter.com/i/status/1678432353461637121>" %} Warp + Raycast Extension Demo made using URIs {% endembed %} --- # Source: https://docs.warp.dev/agent-platform/agent/using-agents/agent-context/urls-as-context.md # URLs as Context ## Referencing websites via URLs You can attach a public URL to any prompt to provide page content as context. Warp will scrape the page and surface the extracted text directly to the model. * Only publicly accessible pages are supported. * The full page is added to the model’s context, which may increase credit usage for long documents. * Only the specific URL you provide is processed. The agent won’t explore the site, follow links, or crawl beyond that page. {% hint style="info" %} **Important**: URL attachments are different from web search. If you need the agent to look something up, gather real-time information, or pull in multiple sources, use [Web Search](https://docs.warp.dev/agent-platform/agent/using-agents/web-search) instead. {% endhint %} <figure><img src="https://769506432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAULCelT4yIUOcSwWWvPk%2Fuploads%2Fgit-blob-176c44d1b3c99c2e2f5dbc7b87ff754a9fa38c26%2Furl-as-context.png?alt=media" alt=""><figcaption><p>Example of referencing docs via a URL</p></figcaption></figure> --- # Source: https://docs.warp.dev/support-and-billing/plans-and-pricing/usage-overages.md # Overages (Legacy) Warp offers usage-based pricing for Subscribers, allowing continued access to premium AI models even after reaching the monthly credits limit included in the plan (billed at $0.04 per additional credit). You can manage usage-based pricing directly in Warp under `Settings > Billing and usage`. <figure><img src="https://2297236823-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MbqIgTw17KQvq_DQuRr%2Fuploads%2Fgit-blob-20297bbb8ac85f05c80c25049bdd5714e3f7130d%2Foverages-settings.png?alt=media" alt=""><figcaption><p>Billing and usage tab in settings, where admins can manage premium model usage overages</p></figcaption></figure> ### Enabling overages **Team admins** can enable or disable "premium model overages" and set a monthly spending limit from the settings dashboard. Individual subscribers can manage their own overage settings directly in the settings dashboard. {% hint style="info" %} Usage-based pricing only applies after you’ve reached the AI credit limit on your plan — you won’t be charged for any overages until that point, even if overages are enabled. {% endhint %} ### How overages work Overages are managed **at the team level**, even if your team only has one member (i.e. individual users). Once overages are enabled, any team member who reaches their monthly AI credit quota can continue to have access to premium models — with **additional usage billed at cost ($0.04 per credit)**. Each user on the team has their **own credit limit**, but only **credits made beyond that personal quota** are considered overages. These charges are tracked and billed **collectively** at the team level. For example, if your plan includes 10,000 AI credits per team member: * If **User A** reaches their 10,000 limit, any further usage by them counts towards overages. * If **User B** has only used 2,000 credits, they still have 8,000 included credits left. * User A's overages **do not** consume User B's remaining quota. Overages are **billed monthly**, or when your team accumulates **$20 worth of charges**, whichever comes first. ### Plan upgrades and cancellations If you upgrade from lower to a higher plan, your monthly credit limit will update immediately to match the higher plan. (For exact limits, see our [pricing page](https://www.warp.dev/pricing).) However, **any overages incurred while on the lower plan will still be billed** — upgrading does not retroactively remove or reduce existing overage charges. If you cancel your subscription, you’ll retain access to premium features until the end of your current billing period. Any usage-based overages accrued during that period will be charged at the time your plan ends.\\ --- # Source: https://docs.warp.dev/agent-platform/agent/using-agents.md # Using Agents ## Agents in Warp Agents in Warp let you go beyond manual commands by collaborating with AI directly inside the [Agentic Development Environment](https://www.warp.dev/blog/reimagining-coding-agentic-development-environment). You can describe a task in natural language, and the Agent will translate it into runnable commands, manage context, and break complex requests into clear steps. Agents are designed to work alongside you. They never act without visibility, and you remain in control of their autonomy and permissions. **Key concepts related to Agents include:** * Agent Mode — run terminal or coding workflows with natural language. * [Conversations](https://docs.warp.dev/agent-platform/agent/using-agents/agent-conversations) — group queries and blocks for a specific task. * [Context](https://docs.warp.dev/agent-platform/agent/using-agents/agent-context) — attach and manage information to improve responses. * [Task Lists](https://docs.warp.dev/agent-platform/agent/using-agents/agent-tasklists) — break complex requests into clear, trackable steps. * [Agent Management](https://docs.warp.dev/agent-platform/agent/using-agents/managing-agents) — monitor, configure, and control active agents. * [Profiles and Permissions](https://docs.warp.dev/agent-platform/agent/using-agents/agent-profiles-permissions) — customize autonomy, tools, and behavior. {% hint style="info" %} To make sure you can fully use Agents, confirm that the global AI toggle is enabled under `Settings > AI`. {% endhint %} ## What is Agent Mode? Agent Mode is the primary way to interact with Warp's Agent. It lets you run terminal or coding workflows by typing plain English instead of shell commands or IDE operations. When you enter a request, Warp uses leading LLMs to interpret it, suggest or run the right commands, surface code diffs when applicable, and stream results directly into your session, all tailored to your environment and setup.\ \ **Agent Mode can:** 1. Understand natural language input, not just command syntax. 2. Execute commands and use their output to guide the next step. 3. Correct itself when it encounters mistakes or errors occur. 4. Learn and integrate with any service that has public docs or `--help`. 5. Leverage saved workflows, project context, and other guidelines to improve accuracy. ### Entering Agent Mode Agent Mode is how you interact directly with Warp’s AI to ask questions, run tasks, and collaborate in natural language. There are multiple ways to enter Agent Mode depending on where you are in your workflow: {% tabs %} {% tab title="macOS" %} * Type natural language directly: If auto-detection is enabled, you can type a task or question into the input, and Warp will recognize it as natural language using its local auto-detection feature. * Use keyboard shortcuts: Quickly toggle into Agent Mode with `CMD + I`. * Attach blocks to a prompt: From any block you want to use as context, click the ✨ icon in the toolbelt or select Attach block(s) to AI query from the block’s context menu. {% endtab %} {% tab title="Windows" %} * Type natural language directly: If auto-detection is enabled, you can type a task or question into the input, and Warp will recognize it as natural language using its local auto-detection feature. * Use keyboard shortcuts: Quickly toggle into Agent Mode with `CTRL + I`. * Attach blocks to a prompt: From any block you want to use as context, click the ✨ icon in the toolbelt or select Attach block(s) to AI query from the block’s context menu. {% endtab %} {% tab title="Linux" %} * Type natural language directly: If auto-detection is enabled, you can type a task or question into the input, and Warp will recognize it as natural language using its local auto-detection feature. * Use keyboard shortcuts: Quickly toggle into Agent Mode with `CTRL + I`. * Attach blocks to a prompt: From any block you want to use as context, click the ✨ icon in the toolbelt or select Attach block(s) to AI query from the block’s context menu. {% endtab %} {% endtabs %} When you're in Agent Mode, the **Agent icon** will be highlighted in the [Universal Input](https://docs.warp.dev/terminal/universal-input/). <figure><img src="https://769506432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAULCelT4yIUOcSwWWvPk%2Fuploads%2Fgit-blob-459e3d0871237902108a86d93231039a60126d95%2Fusing-agents-universal-input.png?alt=media" alt=""><figcaption><p>The Agent icon in the Universal input indicates that Agent Mode is active.</p></figcaption></figure> In Classic Input, you’ll also see a ✨ sparkles indicator inline. <figure><img src="https://769506432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAULCelT4yIUOcSwWWvPk%2Fuploads%2Fgit-blob-f886e83dea97c4d46e3af7e2ee5274d8da4c79a1%2Fundo_my_git_commit.png?alt=media" alt="The sparkles on the command line indicate Agent Mode is active."><figcaption><p>The sparkles in the Classic input indicates that Agent Mode is active.</p></figcaption></figure> By default, entering Agent Mode starts you in *Pair Mode*, where you can continue an ongoing conversation by asking follow-up questions or assigning tasks. From here, you can ask the agent to build, debug, fix, or even deploy code as needed. ### Models Powering Agent Mode Agent Mode is backed by a curated selection of leading large language models (LLMs). By default, Warp uses **Claude 4 Sonnet** for "auto", balancing speed and quality. However, you can switch to other supported models at any time based on your needs—for example, choosing a faster model for quick iterations or a more advanced model for complex reasoning. For the full list of available models and guidance on when to use each, see [Model Choice](https://docs.warp.dev/agent-platform/agent/using-agents/model-choice). ### Demo: Starting a Coding Task with Warp Here's an example from [Warp University](https://www.warp.dev/university), where Zach demonstrates a quick fix using Warp’s Agents to code: {% embed url="<https://www.youtube.com/watch?v=IuFSuOYstfg>" %} --- # Source: https://docs.warp.dev/university/how-warp-uses-warp/using-images-as-context-with-warp.md # Using Images As Context With Warp {% embed url="<https://youtu.be/_Pc7bL0zAoM?si=v7-0svwdNgv9t-Se>" %} ### 1. Why Images Matter Humans process visuals much faster than text — and the same applies to AI.\ \ When you’re trying to explain a UI issue (“this button is off by a few pixels”), describing it with words can be clunky.\ \ That’s why Warp supports images as context — letting you attach screenshots directly to your prompts. > 🧠 “An image is worth a thousand words” — especially when debugging UI or building frontend components. *** ### 2. What Image Context Does Image Context allows you to: * Attach one or more screenshots to an agent query * Give visual references for bugs, designs, or features * Let the agent visually interpret what you mean This is especially useful for frontend tasks like: * Rebuilding a design from Figma * Identifying layout misalignments * Debugging visual bugs *** ### 3. Building an MCP Marketplace from Figma Taking a Figma mock of an MCP Server Marketplace and using it as input for Warp. #### Step 1. Capture the Mock Take a screenshot of your design (e.g., the MCP Marketplace layout). #### Step 2. Attach the Image In Warp: 1. Click the 📎 image icon in the input bar 2. Select your screenshot 3. Confirm it’s attached to the query *** ### 4. Running the Task Once attached, Warp’s agent: 1. Detects the attached image 2. Searches your repo (e.g., `collection.rs`) 3. Generates diffs that recreate the UI from the mock 4. Creates corresponding components and layout logic You can view and edit these diffs in the Code Diff Viewer, similar to GitHub’s diff interface. > 💡 Warp recommends smaller, focused diffs — agents perform better when working iteratively. *** ### 5. Reviewing the Results The agent built: * A UI component for the MCP Marketplace * Static data for three MCP servers (`Linear`, `GitHub`, `Stripe`) * Proper rendering logic and styling Verify the UI in Warp: > “It matched the mock almost perfectly — something that would’ve taken me two days was done in 20 minutes.” *** ### 6. Optimizing for Performance Because images can consume tokens quickly, Warp automatically: * Resizes images client-side * Compresses them intelligently before sending * Minimizes token usage without losing clarity --- # Source: https://docs.warp.dev/university/how-warp-uses-warp/using-mcp-servers-with-warp.md # Using MCP Servers with Warp {% embed url="<https://www.youtube.com/watch?v=8vn2brhJrF8>" %} ### 1. What Are MCP Servers? MCP (Model Context Protocol) servers let Warp agents connect to external systems like GitHub, Linear, or Jira — so they can read, write, and reason about those systems natively. Each MCP server adds its own “tools” to Warp’s agent.\ For example: * The Linear MCP Server handles tickets. * The GitHub MCP Server handles pull requests and issues. *** ### 2. Problem Setup Andrew starts with Warp’s universal input, but it doesn’t yet know what a “ticket” is. > Prompt Example:\ > “Help me solve this ticket.” At this point, Warp can’t find or interpret the ticket, because no MCP server is connected. *** ### 3. Adding the Linear MCP Server To connect Linear: 1. Open the **MCP Panel** in Warp 2. Click **Add Server** 3. Paste in the JSON configuration for the Linear MCP Server Once added, Warp: * Starts the MCP server * Loads its tools (e.g., `get_ticket`, `update_ticket`, `create_ticket`) * Makes them available to the agent instantly *** ### 4. Using Rules with MCP Servers Andrew adds a rule called **check-linear**, which helps the agent automatically associate “tickets” with the Linear MCP Server. > **Rule Example:**\ > “When the user says ‘ticket,’ check Linear.” Rules make context switching between systems seamless — the agent doesn’t need reminders. *** ### 5. Dynamic Context Loading Warp’s MCP support is **dynamic**: * You can start a conversation without any connected MCPs * Add one mid-session * The agent automatically updates its context on the next message No need to restart Warp or reset your session. *** ### 6. Running the Task After adding Linear, Andrew runs: > “Help me solve this ticket.” Now the agent: * Queries Linear for the ticket * Pulls all related context * Reads the codebase for linked references * Generates the appropriate fix He verifies the output by running: ```bash cargo run ``` --- # Source: https://docs.warp.dev/agent-platform/agent/using-agents/agent-context/using-to-add-context.md # Using @ to Add Context ## How the @ context menu works You can attach specific files, folders, code symbols, Warp Drive objects, and blocks from other sessions as context to a prompt using the @ symbol. When you’re inside a **Git repository**, typing @ opens a context menu that allows you to search for and select files or directories to include. {% hint style="info" %} Attaching context with @ works in **both natural language mode** (when interacting with Agents) and **classic terminal commands** for referencing file paths. {% endhint %} **Note**: the search in the @-context menu is always relative to the root of the Git repository, even when you're working in a subdirectory. This means you can reference *any* file or folder tracked in the repo, regardless of the current working directory. <figure><img src="https://769506432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAULCelT4yIUOcSwWWvPk%2Fuploads%2Fgit-blob-d7cba00e669cdcfc69701594c81b3953d75b62a3%2Fat-context.png?alt=media" alt=""><figcaption><p>Using the @ symbol to search for and attach a file or folder from the project root.</p></figcaption></figure> Additionally, no codebase indexing (via [Codebase Context](https://docs.warp.dev/code/codebase-context)) is required — file search is available immediately in any Git-initialized directory. The search also respects `.gitignore` rules and will exclude ignored files from the results. <figure><img src="https://769506432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAULCelT4yIUOcSwWWvPk%2Fuploads%2Fgit-blob-6d78304b9065ad3e81f8064a769dca86e5fde610%2Fat-context-app.png?alt=media" alt=""><figcaption><p>Filtering files using @app to locate files containing “app” in their name or path.</p></figcaption></figure> <figure><img src="https://769506432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAULCelT4yIUOcSwWWvPk%2Fuploads%2Fgit-blob-6fa227e2f327c03cb4d1486bbaeef05e4c00c6ad%2Fat-context-styles.png?alt=media" alt=""><figcaption><p>Referencing a folder or all files within it by typing @styles.</p></figcaption></figure> ### Referencing code symbols The @ menu can also be used to fuzzy-search for code symbols in your codebase. This includes functions, classes, interfaces, etc. If you type something like `@main`, Warp will surface a matching `main()` function and insert it into your prompt as a reference with the line number. By pointing the Agent to a specific symbol, you can give it exactly the context it needs to make a targeted edit or explanation. {% embed url="<https://www.loom.com/share/da0c491bd2a44ed58d4fbdf2c260b019>" %} ### Referencing Warp Drive objects Warp Drive objects are another way to attach context with **@**. You can reference: * [Workflows](https://docs.warp.dev/knowledge-and-collaboration/warp-drive/workflows) — parameterized commands you can name and save in Warp with descriptions and arguments. * [Notebooks](https://docs.warp.dev/knowledge-and-collaboration/warp-drive/notebooks) — runnable documentation consisting of markdown text and list elements, code blocks, and runnable shell snippets that can be automatically executed in your terminal session. * [Rules](https://docs.warp.dev/knowledge-and-collaboration/rules) — reusable guidelines and constraints that inform how Agents respond to your prompts/ When you select one of these objects, Warp inserts a reference token into your prompt. The contents of the object are then automatically passed as context to the Agent. {% embed url="<https://www.loom.com/share/abd065af9fea421d925664135341c682>" %} ### Referencing blocks from other sessions You are not limited to the current terminal session. With @, you can also bring in blocks of output from earlier sessions. In the demo below, Ian shows how he previously ran cargo clippy and now wants help fixing the reported errors. Typing `@cargo clippy` surfaces the relevant block, which you can insert into your prompt. Once added, the Agent parses the output and generates fixes or explanations directly. You can also reference live blocks, not just those that have already completed execution. {% embed url="<https://www.loom.com/share/a4e72847341044cca2fed59a6299e1b7>" %} ### Why @ to reference context? Attaching context with @ helps you: * Reference exact outputs instead of copy-pasting entire logs * Attaching relevant files or directories without leaving Warp * Reuse existing context and knowledge in Warp Drive This makes Agent interactions more accurate, clearer, and efficient, without additional setup. --- # Source: https://docs.warp.dev/support-and-community/troubleshooting-and-support/using-warp-offline.md # Using Warp Offline The first time you download and open Warp, you will need to be online for the initial setup. After the initial setup Warp’s core terminal features will work as expected when you’re offline, regardless of whether you are logged in or logged out. Requiring all users, logging in or logged out, to be online when first accessing Warp is required to allow use of Warp's AI and cloud features. When you first open the app, we create a unique user-ID to meter AI-usage and attach cloud objects to specific accounts. If you opt to use Warp logged-out, this unique ID is attached to an anonymous user account. {% hint style="info" %} Warp is "Offline" when you aren't connected to the internet, or if you're blocking calls `app.warp.dev` on your network. There is no explicit Offline Mode in Warp. {% endhint %} ### Cloud-based features require online access Warp’s cloud-based features which require an internet connection will not work in offline mode. Those features include: * [Warp Drive](https://docs.warp.dev/warp/knowledge-and-collaboration/warp-drive/#using-warp-drive-offline) (Some files may be read-only in offline mode) * [Warp AI](https://docs.warp.dev/agent-platform/agent/agents-overview) * [Agent Mode](https://docs.warp.dev/agent-platform/agent/using-agents/) * [Generate](https://docs.warp.dev/agent-platform/agent/generate) * [AI Autofill](https://docs.warp.dev/warp/knowledge-and-collaboration/warp-drive/workflows#warp-ai-autofill) * [Prompts](https://docs.warp.dev/warp/knowledge-and-collaboration/warp-drive/prompts) * [Active AI](https://docs.warp.dev/agent-platform/agent/active-ai) * [Voice](https://docs.warp.dev/agent-platform/agent/voice) * [Rules](https://docs.warp.dev/warp/knowledge-and-collaboration/rules) * [Model Context Protocol](https://docs.warp.dev/warp/knowledge-and-collaboration/mcp) * [Teams](https://docs.warp.dev/warp/knowledge-and-collaboration/teams) * [Session Sharing](https://docs.warp.dev/warp/knowledge-and-collaboration/session-sharing/) * [Block Sharing](https://docs.warp.dev/terminal/blocks/block-sharing) * [Refer a Friend](https://docs.warp.dev/support-and-community/community/refer-a-friend) --- # Source: https://docs.warp.dev/terminal/editor/vim.md # Input Editor Vim Keybindings ## About Vim keybindings The Vi family of programs (including Vim and Neovim) are modal text editors that allow for keyboard-driven text editing. Several shells, including `bash` and `zsh`, implement vi-style keybindings. Warp's input editor was built natively to support more modern text editing experiences, which means it replaces the shell's editor capabilities. Warp has its implementation of Vim keybindings (also known as Vim mode) you can use. ### How to enable Vim Keybindings {% hint style="info" %} With `bash` and `zsh`, Warp attempts to detect the shell's keybinding settings. If a shell vi mode is detected, Warp may suggest enabling Vim keybindings (also known as Vim mode). {% endhint %} To manually toggle Vim keybindings in Warp's input editor: * Through the [Command Palette](https://docs.warp.dev/terminal/command-palette), search for "Vim Keybindings". * Through `Settings > Features > Editor`, toggle "Edit commands with Vim keybindings". As in `bash` and `zsh`'s vi mode implementations, the editor starts in insert mode. Pressing `CTRL-C` or `ENTER` clears any pending command state. ### Customizing Keybindings At the moment, Warp only supports default Vim keybindings. One exception is the keyboard shortcut for exiting insert mode, which can be rebound under `Settings > Keyboard Shortcuts > Exit Vim Insert Mode`, or through the [Command Palette](https://docs.warp.dev/terminal/command-palette) search for "Exit Vim Insert Mode". ## Supported Keybindings Below is a list of the vim functionality implemented in Warp so far. ### Movement See [Vim docs: motion](https://vimdoc.sourceforge.net/htmldoc/motion.html) for more information. #### Basic | Command(s) | Description | | ---------------------------- | --------------------------------------------------- | | `h`, `j`, `k`, `l` | single-char movement | | `<space>`, `<backspace>` | single-char movement with line wrap | | `w`, `W`, `b`, `B`, `e`, `E` | word movement | | `ge`, `gE` | end of previous word | | `$` | end of line | | `0` | beginning of line | | `^` | first non-whitespace character of line | | `%` | jump to matching bracket | | `[`, `]` | prev/next unmatched bracket | | `_` | beginning of the current line | | `+` | first non-whitespace character of the next line | | `-` | first non-whitespace character of the previous line | #### Multi-line-related | Command(s) | Description | | ---------- | ----------------------- | | `gg`, `G` | jump to first/last line | ### Editing | Command(s) | Description | | ---------- | ----------------------------------------------------------- | | `r` | replace character under cursor | | `d`, `D` | delete a range or object | | `c`, `C` | change a range or object (delete, then go to insert mode) | | `s`, `S` | substitute (like change, but can only delete at the cursor) | | `x`, `X` | delete under cursor | | `y`, `Y` | yank (copy) into the clipboard | | `p`, `P` | paste from the clipboard | | `u`, `⌃r` | undo, redo | | `~` | toggle upper/lowercase under cursor | | `gu` | lowercase under cursor (`u` in visual mode) | | `gU` | uppercase under cursor (`U` in visual mode) | | `J` | join current and following lines | | `.` | repeat last edit | See [Vim docs: editing](https://vimdoc.sourceforge.net/htmldoc/editing.html) for more information. #### Text Objects | Command(s) | Description | | ---------------- | ------------------------------------------ | | `i` | inner (exclude delimiters in text object) | | `a` | around (include delimiters in text object) | | `w`, `W` | whitespace-delimited string (word) | | `"`, `'`, \`\`\` | quote-delimited string | | `(`, `{`, `[` | parenthesized/bracketed string | See [Vim docs: text objects](https://vimdoc.sourceforge.net/htmldoc/motion.html#text-objects) for more information. ### Search #### Character Search | Command(s) | Description | | ------------------ | ------------------------------------------------------ | | `t`, `T`, `f`, `F` | find next/prev matching character on line | | `;` | repeat last character search in the same direction | | `,` | repeat last character search in the opposite direction | See [Vim docs: left-right motions](https://vimdoc.sourceforge.net/htmldoc/motion.html#f) for more information. #### General Search Unlike Vim, general search commands don't search within the buffer. Instead, they open Warp's native command search. | Command(s) | Description | | ------------------ | ------------------------ | | `/`, `?`, `*`, `#` | open Warp command search | ### Mode Switching | Command(s) | Description | | ---------- | ----------------------------------------------------------------- | | `i` | insert text before the cursor | | `I` | insert text before the first non-whitespace character in the line | | `a` | append text after the cursor | | `A` | append text at the end of the line | | `o` | begin new line below the cursor and insert text | | `O` | begin new line above the cursor and insert text | | `v` | visual character mode | | `V` | visual line mode | See [Vim docs: insert](https://vimdoc.sourceforge.net/htmldoc/insert.html#insert) and [Vim docs: visual mode](https://vimdoc.sourceforge.net/htmldoc/visual.html#visual-mode) for more information. ### Registers | Command(s) | Description | | ---------- | --------------- | | `"` | register prefix | Warp currently supports the following registers: | Register name | Description | | ---------------- | ---------------------------------------------------------------- | | `a`–`z`, `A`–`Z` | named registers | | `+` | system clipboard | | `*` | system clipboard | | `"` | unnamed register, containing the text of the last delete or yank | See [Vim docs: registers](https://vimdoc.sourceforge.net/htmldoc/change.html#registers) for more information. ## Feedback The best way to report bugs and request features is through Warp's [GitHub Issues](https://github.com/warpdotdev/Warp/issues) page. Please note that the issue or request is for Vim Keybindings. --- # Source: https://docs.warp.dev/agent-platform/agent/voice.md # Voice Warp's Voice feature transforms how you interact with your terminal, letting you naturally speak commands and questions instead of typing them. This is especially powerful when combined with Agent Mode for complex operations or when you need to explain longer scenarios. {% hint style="info" %} Voice input functionality can be configured in `Settings > AI > Voice`. You can toggle voice input and select your preferred activation hotkey from pre-defined options. {% endhint %} {% embed url="<https://www.loom.com/share/77399be4e434443488bbe267b3548552?hideEmbedTopBar=true&hide_owner=true&hide_share=true&hide_title=true>" %} Voice Demo {% endembed %} ## Getting Started with Voice ### Initial Setup First-time users will need to grant microphone permissions: * On macOS: Accept the system permission prompt or allow Warp microphone access in `System Settings > Privacy & Security > Microphone` * On Windows: Allow Warp microphone access in `Settings > Privacy & Security > Microphone` * On Linux: Configure through system sound settings ### Using Voice There are two ways to activate Voice: 1. **Microphone Button in Agent Mode** * Click the microphone icon in Agent Mode * Start speaking when the indicator shows it's listening * Click again to stop recording 2. **Hotkey Method** {% tabs %} {% tab title="macOS" %} * Press and hold the `Fn` key (configurable) to start recording * Speak your command or query while holding the key * Release the `Fn` key to stop recording and transcribe {% endtab %} {% tab title="Windows" %} * Press and hold the `ALT-RIGHT` key (configurable) to start recording * Speak your command or query while holding the key * Release the `ALT-RIGHT` key to stop recording and transcribe {% endtab %} {% tab title="Linux" %} * Press and hold the `ALT-RIGHT` key (configurable) to start recording * Speak your command or query while holding the key * Release the `ALT-RIGHT` key to stop recording and transcribe {% endtab %} {% endtabs %} <figure><img src="https://769506432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAULCelT4yIUOcSwWWvPk%2Fuploads%2Fgit-blob-8ec7b05f1abdfc4fa153e33dfde31bd2213efbc0%2Fvoice-settings.png?alt=media" alt=""><figcaption><p>Voice settings panel showing hotkey configuration and voice input toggle options</p></figcaption></figure> ### Sample use cases Voice input makes complex interactions with Agent Mode more natural and efficient. Instead of typing lengthy queries, you can speak naturally to accomplish various tasks. For example, you might ask "Create a new Node.js project, install Express and MongoDB, then set up a basic server with a health check endpoint," or "What's the difference between chmod and chown? Give me examples of when to use each one." You can also describe multi-step system tasks like "Find all log files in my project that contain errors from the last 24 hours, create a summary of the errors, and email it to me." Agent Mode will help break down these requests into the necessary commands and provide detailed explanations. Voice input is not limited to just Agent Mode - it works across all of Warp's input interfaces. Whether you're using the Find dialog to search through text, entering commands in the terminal, or working with other input editors, you can use voice commands to quickly input your text. <figure><img src="https://769506432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAULCelT4yIUOcSwWWvPk%2Fuploads%2Fgit-blob-f221503dbf54c309fa459017ce8809890a8b7c84%2Fvoice-in-find.png?alt=media" alt=""><figcaption><p>Voice input works across Warp's editor interfaces, including the Find dialog and other input editors</p></figcaption></figure> ## Privacy & Security The transcription is powered by [Wispr Flow](https://wisprflow.ai/). Voice data is processed in real-time by Wispr Flow and is not retained as a recording after transcription. ## Usage Limits Voice features have anti-abuse limits in place to ensure fair usage. These limits are subject to change as we continue to improve the service. ## Troubleshooting ### Common Issues 1. **Microphone not detected** If your microphone isn't being detected, first check your system permissions to ensure Warp has access. You should also verify that your microphone is properly connected to your system. If issues persist, try restarting Warp to reset the connection. 2. **Poor transcription quality** To improve transcription quality, try to minimize background noise in your environment. Position yourself closer to the microphone while speaking, and verify that your microphone input levels are properly adjusted in your system settings. For best results, speak clearly at a natural pace and use complete sentences to provide better context. When referring to specific file names or commands, enunciate them clearly. It's also recommended to review the transcription before sending to ensure accuracy. 3. **Feature not activating** If the Voice feature isn't activating, confirm that your hotkey settings are correctly configured in Warp. Check for any conflicting keyboard shortcuts that might interfere with Voice activation. Also ensure that you're running the latest version of Warp, as older versions may have compatibility issues. If you are on an Enterprise plan, your administrator may have disabled Voice functionality, or it may be pending approval. --- # Source: https://docs.warp.dev/knowledge-and-collaboration/warp-drive/warp-drive-as-agent-mode-context.md # Warp Drive as Agent Mode Context Agent Mode can leverage your [Warp Drive](https://docs.warp.dev/knowledge-and-collaboration/warp-drive) contents to tailor responses to your personal and team developer workflows and environments. This includes any Workflows, Notebooks, Environmental Variables, etc.. When a Warp Drive object is pulled as context, it will be displayed in the conversation as a citation under "References" or "Derived from". Enabled by default, this can be toggled in `Settings > AI > Knowledge > Warp Drive as Agent Mode Context`. --- # Source: https://docs.warp.dev/knowledge-and-collaboration/warp-drive/warp-drive-on-the-web.md # Warp Drive on the Web ## What is Warp Drive on the Web? Warp now gives developers the ability to view their drives and shared sessions on the browser. <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-52d21001e932c73386278e1b2620eab6d6458e3f%2Fwd-web-team-workflow.png?alt=media" alt="" width="375"><figcaption><p>A web-based rendering of a Team Workflow</p></figcaption></figure> ## Accessing Warp Drive on the Web Warp's web-based viewing experience can currently be accessed via: * The [`app.warp.dev/app` homepage](https://app.warp.dev/app) * [Drive Object](https://docs.warp.dev/knowledge-and-collaboration/warp-drive/..#sharing-your-drive-objects) Links * [Session Sharing](https://docs.warp.dev/session-sharing#how-to-allow-access-to-collaborators-in-your-session) Links {% hint style="warning" %} You should be able to edit and view web-based objects and session as normal. The one exception is executing a command from a workflow or notebook since there is no shell session running on the web. {% endhint %} ## Managing Your View Preferences - Web or Desktop If the Warp app is installed, links will open on the desktop by default. You can manage whether Warp links open in Warp's desktop app or the browser in multiple ways: {% hint style="info" %} The desktop option is only presented if Warp's web service is able to detect the Warp app installed locally. Warp desktop opens localhost port 9277 to accomplish this detection. This is done in a separate process that does not have access to your terminal contents.\ \ If you would like to use Warp locally and do not have it installed, please visit our [installation guide.](https://docs.warp.dev/getting-started/readme) {% endhint %} 1. The first time you follow a link, if Warp is not installed, you will be prompted to download it. You can dismiss the popup to stay on the web. <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-6c15d2ac9052fa75752d817b0a66102fd511537b%2Fwd-popup-message.png?alt=media" alt="" width="563"><figcaption></figcaption></figure> 2. This preference can be changed at any point in *Settings > Features > General > Open links in desktop app.* Note that this setting is only available while on the web-based version of Warp. <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-b94827a5b83e6d43952114c6914880293523040d%2Fwd-open-links-preference.png?alt=media" alt="" width="563"><figcaption><p>Setting managing how to open links</p></figcaption></figure> 3. You can always switch between web and desktop views on a case-by-case basis. 1. To switch from a web-view to Desktop for a given object, open the *overflow menu > Open link on Desktop.* <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-2d8b447362bf1656dc81ae9fb8e5773ad6990423%2Fwd-switch-viewer.png?alt=media" alt="" width="563"><figcaption></figcaption></figure> 2. To stay on the web for a given object despite a global Desktop preference, follow the *View on the web* option that is part of the redirect screen to Desktop. <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-43d213d98c824a9f6282d57dd026329fee7cf746%2Fwd-view-on-web.png?alt=media" alt="" width="375"><figcaption></figcaption></figure> ## Supported Browsers Modern browser support currently includes * Chrome * Firefox * Safari --- # Source: https://docs.warp.dev/knowledge-and-collaboration/warp-drive.md # Warp Drive ## What is Warp Drive? All objects stored in Warp Drive sync immediately as they’re updated, so you and your team will always have access to the latest versions. {% embed url="<https://www.youtube.com/watch?v=8UmreUTTrkg>" %} Warp Drive, Teams, and Workflows Demo {% endembed %} ## How to access it {% tabs %} {% tab title="macOS" %} Warp Drive is accessible from the status bar in the Warp terminal or you can toggle the Warp Drive side panel with `CMD-\`. {% endtab %} {% tab title="Windows" %} Warp Drive is accessible from the status bar in the Warp terminal or you can toggle the Warp Drive side panel with `CTRL-SHIFT-\`. {% endtab %} {% tab title="Linux" %} Warp Drive is accessible from the status bar in the Warp terminal or you can toggle the Warp Drive side panel with `CTRL-SHIFT-\`. {% endtab %} {% endtabs %} <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-0288f9040db807f99341ba18e772017afdce8ed3%2FOpen_Warp_Drive.png?alt=media" alt="Warp Drive icon on top left corner of Warp"><figcaption><p>Warp Drive Icon</p></figcaption></figure> ## Workspaces in Warp Drive When you open the Warp Drive panel, you will find a personal workspace where you can store your Workflows, Notebooks, Prompts, and Environment Variables and organize them into folders. <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-d0cb97917d2ddc51af2f22680309c5fcff367270%2FWarp_Drive_Zero_State.png?alt=media" alt=""><figcaption></figcaption></figure> If you are a member of a team using Warp Drive, your team’s workspace will also be available in the side panel. <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-062dd655495a77c5e7534e1be9fe4bafe427856c%2FWarp_Drive_with_Team.png?alt=media" alt=""><figcaption></figcaption></figure> ## Organizing objects in Warp Drive with your team * Objects (e.g. Workflows, Notebooks, Prompts, and Environment Variables) and folders in Warp Drive can be sorted alphabetically and by the last updated * Any objects moved from your personal workspace into a team’s workspace will be shared with all members of your team * It is not currently possible to move an item back from a team’s workspace into a personal workspace; if you shared something inadvertently, you should copy the contents of the object to your clipboard, recreate it in your personal workspace, and then delete the object from your team workspace * It is not currently possible to drag a folder of personal Workflows into a team workspace; you will need to move objects one at a time ## Using Warp Drive offline In offline mode, some files will be read-only. You can still create and edit files while offline in your personal space. They will only be saved locally and will not be synced. They cannot be moved into a team or deleted until you are back online. <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-09dfac99a8d1b5e05c02e530d20af0f94356fa45%2Fwarp_drive_offline.png?alt=media" alt=""><figcaption><p>Warp Drive offline mode</p></figcaption></figure> ## Navigating Warp Drive with your keyboard To avoid going back and forth between your mouse and keyboard, you can use your keyboard to navigate through Warp Drive once you have either opened Warp Drive or switched focus to the Warp Drive panel. (You can also click on a blank area within Warp Drive.) The object you are navigating with your keyboard will be highlighted in an accented color. You can take these keyboard actions within Warp Drive: {% tabs %} {% tab title="macOS" %} * Press `UP`/`DOWN` or `j`/`k` to navigate to the object you want. * Press `Enter` to 1) execute an object, 2) open/collapse a workspace or folder, or 3) open the trash. * Press `CMD-ENTER` to open an object’s context menu. * Press `CMD-SHIFT-(` and `CMD-SHIFT-)` to switch focus between the terminal and Warp Drive. * Press `LEFT-ARROW` to collapse a workspace or folder * Press `RIGHT-ARROW` to open a workspace or folder * Press `Esc` to return to Warp Drive from your trash. {% endtab %} {% tab title="Windows" %} * Press `UP`/`DOWN` or `j`/`k` to navigate to the object you want. * Press `Enter` to 1) execute an object, 2) open/collapse a workspace or folder, or 3) open the trash. * Press `CTRL-ENTER` to open an object’s context menu. * Press `CTRL-SHIFT-(` and `CTRL-SHIFT-)` to switch focus between the terminal and Warp Drive. * Press `LEFT-ARROW` to collapse a workspace or folder * Press `RIGHT-ARROW` to open a workspace or folder * Press `Esc` to return to Warp Drive from your trash. {% endtab %} {% tab title="Linux" %} * Press `UP`/`DOWN` or `j`/`k` to navigate to the object you want. * Press `Enter` to 1) execute an object, 2) open/collapse a workspace or folder, or 3) open the trash. * Press `CTRL-ENTER` to open an object’s context menu. * Press `CTRL-SHIFT-(` and `CTRL-SHIFT-)` to switch focus between the terminal and Warp Drive. * Press `LEFT-ARROW` to collapse a workspace or folder * Press `RIGHT-ARROW` to open a workspace or folder * Press `Esc` to return to Warp Drive from your trash. {% endtab %} {% endtabs %} <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-b270a227ece084a6ea41dbcc66f638fccb93883e%2Fwarp_drive_nav1.png?alt=media" alt=""><figcaption><p>Warp Drive navigation states</p></figcaption></figure> To switch between panels using your keyboard, you can use the “Switch Focus to Left Panel” and “Switch Focus to Right Panel” commands in the [Command Palette](https://docs.warp.dev/terminal/command-palette). <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-c471c8ad16ced21c0b393bbba746040d8b800fd8%2Fwarp_drive_nav2.png?alt=media" alt=""><figcaption></figcaption></figure> ## Import and Export Every object in Warp Drive can be exported to or imported from a file. When importing or exporting, objects are converted as follows: * [Workflows](https://docs.warp.dev/knowledge-and-collaboration/warp-drive/workflows) import from and export to YAML (.yaml, .yml) * [Prompts](https://docs.warp.dev/knowledge-and-collaboration/warp-drive/prompts) import isn't supported at this time, but you can export to YAML (.yaml, .yml) * [Notebooks](https://docs.warp.dev/knowledge-and-collaboration/warp-drive/notebooks) import from and export to MARKDOWN (.md) * [Environment Variables](https://docs.warp.dev/knowledge-and-collaboration/warp-drive/environment-variables) import isn't supported at this time, but you can export to DOTENV (.env) ### Importing files into Warp Drive To import a local file or directory, `RIGHT-CLICK` on a folder or click `+` on a workspace and choose "Import." If importing a directory, supported files in the directory and its sub-directories will be imported into a matching folder structure. <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-74cb6c7302db2318a21a39a8769f17bdf81908d8%2Fnotebook-import-modal.png?alt=media" alt=""><figcaption><p>Import modal</p></figcaption></figure> ### Exporting files from Warp Drive To export a single Warp Drive object, `RIGHT-CLICK` on an object and choose "Export" from the menu, then select a directory for export. To export all Warp Drive objects, Open the [Command Palette](https://docs.warp.dev/terminal/command-palette#how-to-access-it), search for and select "Export all Warp Drive Objects", then select a directory for export. ## Sharing Your Drive Objects Every object in Warp Drive can be shared. There are three ways to share objects: * **Teams:** All members of a Warp team have full access to the objects in its Drive. * **Direct Sharing:** Objects can be shared directly with individuals by email. * **Link-based Sharing:** You can make an object public to anyone with the link, including those without Warp accounts. ### Sharing a Drive Object using Links To share a Drive object, navigate to the object's overflow menu, and choose "Copy link". Once the link is successfully copied to your clipboard, you can share it with teammates and reference your object in your codebase, documentation, or communication channels like Slack. {% hint style="info" %} In order to access an object, link-followers must have permission to open it through one of the sharing methods above. If they do not have permission, they can automatically request access from the object owner or team admin. {% endhint %} <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-cf376faaf78a9f2f2cce858d45f377b7f8911b7e%2Fwd-copy-link-menu.png?alt=media" alt="" width="216"><figcaption><p>Copy link Menu Item</p></figcaption></figure> ### Managing Permissions To manage a Drive object's permissions, navigate to its overflow menu and choose "Share". If the object is open, you can also use the [Command Palette](https://docs.warp.dev/terminal/command-palette#how-to-access-it) and search for "Share Pane" or click the share button in the pane header: <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-f914bba18dc86b02d7b326da6b125c6e387ef517%2Fwd-share-button.png?alt=media" alt="The pane header for a notebook, with the share button circled"><figcaption><p>Pane header share button</p></figcaption></figure> This opens a dialog that lists the current sharing settings and allows you to change them: <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-6b2434fbc61f1b6522f9cdfb606290f16c402331%2Fwd-share-dialog.png?alt=media" alt="A sharing dialog showing that anyone with the link can view, the owner has full access, and another user can edit."><figcaption><p>Warp Drive sharing dialog</p></figcaption></figure> In this dialog, you can: * Invite other users directly using the email input at the top. * Change or remove the public link-based access level. * Update the access level for individual users, or remove their access. Permissions are inherited from parent folders. For example, if a folder was shared with edit permissions, then the user would also be able to edit all objects inside the folder or its subfolders. Owners and their teammates always have full access. When sharing an object, you can choose between view and edit access. | | Can view | Can edit | Full access | | ----------------------------------- | -------- | -------- | ----------- | | Read a notebook | ✓ | ✓ | ✓ | | Execute a Workflow | ✓ | ✓ | ✓ | | Use env vars | ✓ | ✓ | ✓ | | Edit contents | | ✓ | ✓ | | Create objects in a folder | | ✓ | ✓ | | Trash or untrash | | ✓ | ✓ | | Delete permanently | | | ✓ | | Modify permissions | | | ✓ | | Move to a different folder or drive | | | ✓ | ## Troubleshooting Warp Drive * If you were previously using Warp on your own and were later invited to join a team, you may need to exit, update, and restart the Warp app to gain access to your team’s shared drive and commands * Navigating to Settings > Teams in Warp should also force a metadata update for you, which will ensure you have access to the latest versions of Workflows in your team's drive --- # Source: https://docs.warp.dev/agent-platform/platform/warp-platform.md # Warp Platform [Ambient Agents](https://docs.warp.dev/agent-platform/ambient-agents/ambient-agents-overview) and first-party [integrations](https://docs.warp.dev/agent-platform/integrations/integrations-overview) run on the Warp Platform. The platform gives you a consistent way to **trigger work**, **orchestrate and track tasks**, **execute agents** (in an optional [Environment](https://docs.warp.dev/reference/cli/integrations-and-environments), on a host), and inspect outcomes with team visibility. **Most production setups follow the same flow:** 1. A **trigger** fires (schedule, integration event, CI step, webhook, API call, or manual run). 2. Warp's **orchestration layer** creates an Ambient Agent task and tracks its lifecycle. 3. The agent executes on a **host**, optionally inside an Environment, using the required configuration and credentials. 4. The task produces a **persistent record** (status, metadata, transcript, outputs) your team can review and manage. The sections below describe the Warp Platform primitives that power this flow, and how they compose. *** ### Key concepts Before diving into the components, it helps to align on a few terms: * **Trigger**: The event that starts work (for example: cron, Slack mention, PR opened, CI failure, “run now”). * **Task:** The unit of work Warp tracks. A task includes inputs, state, metadata, and an execution record (where it ran, what it did, and what it produced). * **Context**: Additional inputs attached to a task (for example: a Slack message, PR metadata, CI logs, repository diffs). * **Outputs:** What the task produced (for example: created a PR, posted a Slack reply, emitted a report, or just a transcript + summary). In practice: **triggers create tasks; tasks execute on a host (optionally in an Environment); tasks produce outputs.** *** ### Warp CLI The [Warp CLI](https://docs.warp.dev/reference/cli) is the **headless interface** for running Warp agents in non-interactive mode. It’s commonly used in CI, scripts, and server environments where there is no interactive UI. For interactive workflows, use the [agent](https://docs.warp.dev/agent-platform/agent/agents-overview) embedded in Warp’s desktop app. A key property of the CLI is that it is **cloud-connected**. Even when an agent is started on a local machine or in CI, it reports progress to Warp’s servers. This enables team visibility, session sharing (where supported), and programmatic tracking through the API. #### When you use the CLI Use the CLI when: * You want to run an agent anywhere (local machine, CI runner, remote dev box, server). * An external system is orchestrating runs (for example GitHub Actions, custom automation, incident tooling). * You want task observability and auditing without requiring Warp desktop. #### How it fits in the Warp Platform Depending on the command, the CLI typically: * Authenticates as a member of your team. * Starts work by creating a task in the orchestrator (either directly via CLI commands, or indirectly via an integration/schedule). * Streams progress back to Warp for live observability and a persistent record. * Optionally attaches an Environment and other configuration. #### Example (no Environment) You can also run an agent locally without an environment using a command like: ```bash warp agent run ... ``` *** ### Warp Orchestrator The orchestration layer manages the lifecycle of Ambient Agent tasks. It creates tasks, tracks state transitions, and is the system of record for what’s running and what ran. #### What the orchestrator does The orchestrator: * Runs on Warp’s servers (cloud control plane). * Creates tasks when triggers fire (integrations, schedules, API calls, or explicit starts). * Tracks lifecycle state (created → running → completed/failed) and associated metadata. * Exposes task lifecycle operations via the [Warp CLI](https://docs.warp.dev/reference/cli) and a [REST API](https://docs.warp.dev/reference/api-and-sdk) (create tasks, query history, and inspect status/outputs). * Powers SDKs (TypeScript/Python) for programmatic usage on top of the orchestrator API. #### When teams use the API/SDK Teams typically use the API/SDK when: * Triggering agents from custom internal systems (incident tools, bots, internal automation). * Building internal dashboards or monitoring (success rates, runtime, failure reasons). * Coordinating many runs (fanout, sharding, queueing, retries, rate limiting at the app layer). * Creating higher-level workflows that treat tasks as building blocks. *** ### Environments [Environments](https://docs.warp.dev/reference/cli/integrations-and-environments#what-is-an-environment) define the execution context an agent should run in. **An Environment typically includes:** * A Docker image (toolchain and runtime). * One or more repositories (or a workspace definition). * Startup commands and configuration (setup steps, dependency install, bootstrapping). * Optional environment variables and other runtime settings. {% hint style="info" %} Environments are how teams make agent runs consistent across triggers (Slack, CI, schedules) and across hosts. {% endhint %} #### Environments are optional Agents can run without an Environment (for example, against an existing local checkout or a CI workspace). Teams usually move to Environments when they want stronger reproducibility, isolation, and standardization. #### When to use Environments Environments are recommended when: * The agent needs a consistent toolchain (linters, build tools, language runtimes). * You want repeatable execution across CI and cloud execution. * You want standard execution across a team (same repo state rules, same setup steps). * You want to reduce “works on my machine” variability across tasks. *** ### Agent API and SDK The Warp [Agent API](https://docs.warp.dev/reference/api-and-sdk#agent-api) is the HTTP interface to the Warp Platform. It lets you create and inspect Ambient Agent tasks from any system (CI, cron, backend services, internal tools), without requiring the Warp desktop app. **What you can do with the API** * Run an agent by submitting a prompt plus optional configuration (model, environment, MCP servers, base prompt, etc.). * Monitor execution by listing tasks and tracking state transitions over time (for example: `QUEUED` → `INPROGRESS` → `SUCCEEDED/FAILED`). * Inspect results and provenance by fetching a task’s full details, including the original prompt, creator/source metadata, session link, and resolved agent configuration. **Agent SDKs** Warp provides official [Python](https://github.com/warpdotdev/warp-sdk-python) and [TypeScript SDKs](https://github.com/warpdotdev/warp-sdk-typescript) that wrap the Public Agent API with: * Typed requests/responses (autocomplete, fewer schema mistakes) * Built-in retries and timeouts (with per-request overrides) * Consistent error types mapped to API status codes * Helpers for raw responses when you need headers/status/custom parsing If you’re building an integration (CI, Slack bots, internal tooling, orchestrators), the [SDKs](https://docs.warp.dev/reference/api-and-sdk#agent-sdk) are typically the quickest and safest starting point. **SDK vs raw REST** * Use the SDK when you want strong typing, standardized error handling, and easy concurrency patterns. * Use raw REST when you want minimal dependencies or full control over your HTTP client. {% hint style="info" %} For full endpoint semantics and schema definitions, please refer to the dedicated [API docs](https://docs.warp.dev/reference/api-and-sdk) and Models/Schema reference, plus the [Python SDK](https://github.com/warpdotdev/warp-sdk-python) and [TypeScript SDK](https://github.com/warpdotdev/warp-sdk-typescript) repos for the latest usage/examples. {% endhint %} *** ### Execution hosts A host describes where the agent actually executes. Warp supports multiple execution models depending on your security, compliance, and operational requirements. #### Warp-hosted execution With Warp hosting: * Warp runs the environment on Warp-managed infrastructure. * This is the default model for teams that want the simplest setup and do not need execution to occur inside their network boundary. #### Self-hosting execution (coming soon) With self-hosting: * The agent runs on customer-managed infrastructure. * This is used when teams want code and execution to remain on their own systems rather than being cloned or executed in Warp’s cloud. *** ### Integrations [Integrations](https://docs.warp.dev/agent-platform/integrations/integrations-overview) connect external system events to Ambient Agent execution. An integration ties a third-party event source to Warp so that when an event occurs, Warp can create a task with the relevant context and start it automatically. * **First-party integrations**: Warp owns event subscriptions + context extraction. * **Custom integrations**: You own event ingestion/filtering; you call the API/SDK to create tasks. #### First-party integrations Warp supports first-party integrations that can be configured with a simple setup flow (for example via CLI): ```bash warp integration create … ``` **In first-party integrations, Warp typically:** * Registers webhooks (or other event subscriptions) with the third-party system. * Receives events and extracts context (payload, metadata, links, logs). * Constructs a task and executes it, optionally in an Environment. Examples of context: * [Slack](https://docs.warp.dev/agent-platform/integrations/slack): message text + channel + thread + user identity * [GitHub](https://docs.warp.dev/agent-platform/integrations/github-actions): PR metadata + diffs + labels + checks * CI: logs + job metadata + artifacts #### Custom integrations Warp also supports custom integrations where you own the webhook and event handling logic. In this model: * Your system receives an event. * Your system calls Warp’s orchestrator API (directly or via an SDK) to create/start a task. * The task is still a first-class Ambient Agent task in Warp (observable, manageable, auditable). **Custom integrations are ideal when:** * You have internal event sources (custom tooling, proprietary systems). * You need custom filtering, routing, or enrichment before triggering the agent. * You want to implement your own permissioning, queueing, or governance around triggers. *** ### Secrets Ambient Agents often need credentials to access external systems (APIs, cloud providers, databases, internal tools, MCP servers). Warp provides a [secrets store](https://docs.warp.dev/agent-platform/ambient-agents/agent-secrets) that can inject secrets at runtime so agents can use authenticated tools without exposing secret values in logs or UI. #### What secrets are for In most deployments, secrets power: * API keys and tokens (GitHub, Slack, Linear, internal APIs). * Shared team credentials (cloud providers, CI identities). * Database credentials (read-only query bots, reporting). * Credentials required by MCP servers (static tokens/keys). #### Scoping and control Today, secrets support two scopes: * **Team secrets:** shared credentials available to the team (useful for shared infrastructure). * **Personal secrets**: credentials tied to an individual (useful when actions must be attributable to a specific person). *** ### Management and observability Ambient Agents are designed so task execution is visible to the team. While a task is executing, the agent reports progress and status back to Warp. After completion, the task retains a persistent record for review and debugging. Warp provides multiple surfaces for observability: * [Management UI](https://docs.warp.dev/agent-platform/agent/using-agents/managing-agents): lists tasks, status, timing, metadata, and history. * [Agent Session Sharing](https://docs.warp.dev/warp/knowledge-and-collaboration/session-sharing/agent-session-sharing): authorized teammates can attach to a running task to monitor and, where supported, steer it. * [APIs](https://docs.warp.dev/reference/api-and-sdk) and SDKs: query task history, build monitoring, and generate reports. #### Access control **Access control is part of the model:** * Teams can restrict who can run, view, or intervene in agent tasks. * At the same time, organizations can enable system-wide visibility where appropriate for auditing and operations. ### Centralized configuration Ambient Agent setups often include shared configuration such as: * [MCP configuration](https://docs.warp.dev/agent-platform/ambient-agents/mcp-servers-for-agents) * [rules / guardrails](https://docs.warp.dev/warp/knowledge-and-collaboration/rules) * [saved prompts](https://docs.warp.dev/warp/knowledge-and-collaboration/warp-drive/prompts) * [environment variables](https://docs.warp.dev/warp/knowledge-and-collaboration/warp-drive/environment-variables) * [secrets](https://docs.warp.dev/agent-platform/ambient-agents/agent-secrets) Warp supports centralized configuration so these settings apply consistently regardless of where a task is launched. This is especially useful when the same workflow can be triggered from multiple places (for example Slack, CI, and schedules). Instead of duplicating setup across systems, teams can keep configuration in one place and reuse it across triggers. ### Using the Warp Platform with or without the Warp app [Ambient Agents](https://docs.warp.dev/agent-platform/ambient-agents/ambient-agents-overview) do not require Warp's desktop terminal. Teams can operate Ambient Agent workflows using: * Warp CLI * web surfaces (where available) * [session sharing](https://docs.warp.dev/warp/knowledge-and-collaboration/session-sharing/) * management UI * APIs and SDKs **If your team also uses Warp’s terminal, you gain an additional workflow:** * Tasks launched via the CLI can be handed off into an interactive session for review, edits, or continuation. * This is useful when you want a human checkpoint (final edits, validation, merge decisions) without losing the audit trail from the ambient run. --- # Source: https://docs.warp.dev/support-and-community/community/warp-preview-and-alpha-program.md # Warp Preview & Alpha Program ### Warp Preview Warp Preview is an early-access program that allows you to explore Warp's newest and most experimental features. It’s independent from the stable build, so you can always revert to a reliable version of Warp whenever you need it. ### Key Warp Preview Features * **Early access**: Try out experimental features before they’re officially released. * **Faster updates**: Enjoy frequent updates and patches as we refine new capabilities. * **Direct impact**: Your feedback plays a critical role in shaping Warp’s future. To learn more about Warp Preview, check out our [launch blog post](https://warp.dev/blog/warp-preview). ### Getting Started with Warp Preview 1. **Download**: Get the Warp Preview build from [warp.dev/download-preview](https://warp.dev/download-preview). 2. **Sign in**: [Log in](https://docs.warp.dev/support-and-community/community/broken-reference) with your Warp account (not optional for Warp Preview). 3. **Run side-by-side**: You can keep Warp Preview alongside your stable Warp installation. ### Important Notes * **Experimental Build**: Expect occasional bugs or incomplete features. * **Login Required**: You must sign in to use Warp Preview. This helps us gather feedback, quickly diagnose critical issues, and ensure we can reach out if you need support. * **Flexibility**: Switch between Preview and Stable builds at any time. * **Distinct Icon**: Warp Preview uses a unique icon to help distinguish it from the stable version. ### Providing Warp Preview Feedback For details on how to send feedback for Warp Preview, please see [Preview-Specific Feedback](https://github.com/warpdotdev/gitbook/blob/main/docs/README.md#preview-specific-feedback). ### The Alpha Program Warp Alpha is a private extension of the Preview program for our most dedicated users. Participants receive: * **Additional AI usage**: Experience more cutting-edge AI features. * **Direct team access**: Engage closely with Warp’s engineering and product teams. * **Insider insights**: See early mockups, join product discussions, and help guide feature development. {% hint style="info" %} Alpha is **invitation-only** and requires active participation. Continued membership depends on your ongoing engagement and contributions within Warp Preview. {% endhint %} --- # Source: https://docs.warp.dev/university/warp-runtime.md # Warp Runtime Warp Runtime is an execution layer for Warp’s agentic development platform.\ \ It provides a secure, self-hosted environment where Warp's Agents can run commands, manage context, and interact with your codebase. You can use Warp Runtime inside of Warp, within any terminal, or in a remote server. {% embed url="<https://youtu.be/hV6UdEf3C1I?si=x5oCKOtxfgyuoJMe>" %} --- # Source: https://docs.warp.dev/university/developer-workflows/power-user/warp-vs-claude-code.md # Warp vs Claude Code {% embed url="<https://youtu.be/NUVftxAqZQo>" %} ### 1. Overview This walkthrough compares Claude Code and Warp’s built-in coding agent — two tools built for AI-assisted development.\ Both can: * Read and edit files * Generate code diffs * Plan multi-step tasks\ \ But they differ in experience, configurability, and performance. *** ### 2. Setup and Interface #### Claude Code * Runs as a CLI tool, requiring a terminal and the `claude` CLI installed. * You type prompts directly into a command box. * Supports file reading, search, and diff generation. #### Warp * Built directly into the Warp terminal. * No installation needed — type a natural-language query or click the Agent button to enter Agent Mode. * Handles the same operations as Claude Code but integrated into the environment you already use. *** ### 3. Reviewing Diffs In Claude Code: * You manually review diffs via CLI or external editors like VS Code. * You can hit Shift + Tab to auto-accept all edits. In Warp: * You get a visual diff view built in. * Accept, reject, or manually edit diffs inline using Warp’s lightweight editor. * The agent automatically updates its context to avoid overwriting your changes. *** ### 4. Planning & Context Gathering Both support planning mode for complex tasks: * Claude Code uses a Markdown-style plan view. * Warp can either show a similar plan or skip planning for short tasks. For context: * Both allow file references with `@filename`. * Warp extends this with symbol referencing (`@functionName`) and a file tree explorer, letting you pull in specific lines and symbols as context. *** ### 5. Model Selection Claude Code lets you pick between Claude 3 models (`Sonnet`, `Opus`, `Haiku`) via the `/model` menu. Warp supports multiple ecosystems: * Claude (Sonnet, Opus) * GPT-5 (various reasoning levels) * Gemini series Switch models from the dropdown or directly in the agent menu. *** ### 6. Configuration In Claude Code: * Everything is configured via `/commands` in the CLI. * Includes model switching, tool permissions, and sub-agent creation. In Warp: * Configure from Settings → AI & Agents. * Add MCP servers, prompts, and global rules. * Define Agent Profiles for read/write permissions, autonomy, and planning behavior. * Maintain a global rules directory for consistent behavior across projects. Warp also supports codebase indexing, which creates embeddings for faster semantic search across your repos. *** ### 7. Managing Agents Over Time Claude Code: * Shows progress directly in the CLI tab. * Displays the current task name in the terminal tab title. Warp: * Adds visual indicators for agent status, progress, and toast notifications when blocked. * Optional desktop notifications keep you informed when you’re multitasking. *** ### 8. Performance Comparison Ben ran both tools on the same coding task — fixing a bug in the `renderKeyboardShortcut` function from a Sentry issue. Claude Code results: * Took \~2–4 minutes with Claude 3 Sonnet. * Found the right issue and produced working code, though some redundant logic remained. Warp results: * With GPT-5, average time was \~1 minute 20 seconds. * Consistent, high-quality output. * Produced concise solutions with fewer redundant checks. * Supported multiple models for experimentation. *** ### 9. Conclusions | Criteria | Claude Code | Warp | | --------------- | ----------------- | ------------------------ | | Environment | CLI tool | Integrated into terminal | | Diff Review | External / Manual | Built-in panel | | Planning | Markdown mode | Inline or Opus-assisted | | Model Options | Claude only | Claude, GPT-5, Gemini | | Configurability | CLI-based | UI + Profiles + Rules | | Performance | 2–4 min avg | \~1.2 min avg (GPT-5) | **TL;DR:**\ If you prefer the Claude model suite and CLI workflow — go with Claude Code.\ If you want richer diff editing, context referencing, and model flexibility — Warp is the better fit. > “Claude Code gives you an AI terminal. Warp gives you an AI development environment.” --- # Source: https://docs.warp.dev/terminal/warpify.md # Warpify 1. [Subshells](https://docs.warp.dev/terminal/warpify/subshells), Warp supports enabling Warp features in subshells for bash, zsh, and fish. 2. [SSH](https://docs.warp.dev/terminal/warpify/ssh), Warp supports a tmux powered wrapper that enables Warp features in remote (SSH) sessions. 3. [SSH Legacy](https://docs.warp.dev/terminal/warpify/ssh-legacy), Warp supports a legacy wrapper that enables Warp features in remote (SSH) sessions. ## Subshells <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-bbd768d41f956ba63cc7410138fc2e5980c74d30%2Fsubshells-demo.gif?alt=media" alt=""><figcaption><p>Warpify Subshells Demo</p></figcaption></figure> ## SSH <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-5cfba89554e738ad331b86151eae6b7bb819e306%2Fsubshell-ssh-demo.gif?alt=media" alt=""><figcaption><p>Warpify SSH Demo</p></figcaption></figure> --- # Source: https://docs.warp.dev/agent-platform/agent/using-agents/web-search.md # Web Search Warp includes native web search for models that support first-party search tools. When enabled, agents can look up information in real time, consult documentation, retrieve current version numbers, and cite the sources used to generate responses. {% embed url="<https://www.loom.com/share/06a4ba98f2e0446d80cb37aa4c23848c>" %} This page covers how web search works, supported models, what you can expect inside Warp, configuration options, and how this differs from attaching URLs directly to a prompt. *** ### When the Agent uses web search Models initiate a web search when it improves the quality or accuracy of an answer. **Common scenarios include:** * Retrieving official documentation or API references * Getting the latest version of a library or tool * Checking error messages, GitHub issues, or StackOverflow discussions * Looking up ongoing incidents or recent changes * Answering questions where recency matters (e.g., “best approach in 2025 to…”) Web searches are automatically triggered when the model considers them useful. You don’t need special syntax. ### How web search works in Warp **When a search occurs:** 1. Warp shows a “Searching the web…” indicator inside the conversation. 2. You can expand the search result to view: * The query issued * The pages retrieved 3. **The model reads results and produces a grounded response.** * Claude models cite sources in the references footer. * OpenAI models use inline citations and also shows references in the footer. ### Supported and Unsupported Models Web search is available only for models that offer a native web search integration, that works in tandem with other custom tools. **Models that support web search** * Anthropic: `Claude 4.5 Series`, `Claude 4 Series` * OpenAI: `GPT-5.1`, `GPT-5` * *Note: GPT-5 mini with minimal reasoning does not support web search* Warp uses each vendor’s official tool: * **Claude Web Search**: <https://docs.claude.com/en/docs/agents-and-tools/tool-use/web-search-tool> * **OpenAI Web Search**: <https://platform.openai.com/docs/guides/tools-web-search?api-mode=responses> {% hint style="info" %} **Note**: We plan to add native web search for additional models as soon as their APIs fully support it. We’ll continue updating the list of search-capable models as vendors roll out broader tooling. We're also exploring custom web search tools that'll work across all models. {% endhint %} ### Viewing Search Results You can inspect the web search UI at any time: * Expand the **Web Search** section in the agent response * You can see: * The list of pages fetched * The text used to answer your question * Citations and reference metadata <figure><img src="https://769506432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAULCelT4yIUOcSwWWvPk%2Fuploads%2Fgit-blob-3233fd85ddac77de6e46d22d23ff538db08ff5b6%2Fweb-search-results.png?alt=media" alt=""><figcaption></figcaption></figure> This makes it easy to verify accuracy, audit reasoning, and validate sources. ### Enabling or Disabling Web Search Web search is controlled per [Agent Profiles & Permissions](https://docs.warp.dev/agent-platform/agent/using-agents/agent-profiles-permissions). **To configure:** 1. Open `Settings > AI` 2. Select an **Agent Profile** 3. Scroll to **Call web tools** 4. Toggle the **setting on or off** <figure><img src="https://769506432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAULCelT4yIUOcSwWWvPk%2Fuploads%2Fgit-blob-acd80903bfbfee24d75aaf1c86014a86805a5bdc%2Fweb-search-settings.png?alt=media" alt=""><figcaption></figcaption></figure> Disabling this prevents the agent from performing searches, even if a model would normally use them. ### Credit Usage Web search incurs two types of credit usage: 1. A small fixed cost per search invocation 2. Additional cost proportional to retrieved content, since retrieved text is passed to the model You’ll see these contributions itemized in the conversation’s credit usage footer, alongside model calls, planning calls, and other tool usage. --- # Source: https://docs.warp.dev/university/developer-workflows/beginner/welcome-to-warp.md # Welcome to Warp {% embed url="<https://www.youtube.com/watch?v=O5E6ze3vqeo>" %} ### 1. Welcome to Warp When you open Warp, you’ll see something familiar — a command line interface — but it’s much more than a traditional terminal.\ \ Warp is an Agentic Development Environment (ADE), meaning it’s a space where your primary mode of interaction is through prompts to an AI agent. You can still use Warp just like any terminal: ```bash ls pwd ``` Warp executes those commands exactly as you’d expect.\ \ But when you type natural language — like *“describe my open git changes”* — Warp interprets it as a prompt to launch the agent. *** ### 2. Prompt-Based Coding When you ask something in plain English, Warp’s agent automatically: * Gathers relevant context (your repo, files, or command output) * Runs whatever commands are needed * Returns a structured answer or takes the requested action Example: > “Describe my open git changes.” Warp’s agent will review your current branch, run git commands in the background, and summarize what’s pending. *** ### 3. Blending Terminal and Agentic Workflows The beauty of Warp is in how seamlessly it blends traditional CLI workflows with AI-driven automation.\ You can: * Type commands like a normal shell * Or prompt an agent to do things like debugging, code review, or environment setup No context-switching between apps — it’s all one environment. --- # Source: https://docs.warp.dev/terminal/windows.md # Window Management 1. [Global Hotkey](https://docs.warp.dev/terminal/windows/global-hotkey) is a configurable shortcut that can show/hide a dedicated window or all windows on your chosen desktop regardless of whether the app is focused. 2. [Tabs](https://docs.warp.dev/terminal/windows/tabs) allow you to organize a window into multiple terminal sessions. 3. [Split Panes](https://docs.warp.dev/terminal/windows/split-panes) allows you to divide a Tab into multiple rectangular *panes*, each of which is a unique terminal session. ## Global Hotkey <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-048acf9fd85b0fa2129bb90a1b3d8a2d1f911f5b%2FDedicated-Window.gif?alt=media" alt=""><figcaption><p>Global Hotkey - Dedicated Window Demo</p></figcaption></figure> <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-af6164e0085e8fa8f3d2ff3602178e4c9343332c%2FShow-Hide-All-Windows.gif?alt=media" alt=""><figcaption><p>Global Hotkey - Show/Hide All Windows Demo</p></figcaption></figure> ## Tabs {% embed url="<https://www.loom.com/share/84d15cc7eb5a4a668bb86be9e827f261?hide_owner=true&hide_share=true&hide_title=true&hideEmbedTopBar=true>" %} Tabs Demo {% endembed %} ## Split Panes {% embed url="<https://www.loom.com/share/c1104b51cab848a9bef6792ec4fd8421?hide_owner=true&hide_share=true&hide_title=true&hideEmbedTopBar=true>" %} Split Panes Demo {% endembed %} --- # Source: https://docs.warp.dev/knowledge-and-collaboration/warp-drive/workflows.md # Workflows ## What is a workflow? A workflow is a parameterized command you can name and save in Warp with descriptions and arguments. Workflows are searchable and easily accessed from the [Command Palette](https://docs.warp.dev/terminal/command-palette) so you can find and execute them without switching contexts. ## How to save and edit workflows You can create a new workflow from various entry points in Warp: * From Warp Drive, + > New workflow * Using Block Actions, Save as Workflow * From Warp AI results, Save as Workflow * From the [Command Palette](https://docs.warp.dev/terminal/command-palette), Create a New Personal Workflow Any of these entry points will open the workflow editor where you can: * Name your workflow * Edit the command along with any arguments (also known as parameters) * Add a meaningful description that will be indexed for search (optional) * Add arguments, descriptions for arguments, and default values (optional) <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-ac0ba786b03b5431ec11e2292243060b52b62d12%2Fedit-workflow-pane.png?alt=media" alt="Workflows save and edit modal"><figcaption><p>Workflows save / edit pane</p></figcaption></figure> {% embed url="<https://www.youtube.com/watch?v=8UmreUTTrkg&start=9s&end=198s>" %} Save Workflow Demo {% endembed %} ### Working with arguments In the workflow editor, you can add arguments manually with "New argument" or by typing in double curly braces (`{{argument}}`) within the command field. If you select "New argument" while you have text selected, Warp will wrap that text in curly braces to create an argument. There are some rules for creating valid arguments: * Argument names can only include characters `A-Za-z0-9`, hyphens `-` and underscores `_` * The first character of an argument cannot be a number Arguments can be one of two types: text or enum. By default, all new arguments are text type. #### Enum type arguments Enums allow you to specify expected inputs to a workflow argument. When you insert a workflow with enums into the input editor, you will be prompted with suggestions for filling in the argument. You can open the suggestions menu by pressing `SHIFT-TAB` while selecting an argument. {% embed url="<https://www.loom.com/share/b2f54eeef2f247a8bbcf87698b2a4287?hideEmbedTopBar=true&hide_owner=true&hide_share=true&hide_title=true>" %} Enum Input Suggestions Demo {% endembed %} To create an enum type argument: 1. Navigate to the "default value" field of an argument. 2. Select the "Enum" type. 3. Click "New" to create a new enum, or select an existing one from the dropdown menu. 4. If you selected "New", you can choose to create a "Static" enum or "Dynamic" enum. Dynamic enums are associated with a shell command whose output is parsed to determine the set of valid values for that argument. {% embed url="<https://www.loom.com/share/b429ab7f7014418e9591e505fd71af83?hideEmbedTopBar=true&hide_owner=true&hide_share=true&hide_title=true>" %} Enum Creation Demo {% endembed %} ### Working with aliases Workflow aliases allow you to create personalized shortcuts and custom configurations for your frequently used workflows. These aliases provide enhanced flexibility in how you use and configure workflows. Aliases are personal to your account, not shared with everyone who has the workflow. If settings sync is enabled, they'll be synced across devices logged in to your account. Aliases can set default values for each [argument](#working-with-arguments), but don't have to. Aliases can have [Environmental Variables](https://docs.warp.dev/knowledge-and-collaboration/warp-drive/environment-variables) associated with them. {% hint style="info" %} Workflow aliases are not compatible with [YAML Workflows](https://docs.warp.dev/terminal/entry/yaml-workflows). They can only be used with Workflows created in [Warp Drive](https://docs.warp.dev/knowledge-and-collaboration/warp-drive). {% endhint %} ### Editing workflows Once a workflow has been created, you can edit it at any time, as long as you have access to an internet connection. <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-8e33c4c88fb2361939d53100aca3004e8125d241%2FEdit_Workflow.png?alt=media" alt=""><figcaption><p>Edit workflow menu</p></figcaption></figure> #### AI Autofill Workflows also have the option to use [Warp AI](https://docs.warp.dev/agent-platform/agent/agents-overview) to automatically generate a title, descriptions, or parameters. * Create or edit a Workflow, in the edit view you should see the option to AutoFill. * Warp AI will fill in the fields based on the Workflow you're creating. <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-c5fd9fb1cff247dfd36ecc03624f1acbfbde9675%2FEdit-workflows-autofill.gif?alt=media" alt=""><figcaption><p>Edit Workflows - Autofill</p></figcaption></figure> ### Editing workflows with a team If the workflow is shared with a team, all team members will have access to edit the workflow and updates will sync immediately for all members of the team. If a workflow in the Warp Drive has been edited by another team member or a user on another device while you are attempting to edit the same workflow, you will not be able to save changes; you will need to check out the latest version and try again. ## How to execute workflows You can execute a workflow in several ways: * From Warp Drive, click the workflow * From the [Command Palette](https://docs.warp.dev/terminal/command-palette), search for a workflow you’d like to execute, click or select, and enter * From [Command Search](https://docs.warp.dev/terminal/entry/command-search), search for a workflow you'd like to execute, click or select, and enter. * When a workflow is selected, you can use `SHIFT-TAB` to cycle through the arguments. {% hint style="info" %} When you create two or more arguments with the same name, Warp automatically selects and puts multiple cursors over the arguments in the input editor so they are synced.\ \ Also, tailor your Command Search experience by toggling off "Show Global Workflows" in `Settings > Features`. When disabled, your search will exclusively encompass YAML and Warp Drive Workflows. {% endhint %} <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-375626cd398bd4fec5b7b807d3cd659e27144e88%2Fsearch-workflow-command-palette.png?alt=media" alt=""><figcaption><p>Search for any workflow in the Command Palette with <code>CMD + P</code></p></figcaption></figure> These options will paste the workflow into your active terminal input. Workflow names and any relevant descriptions and arguments will be displayed in a dialog, so you can understand how to use the workflow. <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-b41e3c7f62e21477cd2e0f35dbc9d119bfe5ecd8%2Fexecute-a-workflow.png?alt=media" alt=""><figcaption><p>Execute a Workflow</p></figcaption></figure> You make any adjustments you need to the arguments (or the command itself) before running the command in your input editor. {% embed url="<https://www.youtube.com/watch?v=8UmreUTTrkg&start=344s&end=370s>" %} Running Workflow Demo {% endembed %} ## Support for YAML Workflows Warp will indefinitely support the [YAML Workflows](https://docs.warp.dev/terminal/entry/yaml-workflows), which includes personal and community workflows sourced from an open-source repository. If needed, you can continue to access your `.yaml` file workflows using [Command Search](https://docs.warp.dev/terminal/entry/command-search) or the [Command Palette](https://docs.warp.dev/terminal/command-palette). However, these file-based workflows will not be available to access, organize, or share in Warp Drive. ### Import and Export Workflows in Warp Drive Please see our [Warp Drive Import and Export](https://docs.warp.dev/knowledge-and-collaboration/warp-drive/..#import-and-export) instructions. --- # Source: https://docs.warp.dev/terminal/more-features/working-directory.md # Working Directory ## What is it Warp's working directory feature is designed to enhance your workflow by enabling you to set up a default directory for new sessions. This feature helps you save time and quickly access your preferred directories when starting new sessions. You have the flexibility to set up a working directory for all new sessions or customize it individually for Windows, Tabs, and Panes, based on your specific needs. ## How to access it * Open `Settings > Features > Session` and go to "Working directory for new sessions". * The drop-down for this feature provides several options discussed below: * Home Directory, is the default option for new sessions and opens new sessions in the currently logged-in users home folder `~/`. * Previous session's directory, opens new sessions in your active sessions' current directory. * Custom directory, opens new sessions in a file path you specify. * Advanced, allows you to select from the three options for new sessions in Windows, Tabs, and Panes. ## How to use it <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-28df13a68133e6b8616525cff46242da198f7ce9%2Fworking-directory-demo.gif?alt=media" alt="Working Directory Demo"><figcaption><p>Working Directory Demo</p></figcaption></figure> --- # Source: https://docs.warp.dev/terminal/entry/yaml-workflows.md # YAML Workflows {% hint style="danger" %} You can continue to use YAML-based workflows, but we recommend using new [workflows in Warp Drive](https://docs.warp.dev/knowledge-and-collaboration/warp-drive/workflows) instead for a better editing experience. {% endhint %} ## What is it Workflows are easily parameterized and searchable by name, description, or command arguments. [Common Workflows](https://github.com/warpdotdev/workflows) sourced by the Warp team and community are readily available within the app. Additionally, you can create and scope Workflows locally or to a git repository. ## How to use it * Open the [Command Search](https://docs.warp.dev/terminal/entry/command-search) or Workflow Search `CTRL-SHIFT-R` panel to find Workflows. * Once inside the menu, start typing in the search bar to filter the existing Workflows. (e.g. git, android, npm, etc.) * When a Workflow is selected with `ENTER`, you can use `SHIFT-TAB` to cycle through the arguments. * You can also expand the menu horizontally with the mouse by dragging it on the right edge. {% hint style="info" %} Tailor your [Command Search](https://docs.warp.dev/terminal/entry/command-search) experience by toggling off "Show Global Workflows" in `Settings > Features`. When disabled, your search will exclusively encompass YAML and Warp Drive Workflows. {% endhint %} ## How it works <figure><img src="https://4009768362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPsjNxoJ0NFCXW6rRdHH3%2Fuploads%2Fgit-blob-e4870de99dab35a374dd44479208db26bf03e0b3%2Fyaml_workflows_demo.gif?alt=media" alt="YAML Workflows Demo"><figcaption><p>YAML Workflows Demo</p></figcaption></figure> ### How is this Different from Aliases? Workflows solve some major pain points with aliases, specifically the: 1. need to context switch 1. leave vim, source dotfiles, or reset shell 2. difficulty with attaching documentation 3. inability to easily search or share 4. inability to easily parameterize ## Creating Custom Workflows ### How to create a workflow with YAML You can store local workflows (scoped to your machine) in: {% tabs %} {% tab title="macOS" %} ```bash $HOME/.warp/workflows/ ``` {% endtab %} {% tab title="Windows" %} ```powershell $env:APPDATA\warp\Warp\data\workflows\ ``` {% endtab %} {% tab title="Linux" %} ```bash ${XDG_DATA_HOME:-$HOME/.local/share}/warp-terminal/workflows/ ``` {% endtab %} {% endtabs %} Or, you can share them with your team by saving them in `{{path_to_git_repo}}/.warp/workflows/`. Local and repository Workflows can be accessed under the "My Workflows" and "Repository Workflows" tab of the Workflows menu, respectively. See the existing Workflow spec within the [Workflows repo](https://github.com/warpdotdev/Workflows/tree/main/specs) for examples. Additionally, we outline the file format below: <details> <summary><a href="https://github.com/warpdotdev/Workflows/blob/main/FORMAT.md">Workflow File Format</a></summary> The Workflow file format is a [yaml](https://yaml.org/) file and must have either a \`.yml \` or \`yaml\` extension. If you're new to YAML and want to learn more, see [Learn YAML in Y minutes](https://learnxinyminutes.com/docs/yaml/). *** **`name`** The name of the Workflow. Required. **`command`** The command that is executed when the Workflow is selected. Required. **`tags`** An array of tags that are useful to categorize the Workflow. Optional. ```yaml tags: ["git", "GitHub"] ``` **`description`** The description of the Workflow and what it does. Optional. **`source_url`** The URL from where the Workflow was originally generated from. This is surfaced in [commands.dev](https://www.commands.dev/) for attribution purposes. Optional. **`author`** The original author of the Workflow. For example, if this Workflow was generated from StackOverflow, the `author` would be the `author` of the StackOverflow post. This is surfaced in [commands.dev](https://www.commands.dev/) for attribution purposes. Optional. **`author_url`** The URL of original author of the Workflow. For example, if this Workflow was generated from StackOverflow, the `author_url` would be the StackOverflow author's profile page. This is surfaced in [commands.dev](https://www.commands.dev/) for attribution purposes. Optional. **`shells`** The list of shells where this Workflow is valid. If not specified, the Workflow is assumed to be valid in all shells. This must be one of `zsh`, `bash`, or `fish`. **`arguments`** A Workflow can have parameterized arguments to specify pieces of the Workflow that need to be filled in by the user. You can specify which part of the Workflow command maps to an argument by surrounding it with two curly braces (`{{<argument>}}`). For example the Workflow command: ```bash for {{variable}} in {{sequence}}; do {{command}} done ``` Includes 3 arguments: `variable`, `sequence`, and `command`. **`arguments.name`** The name of the argument. The argument name is used within the command to specify the ranges of the argument. Required. ```yaml name: Example Workflow command: echo {{string}} arguments: - name: string description: The value to echo ``` **`arguments.description`** The description of the argument. This is surfaced in both [commands.dev](https://www.commands.dev/) and Warp to help users fill in Workflow arguments. Optional **`arguments.default_value`** The default value for the argument. If specified, the `default_value` replaces the argument name within the command. Optional *** </details> ### Where to save workflows Local Workflows are scoped to your machine. Repository Workflows are scoped to a git repository and can be accessed by anyone who has cloned the repo. *Note:* Repository Workflows will not appear if you are ssh into a remote machine. {% tabs %} {% tab title="macOS" %} ```bash # Local Workflow Path $HOME/.warp/workflows/ # Repository Workflow Path {{path_to_git_repo}}/.warp/workflows ``` {% endtab %} {% tab title="Windows" %} ```powershell # Local Workflow Path $env:APPDATA\warp\Warp\data\workflows\ # Repository Workflow Path {{path_to_git_repo}}\.warp\workflows ``` {% endtab %} {% tab title="Linux" %} ```bash # Local Workflow Path ${XDG_DATA_HOME:-$HOME/.local/share}/warp-terminal/workflows/ # Repository Workflow Path {{path_to_git_repo}}/.warp/workflows ``` {% endtab %} {% endtabs %} #### Local Workflows To start, create a Workflow subdirectory within {% tabs %} {% tab title="macOS" %} ```bash mkdir -p $HOME/.warp/workflows/ ``` {% endtab %} {% tab title="Windows" %} ```powershell New-Item -Path "$env:APPDATA\warp\Warp\data\workflows\" -ItemType Directory ``` {% endtab %} {% tab title="Linux" %} ```bash mkdir -p ${XDG_DATA_HOME:-$HOME/.local/share}/warp-terminal/workflows/ ``` {% endtab %} {% endtabs %} Add your Workflow’s `.yaml` file to this directory; if the file format is valid Warp should automatically load it into the Workflows menu. `cp ~/path/to/my_awesome_workflow.yaml {{path_to_local_workflow_folder}}` #### Repository Workflows You can add a repository Workflow similarly to how you added a local Workflow. Create a Workflows folder in a repository’s root directory and save your `.yaml` file like so: ``` cd {{repository_path}} mkdir -p .warp/workflows/ cp ~/path/to/my_awesome_workflow.yaml {{path_to_local_workflow_folder}} ``` #### Global Workflows You can contribute Workflows that will be made available to other Warp users by forking the [Workflows repo](https://github.com/warpdotdev/workflows/tree/main/specs) and opening a pull request. See the [Contributing](https://github.com/warpdotdev/workflows#contributing) section for more details.