Skip to content

Commit daf7cb0

Browse files
committed
feat: layout, bump version
1 parent 1b41072 commit daf7cb0

File tree

14 files changed

+584
-419
lines changed

14 files changed

+584
-419
lines changed

AXEL.md

Lines changed: 65 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -9,77 +9,81 @@
99
workspace: axel
1010

1111
# =============================================================================
12-
# Agent directories
12+
# Skill directories
1313
# =============================================================================
14-
# Search paths for agent files (first match wins for duplicate names)
14+
# Search paths for skill files (first match wins for duplicate names)
1515
# Supports: ./relative, ~/home, /absolute paths
1616

1717
skills:
1818
- path: ./skills
1919
- path: ~/.config/axel/skills
2020

2121
# =============================================================================
22-
# Shell definitions
22+
# Layouts
2323
# =============================================================================
24-
# Define shells that can be used in terminal profiles
25-
#
26-
# Built-in types: claude, codex, opencode, shell
27-
# Custom types use the 'command' field
28-
29-
shells:
30-
# Claude Code - AI coding assistant
31-
- type: claude
32-
color: gray
33-
skills:
34-
- "*" # Load all agents, or list specific: ["agent1", "agent2"]
35-
# model: sonnet # Model: sonnet, opus, haiku
36-
# prompt: "Your task..." # Initial prompt
37-
# allowed_tools: [] # Restrict to specific tools
38-
# disallowed_tools: [] # Block specific tools
39-
# args: [] # Additional CLI arguments
40-
41-
# Codex - OpenAI coding assistant
42-
- type: codex
43-
color: green
44-
skills: ["*"]
45-
# model: gpt-4 # Model to use
46-
47-
# OpenCode - Open-source coding assistant
48-
# - type: opencode
49-
# color: blue
50-
# agents: ["*"]
51-
52-
# Regular shell with notes displayed on startup
53-
- type: shell
54-
notes:
55-
- "$ axel -k axel"
56-
57-
# Custom command example
58-
# - type: logs
59-
# command: "tail -f /var/log/app.log"
60-
# color: red
61-
62-
# =============================================================================
63-
# Terminal profiles
64-
# =============================================================================
65-
# Layout configurations for tmux sessions
66-
#
67-
# Profile types:
68-
# tmux - Standard tmux session (default)
69-
# tmux_cc - iTerm2 tmux integration mode
70-
# shell - No tmux, run first pane directly
71-
#
72-
# Pane positioning:
73-
# col: 0, 1, 2... - Column position (left to right)
74-
# row: 0, 1, 2... - Row position within column (top to bottom)
75-
# width: 50 - Column width percentage
76-
# height: 30 - Row height percentage
77-
#
78-
# Colors: purple, yellow, red, green, blue, gray, orange
7924

80-
terminal:
81-
profiles:
82-
# Default profile - two columns
25+
layouts:
26+
# ---------------------------------------------------------------------------
27+
# Pane definitions
28+
# ---------------------------------------------------------------------------
29+
# Define panes that can be used in grid layouts
30+
#
31+
# Built-in types: claude, codex, opencode, antigravity, shell
32+
# Custom types use the 'command' field
33+
34+
panes:
35+
# Claude Code - AI coding assistant
36+
- type: claude
37+
color: gray
38+
skills:
39+
- "*" # Load all skills, or list specific: ["skill1", "skill2"]
40+
# model: sonnet # Model: sonnet, opus, haiku
41+
# prompt: "Your task..." # Initial prompt
42+
# allowed_tools: [] # Restrict to specific tools
43+
# disallowed_tools: [] # Block specific tools
44+
# args: [] # Additional CLI arguments
45+
46+
# Codex - OpenAI coding assistant
47+
- type: codex
48+
color: green
49+
skills: ["*"]
50+
# model: gpt-4 # Model to use
51+
52+
# OpenCode - Open-source coding assistant
53+
# - type: opencode
54+
# color: blue
55+
# skills: ["*"]
56+
57+
# Regular shell with notes displayed on startup
58+
- type: shell
59+
notes:
60+
- "$ axel -k axel"
61+
62+
# Custom command example
63+
# - type: logs
64+
# command: "tail -f /var/log/app.log"
65+
# color: red
66+
67+
# ---------------------------------------------------------------------------
68+
# Grid layouts
69+
# ---------------------------------------------------------------------------
70+
# Layout configurations for tmux sessions
71+
#
72+
# Grid types:
73+
# tmux - Standard tmux session (default)
74+
# tmux_cc - iTerm2 tmux integration mode
75+
# shell - No tmux, run first pane directly
76+
#
77+
# Cell positioning:
78+
# col: 0, 1, 2... - Column position (left to right)
79+
# row: 0, 1, 2... - Row position within column (top to bottom)
80+
# width: 50 - Column width percentage
81+
# height: 30 - Row height percentage
82+
#
83+
# Colors: purple, yellow, red, green, blue, gray, orange
84+
85+
grids:
86+
# Default grid - two columns
8387
default:
8488
type: tmux
8589
claude:

Cargo.lock

Lines changed: 4 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[workspace.package]
2-
version = "0.4.0"
2+
version = "0.6.0"
33
edition = "2024"
44
description = "Axel is a tmux workspace launcher"
55
license = "Apache-2.0"

README.md

Lines changed: 69 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,34 @@
11
# axel
22

3-
A CLI for AI-assisted development. Portable agents across LLMs. Reproducible terminal workspaces.
3+
A CLI for AI-assisted development. Portable skills across LLMs. Reproducible terminal workspaces.
44

55
## The Problem
66

7-
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 agents are stuck in `.claude/` or `.codex/`.
7+
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/`.
88

9-
Not using agents? You're leaving most of the LLM potential on the table. Copy-pasting them between tools? They drift out of sync.
9+
Not using skills? You're leaving most of the LLM potential on the table. Copy-pasting them between tools? They drift out of sync.
1010

1111
Meanwhile, your terminal is chaos and your IDE crashes and keep losing context.
1212

13-
**axel fixes both and going beyond.**
13+
**axel fixes both and goes beyond.**
1414

1515
## Features
1616

17-
### Agent Portability
17+
### Skill Portability
1818

19-
Write your agents once. axel symlinks them wherever they need to go.
19+
Write your skills once. axel symlinks them wherever they need to go.
2020

2121
```
22-
agents/
22+
skills/
2323
code-reviewer.md
2424
frontend-engineer.md
2525
security-auditor.md
2626
```
2727

28-
![Agent Portability](docs/agents.png)
28+
![Skill Portability](docs/agents.png)
2929

3030

31-
Switch LLMs by changing one line. No more copy-pasting between `.claude/agents/` and `.codex/agents/`.
31+
Switch LLMs by changing one line. No more copy-pasting between `.claude/commands/` and `.codex/agents/`.
3232

3333
### Reproducible Workspaces
3434

@@ -38,16 +38,18 @@ One command. Your entire workspace materializes.
3838
# AXEL.md (frontmatter)
3939
workspace: myproject
4040

41-
shells:
42-
- type: claude
43-
agents: ["*"]
44-
- type: shell
45-
path: ./backend
46-
- type: shell
47-
path: ./frontend
48-
49-
terminal:
50-
profiles:
41+
layouts:
42+
panes:
43+
- type: claude
44+
skills: ["*"]
45+
- type: backend
46+
command: npm run dev
47+
path: ./backend
48+
- type: frontend
49+
command: pnpm dev
50+
path: ./frontend
51+
52+
grids:
5153
default:
5254
type: tmux
5355
claude:
@@ -88,7 +90,7 @@ cargo install --path crates/cli
8890

8991
### Supported LLMs
9092

91-
Agents can be dispatched to any of the following LLM:
93+
Skills can be dispatched to any of the following LLMs:
9294

9395
- [x] [Claude Code](https://claude.ai/code) - Anthropic
9496
- [x] [Codex](https://openai.com/codex) - OpenAI
@@ -103,18 +105,18 @@ Agents can be dispatched to any of the following LLM:
103105
# Initialize a workspace in current directory
104106
axel init
105107

106-
# Import your existing agents
107-
axel agent import ./.claude/agents/web-developer.md
108-
axel agent import ./agents/
108+
# Import your existing skills
109+
axel skill import ./.claude/commands/web-developer.md
110+
axel skill import ./skills/
109111

110-
# Launch a single AI shell (agents are symlinked automatically)
112+
# Launch a single AI pane (skills are symlinked automatically)
111113
axel claude
112114

113115
# Or launch the full workspace
114116
axel
115117
```
116118

117-
> **Note:** `axel bootstrap` exists to auto-discover agents across your machine, but it's experimental. We recommend manually importing agents with `axel agent import <file|dir>` for more control.
119+
> **Note:** `axel bootstrap` exists to auto-discover skills across your machine, but it's experimental. We recommend manually importing skills with `axel skill import <file|dir>` for more control.
118120
119121
## Usage
120122

@@ -129,52 +131,51 @@ axel session list # List running sessions
129131
axel session join <name> # Attach to a session
130132
axel session kill <name> # Kill a session
131133

132-
# Agents
133-
axel agent list # List all agents
134-
axel agent import <path> # Import from file or directory
135-
axel agent new # Create a new agent
136-
axel agent fork <name> # Copy global agent locally
137-
axel agent link <name> # Symlink global agent locally
134+
# Layouts
135+
axel layout ls # List available panes
136+
137+
# Skills
138+
axel skill list # List all skills
139+
axel skill import <path> # Import from file or directory
140+
axel skill new # Create a new skill
141+
axel skill fork <name> # Copy global skill locally
142+
axel skill link <name> # Symlink global skill locally
138143
```
139144

140145
See the [CLI Reference](https://docs.axel.md/commands) for all options.
141146

142147
## Configuration
143148

144-
### Shells
145-
146-
Define what runs in each pane:
147-
148-
```yaml
149-
shells:
150-
# AI assistants
151-
- type: claude
152-
agents: ["code-reviewer", "frontend-engineer"]
153-
model: claude-sonnet-4-20250514
154-
155-
- type: codex
156-
agents: ["*"] # All agents
157-
158-
- type: antigravity
159-
agents: ["*"]
160-
161-
# Custom commands
162-
- type: shell
163-
path: ./backend
164-
command: npm run dev
165-
166-
- type: shell
167-
path: ./frontend
168-
command: pnpm dev
169-
```
170-
171-
### Profiles
149+
### Layouts
172150

173-
Define terminal layouts:
151+
Define panes and grid layouts in the `layouts` section:
174152

175153
```yaml
176-
terminal:
177-
profiles:
154+
layouts:
155+
# Pane definitions - what runs in each pane
156+
panes:
157+
# AI assistants
158+
- type: claude
159+
skills: ["code-reviewer", "frontend-engineer"]
160+
model: sonnet
161+
162+
- type: codex
163+
skills: ["*"] # All skills
164+
165+
- type: antigravity
166+
skills: ["*"]
167+
168+
# Custom commands
169+
- type: backend
170+
path: ./backend
171+
command: npm run dev
172+
173+
- type: frontend
174+
path: ./frontend
175+
command: pnpm dev
176+
177+
# Grid layouts - how panes are arranged
178+
grids:
178179
default:
179180
type: tmux # tmux, tmux_cc (iTerm2), or shell
180181
claude:
@@ -189,19 +190,19 @@ terminal:
189190
row: 1
190191
```
191192
192-
### Agents
193+
### Skills
193194
194-
Centralize your agents:
195+
Centralize your skills:
195196
196197
```yaml
197-
agents:
198-
- path: ./agents # Local agents
199-
- path: ~/.config/axel/agents # Global agents
198+
skills:
199+
- path: ./skills # Local skills
200+
- path: ~/.config/axel/skills # Global skills
200201
```
201202
202203
## For Developers Who
203204
204-
- Run multiple AI coding assistants and are tired of maintaining separate configs
205+
- Run multiple AI coding assistants and are tired of maintaining separate skill configs
205206
- Work across several repositories that need to be running simultaneously
206207
- Want reproducible dev environments they can spin up instantly
207208
- Believe their tooling should adapt to them, not the other way around

0 commit comments

Comments
 (0)