Skip to main content

A tmux session manager purpose-built for AI agent CLIs

Project description

devmux

devmux is a tmux launcher for developers who use multiple AI agents in the CLI.

It gives you one command to open a repeatable coding cockpit with agent panes, tests, logs, and shell helpers in the right layout and working directories.

Why it exists

If you already work with tools like Claude Code, Codex, Gemini CLI, Aider, test watchers, and logs, your terminal usually turns into a mess:

  • too many panes to rebuild by hand
  • prompts sent to the wrong place
  • different repos and directories across panes
  • no shared setup you can reuse every day

devmux fixes that by making your workflow reproducible.

What it does

  • Launch named workspaces from devmux.yaml
  • Create real tmux layouts: duo, trio, quad, focus
  • Route prompts safely by pane role or pane name
  • Reuse existing sessions with idempotent start
  • Rebuild a workspace with --recreate
  • Scaffold starter configs with devmux init
  • Keep runtime behavior generic while still supporting AI-heavy workflows

Who it is for

devmux is best for developers who:

  • already use tmux
  • run 2 to 5 CLI agents or helper panes at once
  • want one command to restore a known working setup
  • want a simple, scriptable alternative to a full TUI dashboard

Requirements

  • macOS or Linux
  • tmux installed and available on PATH
  • Python 3.8+

Check tmux:

tmux -V

Install

Option 1: Install from PyPI

Use this after you publish devmux to PyPI:

python3 -m pip install devmux

Option 2: Install from GitHub right now

If you want people to try it before a PyPI release:

python3 -m pip install "git+https://github.com/olllayor/devmux.git"

Option 3: Install locally for development

git clone https://github.com/olllayor/devmux.git
cd devmux
python3 -m pip install -e ".[dev]"

Quick start

Generate a starter config:

devmux init --preset backend

Start the workspace:

devmux start backend

Create or reuse a session without attaching:

devmux start backend --detach

Resume the same workspace later:

devmux resume backend

Send a prompt to all agent panes in the current session:

devmux send "review the auth flow"

Target a specific role or pane:

devmux send "show me errors" --role logs
devmux send "run tests" --pane tests
devmux send "status" --all

List or kill sessions:

devmux ls
devmux kill backend

Config

Example devmux.yaml:

workspaces:
  backend:
    layout: trio
    cwd: ~/projects/tapi
    panes:
      - name: planner
        role: agent
        command: "claude"
      - name: builder
        role: agent
        command: "codex --approval auto"
      - name: logs
        role: logs
        command: "docker compose logs -f"

Accepted layouts:

  • duo
  • trio
  • quad
  • focus

Accepted roles:

  • agent
  • logs
  • tests
  • shell

Legacy agents configs are still accepted and mapped to role: agent.

Commands

devmux init [--preset minimal|backend|full-stack] [--config PATH] [--force]
devmux start [<workspace>] [--config PATH] [--preset minimal|backend|full-stack] [--detach] [--recreate]
devmux attach <workspace>
devmux resume <workspace>
devmux ls
devmux kill <workspace>
devmux send "<prompt>" [--session NAME] [--all | --role ROLE | --pane NAME ...]

You can also skip editing devmux.yaml for a quick start:

devmux start my-project --preset backend
# or, from inside a project directory:
devmux start --preset backend

Typical workflows

Two-agent coding setup

workspaces:
  minimal:
    layout: duo
    cwd: .
    panes:
      - name: claude
        role: agent
        command: "claude"
      - name: codex
        role: agent
        command: "codex --approval auto"

Backend setup with logs

workspaces:
  backend:
    layout: trio
    cwd: .
    panes:
      - name: planner
        role: agent
        command: "claude"
      - name: builder
        role: agent
        command: "codex --approval auto"
      - name: logs
        role: logs
        command: "docker compose logs -f"

Full-stack setup with tests and logs

workspaces:
  full-stack:
    layout: quad
    cwd: .
    panes:
      - name: frontend
        role: agent
        command: "claude"
      - name: backend
        role: agent
        command: "codex --approval auto"
      - name: tests
        role: tests
        command: "npm test"
      - name: logs
        role: logs
        command: "docker compose logs -f"

How to release it to the world

Use two distribution paths:

  1. GitHub for discovery, source, issues, releases, and docs.
  2. PyPI for the simplest install command: python3 -m pip install devmux.

Recommended rollout order:

  1. Push this repo to GitHub with a clean README, license, and tagged release.
  2. Push a version tag like vX.Y.Z; GitHub Actions creates the release and publishes to PyPI.
  3. Share a short demo GIF/video showing devmux init, devmux start, and devmux send.
  4. Post it in places where AI-heavy CLI devs already are: X, Reddit, Hacker News, tmux/devtools communities, Discord/Slack groups, and your own network.

The detailed publishing checklist is in RELEASING.md.

Development

Install dev dependencies:

python3 -m pip install -e ".[dev]"

Run tests:

python3 -m pytest

Scope

devmux v0.2 is intentionally focused:

  • no TUI yet
  • no status bar or health dashboard
  • no deep agent-specific integrations
  • no full pane history or recovery system

The goal is to be a reliable painkiller for launching and routing multi-agent CLI sessions.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

devmux-0.2.2.tar.gz (15.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

devmux-0.2.2-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

Details for the file devmux-0.2.2.tar.gz.

File metadata

  • Download URL: devmux-0.2.2.tar.gz
  • Upload date:
  • Size: 15.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for devmux-0.2.2.tar.gz
Algorithm Hash digest
SHA256 6de18b32085c435a24b2db261ffc56d3fd9de2e792e8e3772671d16a39911fee
MD5 4be10d795d5014516cad3f0d1740d670
BLAKE2b-256 5a864abaa1c95078b14f6cdec689aac893f28d1d875e0cc1fbfee8226a70e152

See more details on using hashes here.

Provenance

The following attestation bundles were made for devmux-0.2.2.tar.gz:

Publisher: publish.yml on olllayor/devmux

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file devmux-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: devmux-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 12.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for devmux-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e08015d5f0763c07335aa71249daf3bd21f4e29c6cb1fc48a5084ba0effa8f93
MD5 1c5a4268d15574cdb4440e870cda1c90
BLAKE2b-256 7a8438a48d3064426891b078198a52b8f323dbf295b13cf15a11f35b5b064025

See more details on using hashes here.

Provenance

The following attestation bundles were made for devmux-0.2.2-py3-none-any.whl:

Publisher: publish.yml on olllayor/devmux

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page