Quick Start
Get up and running with barrel in just a few minutes.
Part 1: Agents
Import Your Agents
Start by importing your existing agent files into barrel's global directory:
$ barrel agent import ./.claude/agents/web-developer.mdYou can also import an entire directory of agents:
$ barrel agent import ./agents/Verify your imported agents:
$ barrel agent lsAgents are stored in ~/.config/barrel/agents, making them available across all your workspaces.
Experimental: barrel bootstrap can auto-discover agents across your machine, but we recommend manual import for more control.
Initialize a Workspace
In an existing repository, initialize a barrel workspace:
$ barrel initThis creates a minimal barrel.yaml in your project:
workspace: my-project
shells:
- type: claude
agents:
- "*"Launch Claude
Launch the Claude shell to see your agents in action:
$ barrel claudeYou'll see output like this:
barrel creates symlinks from your centralized agents to Claude's expected location. This happens for each supported AI (Claude, Codex, OpenCode) - same agents, different destinations.
When the session ends, barrel cleans up the symlinks automatically. Your agents stay in one place, portable across all LLMs.
Part 2: Terminal Profiles
Now let's set up a proper workspace with tmux. Terminal profiles define how your panes are arranged.
Add a Terminal Profile
Update your manifest to include a terminal profile with Claude on the left, and two custom shells stacked on the right:
workspace: my-project
shells:
- type: claude
agents:
- "*"
- type: shell
- type: server
command: npm run dev
terminal:
profiles:
default:
type: tmux
claude:
col: 0
row: 0
shell:
col: 1
row: 0
color: yellow
server:
col: 1
row: 1
color: blueLaunch the Workspace
Start your full workspace:
$ barrelbarrel creates a tmux session named after your project, with all panes arranged according to your profile:
Why tmux?
tmux sessions persist even when you close your terminal. If you accidentally close a window or disconnect, just run barrel again to reattach. Your Claude conversation, running servers, and shell history are all preserved.
Killing a Workspace
When you're done, kill the workspace to clean up agents and terminate the tmux session:
$ barrel -k my-projectbarrel cleans up symlinks and restores your environment:
Complex Layouts
For fullstack development, you can create elaborate layouts with multiple AIs and services:
workspace: fullstack
shells:
- type: claude
agents: ["*"]
- type: codex
agents: ["*"]
- type: frontend
command: pnpm dev
- type: backend
command: cargo watch -x run
- type: logs_fe
command: tail -f logs/frontend.log
- type: logs_be
command: tail -f logs/backend.log
terminal:
profiles:
default:
type: tmux
claude:
col: 0
row: 0
frontend:
col: 0
row: 1
logs_fe:
col: 1
row: 1
color: gray
codex:
col: 2
row: 0
backend:
col: 2
row: 1
logs_be:
col: 3
row: 1
color: grayThis creates a workspace with two AIs working on different parts of your stack:
Next Steps
- Learn all available CLI commands
- Explore the full manifest file reference
- Learn about portable agents
- Use git worktrees for parallel branch development