The efficiency of AI tools depends on the context we provide them. In particular, the model should be able to read at least: 1) global instructions (AGENTS.md), 2) custom instructions/skills (skills/ folder), and 3) personalities/agents (agents/ folder). Some publicly available skill repositories and agents are amazing; however, in the AI world, there seems to be a consensus among users that the best results come from carefully crafting these files manually. Therefore, managing these files across different models has become a key aspect of maintaining a truly model-agnostic workflow.
Despite the importance of these files, there is no unified standard yet on how to manage them across different AI tools. Each tool (Claude Code, OpenCode, Antigravity CLI, Codex CLI, etc.) uses a different folder structure to store them. Therefore, keeping track of the most up-to-date file in each directory can become an administrative nightmare.
The solution I have found is to keep one real copy in a newly created folder called ~/.agents/. Then, these files are mirrored across all AI tools using symlinks. A symlink isn’t a copy; it’s a forwarding address.
~/.agents/AGENTS.mdfor my global instructions~/.agents/skills/for my skills~/.agents/agents/for agent definitions
Everything under ~/.claude, ~/.gemini, ~/.codex, and ~/.config/opencode is just a signpost back to those. When a tool opens ~/.claude/CLAUDE.md, it’s reading the exact same bytes as ~/.agents/AGENTS.md.
Edit the original, and all of them update at once because there is only ever one source of truth.
The whole thing is a one-time setup. Create the central directories, write your AGENTS.md by hand, then symlink them using ln -s commands. Here’s an example:
# Create the unifying/central folder
mkdir -p ~/.agents
# Handcraft your global instructions
nano ~/.agents/AGENTS.md
# Symlink the config file the tool uses to your central file
ln -s ~/.agents/AGENTS.md ~/.claude/CLAUDE.mdApply this logic to your skills/ and agents/ directories. That’s the whole system. Every tool reads the same thing. When you add a new tool, find the paths it reads, ln -s them home, and you’re done.
Below is a table of the native configuration paths for my most used tools and how this system links them to the central folder.
| Tool | 🧠 Native Config Path | 🍳 Central Source | 📋 Skills Path | 📄 Link Type | |||
|---|---|---|---|---|---|---|---|
| Claude Code | ~/.claude/CLAUDE.md | → | ~/.agents/AGENTS.md | → | ~/.claude/skills/ | → | symlink |
| Codex CLI | ~/.codex/AGENTS.md | → | ~/.agents/AGENTS.md | → | — | → | symlink |
| Antigravity CLI | ~/.gemini/GEMINI.md | → | ~/.agents/AGENTS.md | → | ~/.gemini/antigravity-cli/skills/ | → | symlink |
| OpenCode | ~/.config/opencode/AGENTS.md | → | ~/.agents/AGENTS.md | → | ~/.agents/skills/ | → | native |
* OpenCode reads ~/.agents/skills/ natively — do not symlink its skills folder or it will double-read.
* Gemini CLI was deprecated on June 18, 2026; its replacement is Antigravity CLI, which kept the ~/.gemini/ config folder.
If you wire up a tool I haven’t covered — or find a cleaner trick — write me at patricio@pperezh.com.
