CASOON Open Source
One config tree for Claude Code and Codex.
ai-agent-config keeps global instructions, subagents and skills in a single neutral folder and symlinks them into ~/.claude and ~/.codex under the names each tool expects. Edit a file once and it is live for every tool.
git clone https://github.com/casoon/ai-agent-config.git && ai-agent-config/install/link-all.sh./install/link-claude.sh./install/link-codex.sh./install/link-mistral.shlinked ~/.claude/CLAUDE.md -> ~/ai-agent-config/GLOBAL.md linked ~/.claude/agents -> ~/ai-agent-config/agents linked ~/.claude/skills -> ~/ai-agent-config/skills Claude config linked from ~/ai-agent-config seeded codex-config.toml from codex-config.example.toml linked ~/.codex/AGENTS.md -> ~/ai-agent-config/GLOBAL.md linked ~/.codex/config.toml -> ~/ai-agent-config/codex-config.toml linked ~/.codex/agents -> ~/ai-agent-config/codex-agents linked ~/.codex/skills -> ~/ai-agent-config/skills Codex config linked from ~/ai-agent-config skip: ~/.vibe/config.toml not found — Vibe CLI not installed or not yet configured. All configs linked.
- skills, each a folder with a SKILL.md
- 82
- subagents, written once in Markdown
- 5
- tools wired up: Claude Code, Codex, Mistral Vibe
- 3
- copy steps: every target is a symlink
- 0
What it does
One source, several tools
GLOBAL.md becomes ~/.claude/CLAUDE.md and ~/.codex/AGENTS.md; skills/ is linked into both. Nothing is duplicated, so the tools cannot drift apart.
Agents rendered for Codex
Subagents live as Markdown with YAML frontmatter in agents/. scripts/render-codex-agents.py writes the TOML that Codex reads, and the pre-commit hook runs it on every commit.
Nothing gets lost
A target that exists and is not a symlink is moved to <path>.bak before the link is created. Existing symlinks are replaced.
Machine state stays local
The live Codex config is git-ignored and seeded from codex-config.example.toml on first install. Secrets are scanned with nosecrets before each commit.
Generated from agents/
All examples →name = "reviewer"
description = "Reviews a diff or proposed change for correctness, regression risk, maintainability, and architectural fit. Returns findings grouped by severity. Does not implement."
prompt = """
You are a review agent. You read code and report — you do not change it.
## When to invoke
- After an implementer has produced a diff and before it is merged or shipped.
- When the user wants a second opinion on a change they've already written.
- When a change touches security-sensitive, concurrency-sensitive, or data-migration code.
Do **not** invoke for: trivial fixes (typos, formatting), or as a gate on every change — reserve for non-trivial diffs.
## Expected input
- The diff (or the files that changed) and the intent behind the change.
- Context about the surrounding code if the reviewer would otherwise have to guess.
## Required output format
```
## Summary
<one sentence — does the change do what it claims, and is it safe to ship>
## Critical
- <bug, regression, or safety issue that must be fixed before merge>
## Warning
- <real problem, but not a blocker — e.g. missing test, edge case, maintainability>
## Suggestion
- <nice-to-have, style, or optional improvement>
## Not reviewed
- <area you skipped and why — unclear scope, missing context, out of expertise>
```
Omit any severity section that has no findings — don't pad with filler.
## Rules
- Be specific: cite `file:line` for every finding.
- Explain **why** something is wrong, not just **what** is wrong. A reviewer who says "this is bad" without a reason is useless.
- Distinguish between "this is a bug" (Critical), "this will cause friction later" (Warning), and "I would do it differently" (Suggestion). Do not inflate severity.
- Check: correctness, regression risk, error handling at real boundaries (not invented ones), test coverage, architectural consistency, a11y for UI, and obvious security footguns.
- If the change looks correct, say so plainly. A clean review is a valid outcome.
"""
codex-agents/reviewer.toml as committed: the pre-commit hook renders it from agents/reviewer.md. The showcase pairs every subagent with its generated file.
codex-agents/reviewer.tomlQuickstart
Clone, link, and optionally enable the hook. The full walkthrough lives in the documentation.
- Clone the repository to a permanent location; the symlinks point into it.
- Run
./install/link-all.sh, or one of the per-tool scripts. - Enable the pre-commit hook if you edit agents, so
codex-agents/stays in sync.
git clone https://github.com/casoon/ai-agent-config.git ~/ai-agent-config
cd ~/ai-agent-config
./install/link-all.shgit config core.hooksPath .githooks