Claude Code agent instructions & skills in Gemini CLI, Codex CLI, Copilot CLI — portability check
I, ytyng, use Claude Code as my main development tool. When Claude Code's server responses are unstable I sometimes use other agent development tools too, and I think it would be convenient if the skills, MCP settings and so on that I made for Claude Code could be used there as they are.
So I investigated whether Claude Code's configuration files and command definitions can be used as they are in other tools (Gemini CLI, OpenAI Codex CLI, GitHub Copilot CLI). Ideally, I want to share them just by creating symbolic links.
Tools Covered
- Claude Code (Anthropic)
- Gemini CLI (Google)
- OpenAI Codex CLI (OpenAI)
- GitHub Copilot CLI (GitHub/Microsoft), GA in February 2026
Configuration File Layouts for Each Tool
Project instruction files (Project Instruction)
Each tool reads a Markdown file placed in the project root and decides how to behave in that project from it. Only the file name differs; the content is the same natural-language Markdown.
| Tool | File Name | Official documentation |
|---|---|---|
| Claude Code | CLAUDE.md |
Using CLAUDE.md files |
| Gemini CLI | GEMINI.md |
GEMINI.md |
| Codex CLI | AGENTS.md |
AGENTS.md Guide |
| Copilot CLI | AGENTS.md / .github/copilot-instructions.md |
Custom Instructions |
AGENTS.md is an open standard defined by the Linux Foundation's Agentic AI Foundation (announcement, December 2025). OpenAI, Anthropic, and Block co-founded it. It is adopted by more than 60,000 open source projects, and Claude Code also reads AGENTS.md as a fallback when there is no CLAUDE.md.
Official site: https://agents.md/
Global config directories
| Tool | Config Dir | Settings Format |
|---|---|---|
| Claude Code | ~/.claude/ |
settings.json (JSON) |
| Gemini CLI | ~/.gemini/ |
settings.json (JSON) |
| Codex CLI | ~/.codex/ |
config.toml (TOML) |
| Copilot CLI | ~/.copilot/ |
copilot-instructions.md (Markdown) |
CLI help excerpts
These are the configuration-related options, excerpted from each tool's --help.
Claude Code
--system-prompt <prompt> System prompt for session
--mcp-config <configs...> Load MCP servers from JSON files
--settings <file-or-json> Path to settings JSON file
--plugin-dir <path> Load plugins from a directory
--disable-slash-commands Disable all skills
Gemini CLI
--policy Additional policy files or directories
--extensions / -e List of extensions to use
--include-directories Additional workspace directories
Codex CLI
-c, --config <key=value> Override config from ~/.codex/config.toml
-p, --profile <CONFIG_PROFILE> Configuration profile
-s, --sandbox <SANDBOX_MODE> Sandbox policy
Conclusion: What Can Be Shared, and What Cannot
What can be shared via symbolic links
1. Project instruction files: fully shareable
All tools use natural-language instructions in Markdown format, so they can be shared just by symlinking from one canonical file.
AGENTS.md # Source of truth
CLAUDE.md -> AGENTS.md # Claude Code
GEMINI.md -> AGENTS.md # Gemini CLI
# Copilot CLI reads AGENTS.md directly
Git tracks symbolic links as they are, so the same structure is kept when team members clone the repository.
2. Global instruction files: fully shareable
In my environment, the global instructions of three tools point to the same file.
~/.claude/CLAUDE.md -> ~/home-files/config/claude-code/CLAUDE.md
~/.gemini/GEMINI.md -> ~/home-files/config/claude-code/CLAUDE.md
~/.codex/AGENTS.md -> ~/home-files/config/claude-code/CLAUDE.md
Claude Code specific instructions (such as "review with /review-stage") are also visible to Gemini and Codex, but a tool without the feature just ignores them, so there is no real harm. The global instructions of Copilot CLI can also be shared by symlink.
3. Slash commands / custom agents
| Tool | Command Dir | Format | How to invoke |
|---|---|---|---|
| Claude Code | ~/.claude/commands/ |
.md (YAML frontmatter) |
/command-name |
| Codex CLI | ~/.codex/prompts/ |
.md (YAML frontmatter) |
Passed as an argument |
| Gemini CLI | ~/.gemini/commands/ |
.toml |
/command-name |
| Copilot CLI | ~/.copilot/agents/ / .github/agents/ |
.agent.md (Markdown) |
/agent or --agent name |
Claude Code and Codex CLI use the same .md + YAML frontmatter format, so they can be shared directly by symlink. Copilot CLI uses its own extension, .agent.md, and the file structure also differs, so direct sharing is not possible.
~/.codex/prompts/ -> ~/home-files/config/claude-code/commands/
In my environment this symlink is already working.
Only Gemini CLI uses the .toml format, so it cannot be shared by a direct symlink.
The Claude Code / Codex CLI command format.
---
description: "Create feature branch, commit, push, and open a pull request."
allowed-tools: Bash(git:*), Bash(gh:*), Bash(open:*)
---
今回の修正内容にあった名前でフィーチャーブランチを作ってください。
The Gemini CLI command format.
description = "Create feature branch, commit, push, and open a pull request."
prompt = """
今回の修正内容にあった名前でフィーチャーブランチを作ってください。
"""
The content is the same, but the file format differs. For Gemini CLI, conversion is needed.
What cannot be shared
Skills (auto-trigger)
Claude Code's skill system (~/.claude/skills/) is a feature of its own that is triggered by automatically matching the user's input based on description. Neither Gemini CLI nor Codex CLI has an equivalent system (Codex has .agents/skills/, but the format and behavior differ).
Copilot CLI has a mechanism called custom agents (.agent.md files), with a feature that automatically delegates to subagents depending on the context. The concept is close to Claude Code's skills, but the file format (.agent.md) and location (.github/agents/ or ~/.copilot/agents/) differ, so sharing by symlink is not possible.
Skills are one of Claude Code's biggest differentiators, but each tool is starting to have its own skill-like feature, and I hope for standardization in the future.
settings.json / config.toml
Not shareable, because each tool's schema is completely different.
- Claude Code: manages permissions, hooks, plugins, sandbox in JSON
- Gemini CLI: manages auth, theme, mcpServers in JSON
- Codex CLI: manages model, trust_level, mcp_servers in TOML
Hooks / Plugins
A Claude Code specific feature. Copilot CLI also has hooks, but the format differs.
MCP server settings
Claude Code and Gemini CLI have a similar structure in JSON format, but tool-specific options (permissions and so on) are mixed in, so automatic sync is difficult. Syncing by hand is the realistic way.
References
- GitHub Copilot CLI GA announcement - Generally available since February 2026
- Creating custom agents for Copilot CLI - Custom agent definitions with
.agent.md - AGENTS.md official site
- Linux Foundation - Agentic AI Foundation announcement
- CLAUDE.md, AGENTS.md, and Every AI Config File Explained - A comprehensive comparison of the config files
- AGENTS.md: One File to Guide Them All - An explanation of using AGENTS.md as a universal standard
- Keep your AGENTS.md in sync - One Source of Truth - A practical guide to the symlink strategy
- Do you symlink your AGENTS.md and skills to .claude? - A discussion on SSW Rules
- Sharing AI Agent Configs Between Cursor and Claude with Symlinks - A hands-on article on sharing by symlink
- Claude Code, Codex, Gemini CLI Converge on Shared Patterns - An analysis of how the three tools are converging
- AGENTS.md Cross-Tool Unified Management Guide - A guide to unified cross-tool management
- awesome-agent-skills - A collection of 1000+ community skills
- ccmanager - A session manager for Claude Code / Gemini CLI / Codex CLI
Related posts
We look forward to discussing your development needs.