Vendors¶
agentic generates vendor-specific instruction files from a single AGENTS.md source of truth.
Supported Vendors¶
| Vendor | Output file(s) | How it's used |
|---|---|---|
| Claude (Claude Code) | AGENTS.md, CLAUDE.md |
AGENTS.md natively; CLAUDE.md is a thin wrapper pointing to it; skills in .claude/skills/ |
| GitHub Copilot | .github/copilot-instructions.md, .github/instructions/*.instructions.md |
Global always-on instructions + glob-scoped per-language files |
| OpenAI Codex | AGENTS.md |
AGENTS.md natively; hierarchical for monorepos (tier AGENTS.md files) |
| Gemini CLI | GEMINI.md, .gemini/system.md |
Root context file (auto-discovered) + system-prompt override |
| Opencode | AGENTS.md |
AGENTS.md natively; skills in .opencode/skills/ |
| Cursor | .cursor/rules/*.mdc |
Rules model with one always-on core rule + auto-attached language rules |
How Each Vendor Uses AGENTS.md¶
Claude Code¶
Claude Code reads AGENTS.md natively. In lean mode, CLAUDE.md is a redirect stub that points to the AGENTS.md file. Skills are deployed to .claude/skills/ where Claude can load them on demand with @.claude/skills/code-review/SKILL.md.
GitHub Copilot¶
Copilot does not read AGENTS.md natively. The vendor adapter splits AGENTS.md into:
- .github/copilot-instructions.md — always-on global instructions (security, git conventions, code review, testing philosophy, documentation).
- .github/instructions/*.instructions.md — glob-scoped files that activate per file pattern. The language-specific sections (TypeScript, Go, Python, PHP) are placed here with applyTo: "**/*.ts" etc.
The adapter reads the mapping from vendors/copilot/adapter.json.
Copilot Glob Mechanism¶
Each language instruction file has frontmatter that tells Copilot when to apply it:
This means the Go conventions are injected only when Copilot is working on .go files, keeping the global context lean.
Gemini CLI¶
Gemini CLI auto-discovers GEMINI.md at the project root — no environment variables
required. The vendor adapter also generates .gemini/system.md as a full
system-prompt override; set GEMINI_SYSTEM_MD=1 to activate it.
Skills are deployed natively to .gemini/skills/ and activated lazily via the
activate_skill tool, keeping the initial context lean.
Opencode¶
Opencode reads AGENTS.md natively. Skills are deployed to .opencode/skills/.
Cursor¶
Cursor uses .cursor/rules/*.mdc. The adapter generates files into
.agentic/vendor-files/cursor/rules/, then agentic switch cursor symlinks only
.cursor/rules. This preserves unrelated .cursor/* files such as .cursor/mcp.json.
For nested profiles, vendor-gen also emits tier-specific rule trees under
.agentic/vendor-files/cursor/rules/<tier>/.
If a real .cursor/rules directory already exists, switch migrates it to
.cursor/rules.backup (or .cursor/rules.backup.N) before linking.
If a multi-vendor switch fails after mutation begins, agentic rolls back prior
symlinks/config and restores migrated Cursor rules.
Cursor provider/model mapping is intentionally unsupported until Cursor publishes
an official project-local contract for that configuration surface.
MCP Pivot Model¶
MCP server declarations are authored once in .agentic/mcp.yaml and then
translated per vendor when agentic compose / agentic sync runs.
Source file:
.agentic/mcp.yaml(strategy+servers)
Generated targets:
.mcp.jsonusesmcpServers(Claude-compatible shape)opencode.jsonusesmcpwith translated transport keys.gemini/settings.jsonusesmcpServerswith Gemini-specific field mapping.cursor/mcp.jsonusesmcpServers(Cursor-compatible project shape)
Source of truth:
.agentic/mcp.yaml(authoritative)
Vendor Commands¶
Generate Vendor Files¶
Switch Active Vendors¶
Switch which vendors are active via symlinks. Vendor files are stored in
.agentic/vendor-files/{vendor}/ and activated by symlinking to their
expected locations.
# Using global CLI (from anywhere)
agentic switch claude # Activate only Claude
agentic switch gemini # Activate only Gemini
agentic switch claude,copilot # Activate multiple vendors
agentic switch list # Show all vendors
# With explicit target
agentic switch /path/to/project gemini
Multiple vendors can be active simultaneously since their symlink paths don't conflict:
| Vendor | Symlink locations |
|---|---|
claude |
CLAUDE.md, .claude/skills |
copilot |
.github/copilot-instructions.md, .github/instructions/ |
codex |
.agents/skills, .codex/agents (reads AGENTS.md natively) |
gemini |
GEMINI.md, .gemini/system.md, .gemini/skills |
opencode |
.opencode/skills, .opencode/agents |
cursor |
.cursor/rules |
For orchestration switching, agents are declared in .agentic/agents.yaml, and provider-local subagents paths (.codex/agents, .opencode/agents) are symlinks to generated artifacts under .agentic/agents/{provider}/.