llmux

Session Manager for Claude Code

One machine.
Many profiles.

Isolated auth, settings, and history per project. Automatic routing based on your directory. Just run claude and it works.

Terminal
~ $ curl -fsSL https://llmux.sh/install | sh
~ $ llmux init zsh
Shell integration installed. Restart your shell.
~ $ llmux list
api ~/work/api (work)
client ~/client (client)
frontend ~/work/frontend (work)
projects ~/projects (personal)
~/work/api $ claude_
# resolves to "work" profile automatically

Everything you need

Each profile is a fully isolated Claude Code environment. Switch projects, not accounts.

Automatic routing

Run claude anywhere — no manual env vars or config. llmux resolves the right profile from your current directory using longest-prefix matching.

🔒

Isolated sessions

Separate auth, history, and settings per profile. Each gets its own CLAUDE_CONFIG_DIR.

💡

Profile-specific insights

Run /insights and get patterns from that profile's history only. Same Anthropic account, specialized intelligence per profile.

🌳

Worktree sessions

Auto-pass --worktree per profile. List, apply, revert, and resume sessions from the TUI or CLI. Compatible with CodeCanary for AI code review on your diffs.

🔑

Separate accounts

Use different subscriptions and API keys per profile. Personal account for side projects, work account for the day job.

/

Slash commands

Apply or revert worktree changes without leaving Claude Code. /llmux apply brings your session's changes into your main working tree as uncommitted diffs.

🧩

Skills & commands sync

Your global ~/.claude/skills/ and ~/.claude/commands/ are symlinked into every profile — install once, use everywhere.

Interactive TUI

Manage profiles, projects, options, and worktree sessions from a clean terminal UI.

🐚

Shell integration

Supports zsh, bash, and fish. A thin claude() wrapper handles everything behind the scenes.

Get started in seconds

One command to install, one to set up your shell.

Install
# Install llmux
curl -fsSL https://llmux.sh/install | sh
# Set up shell integration (pick your shell)
llmux init zsh
# Restart your shell, then launch the TUI
llmux

How it works

1

Create profiles

Each profile gets its own Claude config directory under ~/.config/llmux/sessions/ with separate auth and settings.

2

Map projects to profiles

Register directories to profiles. ~/work/api uses "work", ~/personal uses "personal".

3

Just run claude

The shell wrapper calls llmux resolve, finds the right profile by longest-prefix project match, and launches Claude with the correct config.

Frequently asked questions

What is llmux?

llmux is an open-source session manager for Claude Code that lets you run multiple isolated sessions. Each profile bundles authentication, settings, history, and API keys, and each project directory is bound to a profile. llmux automatically routes to the correct profile based on your current directory.

How do I use multiple Claude Code accounts on one machine?

Create a profile for each account in llmux — each with its own authentication. Map your project directories to profiles — for example, ~/work uses your company subscription and ~/personal uses your personal account. When you run claude, llmux automatically resolves the correct profile and auth based on your current directory.

How is llmux different from Claude Squad, Nimbalyst, or CCManager?

llmux is not a session multiplexer or GUI wrapper — it's a session/profile manager. The core problem it solves is isolation: separate auth, API keys, settings, history, and CLAUDE.md per project. Tools like Claude Squad focus on running multiple sessions in parallel via tmux. llmux operates at a lower level, routing every claude invocation to the right isolated config directory. You can use llmux alongside those tools.

Does it work with worktree sessions?

Yes. llmux can auto-pass --worktree per profile, so every Claude session runs in its own isolated git worktree. You can list, apply, revert, and resume worktree sessions from the TUI or CLI. The /llmux apply slash command merges a session's changes back into your main working tree as uncommitted diffs.

What shells are supported?

zsh, bash, and fish. Run llmux init <shell> to install a thin shell wrapper. The wrapper intercepts claude commands and routes them through llmux — all logic lives in the Go binary, not in shell scripts.

Is llmux free and open source?

Yes. llmux is MIT-licensed and available on GitHub. It's written in Go with no runtime dependencies.