Skip to content

malopezr7/jato

Repository files navigation

version license stars node last commit

jato

One directory. Every AI tool.
Centralized configuration for Claude Code, Codex CLI, Gemini CLI, and OpenCode.

jato.pages.dev


npx @malopezr7/jato init

Why

You 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.

Quick Start

# Install and create your first jato
npx @malopezr7/jato init

# Activate it
jato use my-jato

# Check everything's working
jato doctor

Three 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)

Quick Skill Setup

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 gemini

This 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.

How It Works

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:

  1. Reads the manifest and all associated files
  2. Materializes native configs for each enabled provider
  3. 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
  4. Creates timestamped backups of everything it overwrites

Providers

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

Commands

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 Skill

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.

Manifest

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: false

Teams

A 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.

Development

pnpm install
pnpm build
pnpm test        # 98 tests
pnpm lint

License

MIT


Star History

About

One directory. Every AI tool. Centralized configuration for Claude Code, Codex CLI, Gemini CLI, and OpenCode.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors