tmux workspace manager + project workflows

REMOTE
MACHINES
FORGET.

mxr doesn't.

curl -sSfL https://raw.githubusercontent.com/urbanisierung/mxr/main/install.sh | sh

x86_64 / aarch64 Linux · static musl binary · no runtime details →

You ssh in. You check which tmux sessions exist. You try to remember which one had the editor, and which one was watching logs.

You have a second machine. Same project, different setup. You type the same mkdir commands again from memory.

You move to a new machine. You start from zero.

One config file. Every machine knows where everything lives.

How it works.

  1. mxr session add myproject

    Register the current directory as a named session. Saved to ~/.config/mxr/sessions.toml.

  2. mxr myproject

    Attach to the session if it exists. Create it if it doesn't — opening windows in the right directories, selecting window 1.

  3. mxr sync all user@host

    Push your config and the mxr binary to another machine. It has everything your current machine has.

  4. mxr ship "fix: stop losing sessions"

    git add -A, commit, push, open a PR. The full flow in one command.

  5. mxr new myapp --template rust

    Scaffold a new repo from a CLAUDE.md template — git init, create the GitHub repo, push, and register it as a session. Presets for Rust, Python, Go, TypeScript, and more.

  6. mxr next

    Checkout the default branch, pull, and cut the next numbered branch. Start the next piece of work without naming it.

  7. mxr claude init

    Seed a repo's .claude/ with your Claude Code skills and plugins, ready to commit.

  8. mxr deploy pages myapp

    Create a Cloudflare Pages, Worker, or Fly.io target, then wire up CI credentials with mxr secret.

Get it.

curl -sSfL \
  https://raw.githubusercontent.com/urbanisierung/mxr/main/install.sh \
  | sh

x86_64 and aarch64 Linux. Static musl binary. No runtime required. Update in place later with mxr update. All releases →