https://github.com/txtx/axel
Portable agents across LLMs, reproducible terminal workspaces. Tmux, Git worktrees.
https://github.com/txtx/axel
antigravity claude-code codex opencode tmux vibe-coding worktree-manager
Last synced: 13 days ago
JSON representation
Portable agents across LLMs, reproducible terminal workspaces. Tmux, Git worktrees.
- Host: GitHub
- URL: https://github.com/txtx/axel
- Owner: txtx
- Created: 2026-01-05T13:33:21.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-01-29T19:26:08.000Z (18 days ago)
- Last Synced: 2026-01-29T19:55:41.521Z (18 days ago)
- Topics: antigravity, claude-code, codex, opencode, tmux, vibe-coding, worktree-manager
- Language: Rust
- Homepage: https://barrel.rs
- Size: 286 KB
- Stars: 12
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# axel
A CLI for AI-assisted development. Portable skills across LLMs. Reproducible terminal workspaces.
## The Problem
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.**
## Features
### Skill Portability
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/`.
### Reproducible Workspaces
One command. Your entire workspace materializes.
```yaml
# AXEL.md (frontmatter)
workspace: myproject
layouts:
panes:
- type: claude
skills: ["*"]
- type: backend
command: npm run dev
path: ./backend
- type: frontend
command: pnpm dev
path: ./frontend
grids:
default:
type: tmux
claude:
col: 0
row: 0
backend:
col: 1
row: 0
frontend:
col: 1
row: 1
```
```bash
axel
```

Claude on the left, servers on the right. Close everything, come back tomorrow, run `axel` again—exactly where you left off.
## Installation
```bash
curl -sL https://install.axel.md | bash
```
Or build from source:
```bash
cargo install --path crates/cli
```
### Prerequisites
- [tmux](https://github.com/tmux/tmux) for workspace management
- One or more AI coding assistants
### Supported LLMs
Skills can be dispatched to any of the following LLMs:
- [x] [Claude Code](https://claude.ai/code) - Anthropic
- [x] [Codex](https://openai.com/codex) - OpenAI
- [x] [OpenCode](https://opencode.ai) - Open source
- [x] [Antigravity](https://antigravityai.org) - Google
## Quick Start
> See the full [Quick Start guide](https://docs.axel.md/quick-start) for detailed instructions.
```bash
# 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
axel
```
> **Note:** `axel bootstrap` exists to auto-discover skills across your machine, but it's experimental. We recommend manually importing skills with `axel skill import ` for more control.
## Usage
```bash
# 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 # Attach to a session
axel session kill # Kill a session
# Layouts
axel layout ls # List available panes
# Skills
axel skill list # List all skills
axel skill import # Import from file or directory
axel skill new # Create a new skill
axel skill fork # Copy global skill locally
axel skill link # Symlink global skill locally
```
See the [CLI Reference](https://docs.axel.md/commands) for all options.
## Configuration
### Layouts
Define panes and grid layouts in the `layouts` section:
```yaml
layouts:
# Pane definitions - what runs in each pane
panes:
# AI assistants
- type: claude
skills: ["code-reviewer", "frontend-engineer"]
model: sonnet
- type: codex
skills: ["*"] # All skills
- type: antigravity
skills: ["*"]
# Custom commands
- type: backend
path: ./backend
command: npm run dev
- type: frontend
path: ./frontend
command: pnpm dev
# Grid layouts - how panes are arranged
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: 1
```
### Skills
Centralize your skills:
```yaml
skills:
- path: ./skills # Local skills
- path: ~/.config/axel/skills # Global skills
```
## For Developers Who
- 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
## Links
- [Website](https://axel.md)
- [Documentation](https://docs.axel.md)
## License
MIT