A CLI for AI-assisted development. Portable skills across LLMs. Reproducible terminal workspaces.
Vibe coding is here. LLMs are racing to top benchmarks with infinite funding behind them. You want to switch when one pulls ahead—but your skills are stuck in .claude/ or .codex/.
Not using skills? You're leaving most of the LLM potential on the table. Copy-pasting them between tools? They drift out of sync.
Meanwhile, your terminal is chaos and your IDE crashes and keep losing context.
axel fixes both and goes beyond.
Write your skills once. axel symlinks them wherever they need to go.
skills/
code-reviewer.md
frontend-engineer.md
security-auditor.md
Switch LLMs by changing one line. No more copy-pasting between .claude/commands/ and .codex/agents/.
One command. Your entire workspace materializes.
# AXEL.md (frontmatter)
workspace: myproject
layouts:
panes:
- type: claude
skills: ["*"]
- type: custom
name: backend
command: npm run dev
path: ./backend
- type: custom
name: frontend
command: pnpm dev
path: ./frontend
grids:
default:
type: tmux
claude:
col: 0
row: 0
backend:
col: 1
row: 0
frontend:
col: 1
row: 1axelClaude on the left, servers on the right. Close everything, come back tomorrow, run axel again—exactly where you left off.
curl -sL https://install.axel.md | bashOr build from source:
cargo install --path crates/cli- tmux for workspace management
- One or more AI coding assistants
Skills can be dispatched to any of the following LLMs:
- Claude Code - Anthropic
- Codex - OpenAI
- OpenCode - Open source
- Antigravity - Google
See the full Quick Start guide for detailed instructions.
# Initialize a workspace in current directory
axel init
# Import your existing skills
axel skill import ./.claude/commands/web-developer.md
axel skill import ./skills/
# Launch a single AI pane (skills are symlinked automatically)
axel claude
# Or launch the full workspace
axelNote:
axel bootstrapexists to auto-discover skills across your machine, but it's experimental. We recommend manually importing skills withaxel skill import <file|dir>for more control.
# Daily workflow
axel # Launch workspace from AXEL.md
axel -w feat/auth # Launch in a git worktree
axel -k # Kill session and clean up
# Sessions
axel session list # List running sessions
axel session join <name> # Attach to a session
axel session kill <name> # Kill a session
# Layouts
axel layout ls # List panes and grids (JSON output)
axel layout ls --json # Explicit JSON format
# Skills
axel skill list # List all skills
axel skill import <path> # Import from file or directory
axel skill new # Create a new skill
axel skill fork <name> # Copy global skill locally
axel skill link <name> # Symlink global skill locallySee the CLI Reference for all options.
Define panes and grid layouts in the layouts section:
layouts:
# Pane definitions - what runs in each pane
panes:
# AI assistants (built-in types: claude, codex, opencode, antigravity)
- type: claude
skills: ["code-reviewer", "frontend-engineer"]
model: sonnet
- type: codex
skills: ["*"] # All skills
# Custom panes - use type: custom with unique names
- type: custom
name: shell
notes:
- "Free shell for commands"
- type: custom
name: backend
path: ./backend
command: npm run dev
- type: custom
name: frontend
path: ./frontend
command: pnpm dev
# Grid layouts - how panes are arranged
# Reference panes by their name (claude, codex, shell, backend, frontend)
grids:
default:
type: tmux # tmux, tmux_cc (iTerm2), or shell
claude:
col: 0
row: 0
backend:
col: 1
row: 0
height: 50
frontend:
col: 1
row: 1Centralize your skills:
skills:
- path: ./skills # Local skills
- path: ~/.config/axel/skills # Global skills- Run multiple AI coding assistants and are tired of maintaining separate skill configs
- Work across several repositories that need to be running simultaneously
- Want reproducible dev environments they can spin up instantly
- Believe their tooling should adapt to them, not the other way around
MIT

