One directory. Every AI tool.
Centralized configuration for Claude Code, Codex CLI, Gemini CLI, and OpenCode.
jato.pages.dev
npx @malopezr7/jato initYou use multiple AI coding tools. Each has its own config format, its own skills directory, its own way of handling MCPs. You end up maintaining the same instructions in three different places.
jato gives you one source of truth: ~/.jato/. You organize configs into jatos — named profiles like mobile, backend, code-review — and jato use mobile materializes the native files each tool expects.
The real trick: jato installs a skill that teaches your LLM to be your config wizard. Describe what you need, and the AI writes the configs, picks the MCPs, generates the skills. The CLI is plumbing — the LLM is the interface.
# Install and create your first jato
npx @malopezr7/jato init
# Activate it
jato use my-jato
# Check everything's working
jato doctorThree init paths:
- Import — scans your existing Claude/Codex/Gemini configs and extracts them
- Template — starts from a built-in template (
starter,mobile,backend,fullstack) - Wizard — just ask your AI to build one (the jato-manager skill handles it)
Want the jato-manager skill in your AI tools right now, without setting up a full jato?
# Install the skill to all detected providers
npx @malopezr7/jato skill install
# Install to a specific provider only
npx @malopezr7/jato skill install --provider claude
# Install to multiple providers
npx @malopezr7/jato skill install --provider claude --provider geminiThis copies the jato-manager skill directly into each provider's skills directory (~/.claude/skills/, ~/.gemini/skills/, etc.), so your LLM can immediately help you manage jato configurations.
A jato is a folder. Everything inside is your AI setup:
~/.jato/
config.yaml # active_jato: mobile
skills/
jato-manager.md # global skill — teaches LLM to manage jatos
rigs/
mobile/
jato.yaml # manifest: providers, MCPs, permissions
instructions.md # shared instructions for all providers
providers/
claude.md # → becomes CLAUDE.md
codex.md # → becomes AGENTS.md
skills/
code-review.md # available to every LLM via context skill
testing-rn.md
When you run jato use mobile, jato:
- Reads the manifest and all associated files
- Materializes native configs for each enabled provider
- Installs two skills per provider:
- jato-context — briefing about your active setup (skills, MCPs, instructions)
- jato-manager — meta-skill that lets the LLM create/modify jatos conversationally
- Creates timestamped backups of everything it overwrites
| Provider | Config | Instructions | Skills |
|---|---|---|---|
| Claude Code | ~/.claude/settings.json |
CLAUDE.md |
~/.claude/skills/ |
| Codex CLI | ~/.codex/config.toml |
AGENTS.md |
~/.codex/skills/ |
| Gemini CLI | ~/.gemini/settings.json |
GEMINI.md |
~/.gemini/skills/ |
| OpenCode | ~/.config/opencode/opencode.json |
— | — |
jato init Create your first jato (import, template, or empty)
jato use <name> Activate a jato — write configs, install skills
jato list Show available jatos
jato off Deactivate the current jato
jato doctor Health check — schema, env vars, providers, skills
jato install <repo> Install jatos from a git repository
jato skill install Install the jato-manager skill to your AI providers
That's the whole surface.
The jato-manager skill is what makes this different from a dotfiles manager. Once installed, your AI can:
- Create new jatos from a conversation ("I need a setup for React Native with Supabase")
- Add MCPs, skills, and agents on demand
- Switch between jatos
- Run diagnostics
- Knows 10+ common MCP configurations out of the box
You describe what you want. The AI writes the YAML, the markdown, the provider files — everything.
name: mobile
description: React Native mobile development
providers:
claude: true
codex: true
gemini: false
mcp_servers:
- id: github
command: npx
args: [-y, "@modelcontextprotocol/server-github"]
env: [GITHUB_TOKEN]
- id: supabase
command: npx
args: [-y, "@anthropic/mcp-server-supabase"]
env: [SUPABASE_URL, SUPABASE_KEY]
permissions:
auto_execute: falseA jato is a folder. Share it like you share code:
# Install from a repo
jato install github.com/acme/ai-jato --jato mobile
# Activate
jato use mobile
# ✓ Ready. Same tools, same context, zero config.No sync services. No cloud accounts. A git repo is your distribution mechanism.
pnpm install
pnpm build
pnpm test # 98 tests
pnpm lintMIT