Quick Start

Get up and running with barrel in just a few minutes.

Part 1: Agents

1

Import Your Agents

Start by importing your existing agent files into barrel's global directory:

$ barrel agent import ./.claude/agents/web-developer.md

You can also import an entire directory of agents:

$ barrel agent import ./agents/

Verify your imported agents:

$ barrel agent ls

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

2

Initialize a Workspace

In an existing repository, initialize a barrel workspace:

$ barrel init

This creates a minimal barrel.yaml in your project:

barrel.yaml
workspace: my-project

shells:
  - type: claude
    agents:
      - "*"
3

Launch Claude

Launch the Claude shell to see your agents in action:

$ barrel claude

You'll see output like this:

$ barrel claude
Installing agents...
→ ~/.claude/CLAUDE.md (symlink)
→ ~/.claude/agents/developer.md (symlink)
→ ~/.claude/agents/reviewer.md (symlink)
Launching claude...

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.

4

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:

barrel.yaml
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: blue
5

Launch the Workspace

Start your full workspace:

$ barrel

barrel creates a tmux session named after your project, with all panes arranged according to your profile:

claude
waiting for input...
shell
$ _
server
npm run dev

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.

6

Killing a Workspace

When you're done, kill the workspace to clean up agents and terminate the tmux session:

$ barrel -k my-project

barrel cleans up symlinks and restores your environment:

$ barrel -k my-project
Stopping workspace my-project...
Cleaning agents...
→ removed ~/.claude/agents/developer.md
→ removed ~/.claude/agents/reviewer.md
→ removed ~/.codex/agents/developer.md
Killing tmux session...
✔ Workspace my-project terminated
7

Complex Layouts

For fullstack development, you can create elaborate layouts with multiple AIs and services:

barrel.yaml
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: gray

This creates a workspace with two AIs working on different parts of your stack:

claude
frontend tasks...
frontend
pnpm dev
logs_fe
[info] ready
codex
backend tasks...
backend
cargo watch
logs_be
[info] listening

Next Steps

On this page