No description
  • Rust 99%
  • Shell 0.8%
  • Inno Setup 0.1%
Find a file
Mikal 2ec3003d1f
Some checks failed
CI / linux (push) Failing after 42s
CI / macos (push) Failing after 1m45s
CI / linux-cross (mmux-linux-aarch64, gcc-aarch64-linux-gnu, aarch64-unknown-linux-gnu) (push) Failing after 3m12s
CI / linux-cross (mmux-linux-armv7, gcc-arm-linux-gnueabihf, armv7-unknown-linux-gnueabihf) (push) Failing after 3m10s
CI / windows (push) Failing after 1m57s
CI / linux-musl (push) Failing after 2m53s
docs: add type-safe coordinate system design plan
Design for introducing ScreenPos/ScreenRect/LocalPos/Size newtypes
to eliminate coordinate-mixing bugs. Tracks with GitHub epic #108.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 00:48:41 +01:00
.cargo Update cargo config file 2026-02-05 01:41:21 +01:00
.claude/commands Misc 2026-01-22 22:15:47 +01:00
.cursor feat(mmux): integrate SessionPickerController into UiState 2026-01-11 02:35:19 +01:00
.forgejo/workflows fix: resolve clippy warnings for Rust 1.93 CI and use --all-features in CI 2026-02-09 01:33:18 +01:00
.github/workflows feat(transport): add QUIC daemon integration and musl build infrastructure 2026-02-05 06:46:54 +01:00
.mnemos mnemos config 2026-01-22 00:52:43 +01:00
.vscode feat(mmux): integrate SessionPickerController into UiState 2026-01-11 02:35:19 +01:00
aur Misc 2026-01-23 20:49:01 +01:00
crates refactor: harden attach client with error handling and handshake 2026-02-14 21:51:26 +01:00
docs docs: add type-safe coordinate system design plan 2026-02-15 00:48:41 +01:00
examples style: cargo fmt across entire codebase 2026-02-09 00:05:13 +01:00
public_docs docs: add desktop mode, windows, LLM integration, and WM CLI reference 2026-02-13 14:43:22 +01:00
scripts feat(spore): add arm32 (armv7) musl binary support 2026-02-05 07:02:45 +01:00
skills/mmux-llm-integration docs: add LLM integration skill with command reference and workflow patterns 2026-02-09 02:56:11 +01:00
src refactor: replace process::exit with bail! and modernize config init 2026-02-14 21:52:24 +01:00
tests style: cargo fmt across desktop module and tests 2026-02-09 19:18:50 +01:00
.clinerules feat(mmux): integrate SessionPickerController into UiState 2026-01-11 02:35:19 +01:00
.cursorrules feat(mmux): integrate SessionPickerController into UiState 2026-01-11 02:35:19 +01:00
.editorconfig Misc 2026-01-23 20:49:01 +01:00
.env chore: add env configuration files 2026-01-31 07:37:46 +01:00
.envrc chore: add env configuration files 2026-01-31 07:37:46 +01:00
.gitignore gitignore 2026-02-01 00:34:58 +01:00
.mcp.json Misc 2026-01-22 01:36:32 +01:00
.rustfmt.toml Misc 2026-01-23 20:49:01 +01:00
AGENTS.md Misc 2026-01-26 00:01:47 +01:00
ARCHITECTURE.md Docs 2026-02-06 23:27:24 +01:00
ARCHITECTURE_VISUALS.md Major improvements in mmux 2025-12-31 16:28:30 +01:00
AwesomeRatatui.md Misc 2026-01-22 22:15:47 +01:00
build-deb.sh Misc 2026-01-22 23:34:13 +01:00
build-macos-dmg.sh Misc 2026-01-22 23:34:13 +01:00
build-macos-pkg.sh Misc 2026-01-22 23:34:13 +01:00
build.rs style: cargo fmt across entire codebase 2026-02-09 00:05:13 +01:00
Cargo.lock Lockfile 2026-02-14 21:53:09 +01:00
Cargo.toml chore: fix all compiler warnings across crates 2026-02-08 21:20:37 +01:00
CHANGELOG.md feat(llm): add Phase 2 — mouse, peek, wm subCLI, and event streaming 2026-02-08 21:08:27 +01:00
CLAUDE.md Misc 2026-01-26 00:01:47 +01:00
COMPACT.md Misc 2026-01-26 00:01:47 +01:00
COMPETITIVE_ANALYSIS.md Docs 2026-02-06 23:27:24 +01:00
CONFIG_GUIDE.md docs: comprehensive documentation overhaul 2026-01-30 04:56:48 +01:00
CONFIG_SUMMARY.txt Documentation: Add comprehensive config system documentation and examples 2025-12-31 16:28:29 +01:00
CONTRIBUTING.md docs: comprehensive documentation overhaul 2026-01-30 04:56:48 +01:00
debug_pty.sh Misc 2026-01-22 23:34:13 +01:00
deploy-aur.sh AUR Template 2026-02-01 00:34:49 +01:00
deploy-homebrew.sh Misc 2026-01-22 23:34:13 +01:00
DEVELOPMENT.md Development docs 2026-02-01 00:35:19 +01:00
FEATURES.md feat(llm): add Phase 2 — mouse, peek, wm subCLI, and event streaming 2026-02-08 21:08:27 +01:00
HANDLERS_COMPARISON.md Massive rewrite of mmux for better code architecture and hopefully a lot less bugs 2025-12-31 16:28:31 +01:00
hm.md Massive mmux updates 2025-12-31 16:28:30 +01:00
IMPROVEMENTS.md Docs 2026-02-06 23:27:24 +01:00
installer.iss Misc 2026-01-23 20:49:01 +01:00
justfile feat: add Starlark privacy screen control and build automation 2026-01-24 17:37:50 +01:00
LIB_REDUCTION_PLAN.md STEP 3: Extract layout_management module with LayoutManagementExt trait 2025-12-31 16:28:30 +01:00
MEEH_ROADMAP.md feat(config): add close_on_last_pane option 2026-01-31 11:50:27 +01:00
MENU_UX.md Rename mmux project directory 2025-12-31 16:28:23 +01:00
MMUX_PROJECT_OVERVIEW.md feat(mmux): Add multiple privacy screen styles (matrix/clock/train) 2026-01-07 10:28:08 +01:00
mmux_stability_report.md Research 2026-01-29 03:46:41 +01:00
mmux_zellij_deep_dive.md Research 2026-01-29 03:46:41 +01:00
mmux_zellij_stability_analysis.md Research 2026-01-29 03:46:41 +01:00
OVERVIEW.md Docs 2026-02-06 23:27:24 +01:00
PANE_ARCHITECTURE.md Major improvements in mmux 2025-12-31 16:28:30 +01:00
PANE_ARCHITECTURE_INDEX.md Major improvements in mmux 2025-12-31 16:28:30 +01:00
PRIVACY_SCREENS.md feat(mmux): Add multiple privacy screen styles (matrix/clock/train) 2026-01-07 10:28:08 +01:00
QUICK_START.md docs: Add quick start guide for mmux users 2025-12-31 16:28:30 +01:00
README.md Misc and documentation updates 2026-01-31 03:18:39 +01:00
README_OPENSOURCE.md docs: Add comprehensive open source documentation for mmux 2025-12-31 16:28:30 +01:00
REFACTORING_GUIDE.md docs: comprehensive documentation overhaul 2026-01-30 04:56:48 +01:00
REFACTORING_PLAN.md mmux: Fix Index/ID Pane Access 2025-12-31 16:28:31 +01:00
REFACTORING_SUMMARY.md Documentation: Add comprehensive refactoring summary 2025-12-31 16:28:29 +01:00
rust-analyzer.toml Misc 2026-01-22 23:34:13 +01:00
rust-toolchain.toml Misc 2026-01-26 00:01:47 +01:00
rustfmt.toml Misc 2026-01-26 00:01:47 +01:00
SPLIT_PANE_IMPLEMENTATION_GUIDE.md Major improvements in mmux 2025-12-31 16:28:30 +01:00
TODO.md Rename mmux project directory 2025-12-31 16:28:23 +01:00
USAGE.md docs: comprehensive documentation overhaul 2026-01-30 04:56:48 +01:00
VISION.md docs: Add vision and mission statement for mmux 2025-12-31 16:28:30 +01:00
zellij-ARCHITECTURE.md Research 2026-01-29 03:46:41 +01:00

mmux

A terminal workspace with batteries included.

mmux is a modern terminal multiplexer built in Rust. It provides session management, multiple panes with flexible layouts, Starlark scripting, and optional multi-server SSH support.

Quick Start

# Install
cargo install mmux

# Start a new session
mmux new

# Or attach to existing/create new
mmux

Features

Core

  • Multiple panes with PTY-backed terminal emulation
  • 5 layout modes: single, vertical stack, horizontal stack, grid, zoom
  • Session management with attach/detach
  • Daemon mode for persistent sessions
  • Mouse support (click, drag, scroll)

Keyboard Navigation

  • Ctrl+N enters command mode:
    • c - new pane
    • s - SSH prompt
    • x - kill pane
    • h/l or 0-9 - switch panes
  • Alt+, / Alt+. - previous/next pane
  • Alt+/ - command palette with fuzzy search
  • Ctrl+N w - pane selector overlay

Configuration

  • YAML configuration at ~/.mmux/config.yaml
  • Starlark scripting for advanced customization
  • Hot-reload on config changes
  • Customizable keybindings and themes

Optional Features

  • recording - TTYrec capture (default)
  • scripting - Starlark runtime (default)
  • ssh - SSH pane integration
  • remote - Multi-server orchestration

Configuration

# ~/.mmux/config.yaml
schema_version: 1
shell: "/bin/zsh"
shell_args: ["-l"]
env:
  TERM: "xterm-256color"
startup_panes:
  - "htop"
status_bar:
  show_pane_list: true
  show_mode: true
layout:
  default_mode: "vstack"
idle:
  timeout: "30m"
  privacy_style: "matrix"  # matrix, clock, or train

When shell is omitted, mmux falls back to $MMUX_SHELL, $SHELL, or /bin/sh.

CLI Commands

# Session management
mmux new -n "work"        # Create named session
mmux list                 # List sessions
mmux attach -s 1           # Attach to session (by ID)
mmux kill -s 1             # Kill session

# Pane operations
mmux list-panes -s 1     # List panes in session
mmux exec -s 1 -i 0 ls   # Execute in pane
mmux capture-pane -s 1 -p 0 # Capture pane contents

# Daemon
mmux daemon               # Start daemon
mmux ping                 # Check connectivity

Environment Variables

Variable Description
MMUX_SHELL Override default shell
MMUX_SESSION_NAME Session identifier
MMUX_DEFAULT_BEHAVIOR Default action: attach, reattach, reuse, or new
MMUX_AUTO_START Auto-start daemon (1/0)
MMUX Set by mmux: <socket>,<pid>,<session>
MMUX_PANE Current pane ID (e.g., %0)

Building

# Default (recording + scripting)
cargo build --release

# Minimal build
cargo build --release --no-default-features

# With SSH support
cargo build --release --features ssh

# Full remote support
cargo build --release --features remote

Architecture

mmux uses a daemon/client architecture with Unix socket IPC. Each pane runs in its own PTY with VT100 terminal emulation.

mmux/
├── src/                    # Main binary
├── crates/
│   ├── mmux-core/         # Window manager logic
│   ├── mmux-protocol/     # IPC protocol
│   ├── mmux-tui/          # TUI widgets
│   ├── mmux-state/        # State management
│   ├── mmux-ssh/          # SSH integration
│   ├── mmux-channel/      # Channel multiplexing
│   ├── mmux-spore/        # Session orchestration
│   └── mmux-orchestrator/ # Multi-agent coordination

Documentation

License

MIT