Warp (warp)
Output
AGENTS.md # canonical entry-point pointer body (written by sync, shared across the AGENTS.md consumers)
.agents/skills/<name>/SKILL.md # one folder per skill (shared tree with codex/amp/zed)
.warp/workflows/<name>.yaml # one per agent, only when workflows-dir is set
.warp/.mcp.json # when MCP entries exist
- Rules: root rules inline into
AGENTS.md. Scoped rules use<scope>/AGENTS.md; see directory-specific instructions for shared-reader compatibility. - Skills: native Warp skills folders at
.agents/skills/<name>/SKILL.md, the vendor's own recommended path and the cross-tool tree codex, amp, and zed emit too. A source-layout scope moves the native tree under that directory and survives import. Identical root renders dedupe into one write.- Warp's docs list ten scanned directories in total:
.agents/skills/(recommended), plus.warp/skills/,.claude/skills/,.codex/skills/,.cursor/skills/,.gemini/skills/,.copilot/skills/,.factory/skills/,.github/skills/, and.opencode/skills/. AWARP_SKILL_DIRSenv var indexes further directories, scoped to Cloud agents indexing skills that live outside the repo, not a general extension of the ten scanned directories. This adapter only writes the recommended path..opencode/skills/is OpenCode's own default skills directory, so a project running both tools gets Warp skill-scanning for free with no extra write.
- Warp's docs list ten scanned directories in total:
- Workflows: when
outputs.warp.workflows-diris set, each agent emits as a Warp Workflow YAML at<dir>/<name>.yaml(name/command/description/tags). The vendor page now opens with a caution that it recommends new workflows in Warp Drive instead "for a better editing experience"; nothing breaks here, since{{path_to_git_repo}}/.warp/workflows/still loads and Warp Drive workflows are cloud-stored, so they are not a file this adapter could emit as an alternative.- The
command:is the agent body verbatim; tailor it to a Warp-friendly shell snippet. Other documented workflow fields (shells,arguments,source_url,author,author_url) pass through when declared underx-warp;import warpcaptures them back the same way.
- The
- MCP: written into
.warp/.mcp.jsonunder the standardmcpServersmap. A stdio server'scommand/args/envcarry through, plusworking_directory: docs.warp.dev/agents/capabilities/mcp documents it as "Working directory path where the command is run, used for resolving relative paths," Warp's own name for the cross-tool spec'scwdfield. A remote server (HTTP/SSE/WS) carriesurl/headers; Warp's remote-server table has no transport discriminant at all, so notypefield is ever emitted, unlike claude, cursor, and the rest of the shared-builder targets. Those two tables are the whole emitted key set.description,disabled, androotsappear in neither and no longer emit (target-audit 2026-08-27, #641): they came from the shared builder this adapter used before it grew its own, carried through that split unexamined. Writing a key from outside a closed vendor list asserts support no vendor sentence backs.disabledraises a coverage note instead of vanishing, and little is lost either way, since the same page says "project-scoped servers never auto-spawn" there.descriptionandrootsstay reachable throughx-warpfor anyone who wants them written anyway.import warpreads.warp/.mcp.jsonback, renamingworking_directorytocwd. An entry missing the field its table marks required (commandon the CLI Server table,urlon the URL Server one) emits nothing at all, the same call trae, antigravity, and windsurf make. Until #753 the missing key was left out and the rest of the entry was written, so a spec carrying onlyargsorenvproduced a server Warp lists and cannot launch.
- Legacy rename: Warp's docs recommend
AGENTS.mdfor new projects but still fully supportWARP.md, and rank it first: "If bothWARP.mdandAGENTS.mdexist in the same directory,WARP.mdtakes priority" (docs.warp.dev/agents/capabilities/rules, target-audit 2026-09-08, #691). On first sync after upgrading, any agnostic-generatedWARP.mdat the configured root is renamed toWARP.md.bakso the newAGENTS.mdlayout takes over. A user-authoredWARP.md(noGenerated by agnostic-aimarker) is left untouched, but since it still outranksAGENTS.md, sync warns that none of the synced rules reach Warp until that file is renamed or removed.
Config keys
| Key | Default | Notes |
|---|---|---|
outputs.warp.skills-dir | .agents/skills | |
outputs.warp.workflows-dir | empty | opt-in |
outputs.warp.mcp-file | .warp/.mcp.json | |
outputs.warp.rules-file | unset | writes legacy concatenated rules and skips the pointer-body write |
Import
agnostic-ai import warp reads AGENTS.md, workflows from .warp/workflows/, and MCP servers from .warp/.mcp.json, as described under Workflows and MCP. It copies .agents/skills/<name>/SKILL.md and all bundled assets.
Verify
- Install Warp from warp.dev.
- Check the tree:
ls AGENTS.md .agents/skills/ .warp/workflows/ .warp/.mcp.json,test -f .agents/skills/*/SKILL.md,grep "Generated by agnostic-ai" .warp/workflows/*.yamlfor the provenance header,python -m json.tool .warp/.mcp.json > /dev/null. - Open the project; confirm the rules panel surfaces
AGENTS.md(no "unrecognized file" warnings), the skills picker lists each.agents/skills/<name>/, the Warp Drive workflows picker shows every<workflows-dir>/<name>.yaml, and the MCP picker lists everymcpServers.<name>from.warp/.mcp.json.