Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions docs/AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
# AGENT INSTRUCTIONS
---
title: AGENTS.md
description: Agent instructions for AI assistants working on the mux codebase
---

**Prime directive:** keep edits minimal and token-efficient—say only what conveys actionable signal.

Expand Down Expand Up @@ -153,7 +156,7 @@ Avoid mock-heavy tests that verify implementation details rather than behavior.
- Prefer fixes that simplify existing code; such simplifications often do not need new tests.
- When adding complexity, add or extend tests. If coverage requires new infrastructure, propose the harness and then add the tests there.

<!-- IMPORTANT: Do not rename these Mode headings; the parser extracts them verbatim. -->
{/* IMPORTANT: Do not rename these Mode headings; the parser extracts them verbatim. */}

## Mode: Exec

Expand Down
11 changes: 7 additions & 4 deletions docs/agentic-git-identity.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
# Agentic Git Identity
---
title: Agentic Git Identity
description: Configure a separate Git identity for AI-generated commits
---

Configure mux to use a separate Git identity for AI-generated commits, making it easy to distinguish between human and AI contributions. Reasons to use a separate identity include:

Expand All @@ -23,7 +26,7 @@ Create a separate GitHub account for your agent:
2. Use a distinctive username (e.g., `yourname-agent`, `yourname-ai`)
3. Use a separate email (GitHub allows plus-addressing: `yourname+ai@example.com`)

> **Note**: This is optional but recommended. You can also use your main account with a different email/name.
<Info>This is optional but recommended. You can also use your main account with a different email/name.</Info>

## Step 2: Generate Classic GitHub Token

Expand Down Expand Up @@ -54,7 +57,7 @@ Add the Git identity environment variables as [Project Secrets](./project-secret

These environment variables will be automatically injected when the agent runs Git commands in that project.

> **Note**: If you need the agent identity outside of mux, you can alternatively set these as global environment variables in your shell configuration (`~/.zshrc`, `~/.bashrc`, etc.)
<Info>If you need the agent identity outside of mux, you can alternatively set these as global environment variables in your shell configuration (`~/.zshrc`, `~/.bashrc`, etc.)</Info>

## Step 4: Configure GitHub Authentication

Expand Down Expand Up @@ -98,4 +101,4 @@ git config --global credential.helper ""
git config --global --add credential.helper '!gh auth git-credential'
```

⚠️ **Warning**: The "replace all" approach will disable platform keychain helpers and may break Git authentication for non-GitHub remotes (GitLab, Bitbucket, etc.).
<Warning>The "replace all" approach will disable platform keychain helpers and may break Git authentication for non-GitHub remotes (GitLab, Bitbucket, etc.).</Warning>
7 changes: 5 additions & 2 deletions docs/benchmarking.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
# Terminal Benchmarking
---
title: Terminal Benchmarking
description: Run Terminal-Bench benchmarks with the mux adapter
---

mux ships with a headless adapter for [Terminal-Bench](https://www.tbench.ai/). The adapter runs the Electron backend without opening a window and exercises it through the same IPC paths we use in integration tests. This page documents how to launch benchmarks from the repository tree.

## Prerequisites

- Docker must be installed and running. Terminal-Bench executes each task inside a dedicated Docker container.
- `uv` is available in the nix `devShell` (provided via `flake.nix`), or install it manually from <https://docs.astral.sh/uv/>.
- `uv` is available in the nix `devShell` (provided via `flake.nix`), or install it manually from [docs.astral.sh/uv](https://docs.astral.sh/uv/).
- Standard provider API keys (e.g. `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`) should be exported so mux can stream responses.

Optional environment overrides:
Expand Down
5 changes: 4 additions & 1 deletion docs/cli.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
# Command Line Interface
---
title: Command Line Interface
description: Run one-off agent tasks from the command line with mux run
---

Mux provides a CLI for running one-off agent tasks without the desktop app. Unlike the interactive desktop experience, `mux run` executes a single request to completion and exits.

Expand Down
7 changes: 5 additions & 2 deletions docs/context-management.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
# Context Management
---
title: Context Management
description: Commands for managing conversation history and token usage
---

Commands for managing conversation history length and token usage.

Expand Down Expand Up @@ -149,7 +152,7 @@ Remove oldest 50% of messages.

### OpenAI Responses API Limitation

⚠️ **`/truncate` does not work with OpenAI models** due to the Responses API architecture:
<Warning>`/truncate` does not work with OpenAI models due to the Responses API architecture:</Warning>

- OpenAI's Responses API stores conversation state server-side
- Manual message deletion via `/truncate` doesn't affect the server-side state
Expand Down
82 changes: 82 additions & 0 deletions docs/custom.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
/* Override logo height */
.nav-logo {
height: 2.4rem !important;
}

/* Target logo images specifically */
img[src*="/img/light.svg"],
img[src*="/img/dark.svg"] {
height: 2.4rem !important;
}

/* Override Tailwind h-6 class specifically for logo */
.nav-logo.h-6,
.h-6[src*="/img/"] {
height: 2.4rem !important;
}

/* More specific targeting for Mintlify logo classes */
.w-auto.relative.object-contain.hidden.dark\:block.px-1.h-6.max-w-48,
.w-auto.relative.object-contain.block.dark\:hidden.px-1.h-6.max-w-48 {
height: 2.4rem !important;
}

/* Override link colors to match grayscale theme */
a,
.prose a,
main a,
[data-testid="main-content"] a {
color: #999 !important;
}

a:hover,
.prose a:hover,
main a:hover,
[data-testid="main-content"] a:hover {
color: #FFF !important;
}

/* Apply styling to all images in docs */
main img,
.prose img,
[data-testid="main-content"] img,
.content img {
margin: 24px 0 !important;
border-radius: 8px !important;
}

/* Apply same styling to videos in docs */
main video,
.prose video,
[data-testid="main-content"] video,
.content video {
margin: 24px 0 !important;
border-radius: 8px !important;
}

/* Make table headers left-aligned */
main th,
.prose th,
[data-testid="main-content"] th,
.content th {
text-align: left !important;
}

/* Hide only the Powered by Mintlify attribution in footer */
[data-testid="footer-powered-by"],
footer a[href*="mintlify.com"],
footer a[href*="//mintlify.com"],
footer a[href^="https://mintlify"],
footer a[href^="http://mintlify"],
footer a[href*="mintlify.app"],
footer a[href*="mintcdn.com"][aria-label*="Mintlify"],
footer [aria-label*="Powered by Mintlify"],
footer [aria-label="Powered by Mintlify"] {
display: none !important;
}

/* Preserve footer layout even if attribution is removed */
footer [data-testid="footer-powered-by"] + *,
footer a[href*="mintlify.com"] + * {
margin-left: 0 !important;
}
78 changes: 78 additions & 0 deletions docs/docs.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
{
"$schema": "https://mintlify.com/docs.json",
"theme": "maple",
"name": "mux",
"logo": {
"light": "/img/light.svg",
"dark": "/img/dark.svg"
},
"favicon": "/favicon.svg",
"colors": {
"primary": "#999",
"light": "#FFF",
"dark": "#000"
},
"appearance": {
"default": "dark"
},
"interaction": {
"drilldown": true
},
"icons": {
"library": "lucide"
},
"css": ["/custom.css"],
"navigation": {
"tabs": [
{
"tab": "Documentation",
"groups": [
{
"group": "Introduction",
"pages": ["index", "install", "cli", "why-parallelize"]
},
{
"group": "Features",
"pages": [
{
"group": "Workspaces",
"pages": [
"workspaces",
{
"group": "Runtimes",
"pages": ["runtime", "runtime/local", "runtime/worktree", "runtime/ssh"]
},
"fork",
"init-hooks"
]
},
"vscode-extension",
"models",
{
"group": "Keyboard Shortcuts",
"pages": ["keybinds", "vim-mode"]
},
"context-management",
"instruction-files",
{
"group": "Project Secrets",
"pages": ["project-secrets", "agentic-git-identity"]
}
]
},
{
"group": "Advanced",
"pages": ["prompting-tips", "system-prompt", "telemetry", "mux-codes"]
},
{
"group": "Development",
"pages": ["storybook", "benchmarking", "AGENTS"]
}
]
}
]
},
"footerSocials": {
"github": "https://github.com/coder/mux"
}
}
4 changes: 4 additions & 0 deletions docs/favicon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 4 additions & 1 deletion docs/fork.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
# Forking Workspaces
---
title: Forking Workspaces
description: Clone workspaces with conversation history to explore alternatives
---

Use `/fork` to clone a workspace with its full conversation history and UI state. The forked workspace gets a new workspace on a new branch (using the same backend as the current workspace).

Expand Down
4 changes: 4 additions & 0 deletions docs/img/dark.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions docs/img/light.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 5 additions & 2 deletions docs/intro.md → docs/index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# Introduction
---
title: Introduction
description: mux - Coding Agent Multiplexer for AI-assisted development
---

![mux product screenshot](img/product-hero.webp)
![mux product screenshot](/img/product-hero.webp)

**mux** (Coding Agent Multiplexer) is a cross-platform desktop application for AI-assisted development with isolated workspace management.

Expand Down
5 changes: 4 additions & 1 deletion docs/init-hooks.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
# Init Hooks
---
title: Init Hooks
description: Run setup commands automatically when creating new workspaces
---

Add a `.mux/init` executable script to your project root to run commands when creating new workspaces.

Expand Down
11 changes: 7 additions & 4 deletions docs/install.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
# Install
---
title: Install
description: Download and install mux for macOS, Linux, and Windows
---

## Downloads

Expand All @@ -19,7 +22,7 @@ Download pre-built binaries of `main` from [GitHub Actions](https://github.com/c
- `macos-dmg-arm64` (Apple Silicon)
- **Linux**: AppImage (portable, works on most distros)

> **Note**: Windows builds are only available from [releases](https://github.com/coder/mux/releases), not from development builds.
<Info>Windows builds are only available from [releases](https://github.com/coder/mux/releases), not from development builds.</Info>

To download:

Expand Down Expand Up @@ -54,11 +57,11 @@ The app is code-signed and notarized by Apple, so it will open without security
3. Follow the installation prompts
4. Launch Mux from the Start menu or desktop shortcut

> ⚠️ Windows support is currently in alpha. Please [report any issues](https://github.com/coder/mux/issues) you encounter.
<Warning>Windows support is currently in alpha. Please [report any issues](https://github.com/coder/mux/issues) you encounter.</Warning>

### Testing Pre-Release Builds

⚠️ **Note**: Only builds from the `main` branch are signed and notarized. If you're testing a build from a pull request or other branch, you'll need to bypass macOS Gatekeeper:
<Warning>Only builds from the `main` branch are signed and notarized. If you're testing a build from a pull request or other branch, you'll need to bypass macOS Gatekeeper:</Warning>

1. After installing, open Terminal
2. Run: `xattr -cr /Applications/Mux.app`
Expand Down
7 changes: 5 additions & 2 deletions docs/instruction-files.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
# Instruction Files
---
title: Instruction Files
description: Configure agent behavior with AGENTS.md files
---

## Overview

Expand All @@ -9,7 +12,7 @@ mux layers instructions from two locations:

Priority within each location: `AGENTS.md` → `AGENT.md` → `CLAUDE.md` (first match wins). If the base file is found, mux also appends `AGENTS.local.md` from the same directory when present.

> **Note:** mux strips HTML-style markdown comments (`<!-- ... -->`) from instruction files before sending them to the model. Use these comments for editor-only metadata—they will not reach the agent.
<Info>mux strips HTML-style markdown comments (`<!-- ... -->`) from instruction files before sending them to the model. Use these comments for editor-only metadata—they will not reach the agent.</Info>

## Scoped Instructions

Expand Down
7 changes: 5 additions & 2 deletions docs/keybinds.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
# Keyboard Shortcuts
---
title: Keyboard Shortcuts
description: Complete keyboard shortcut reference for mux
---

mux is designed to be keyboard-driven for maximum efficiency. All major actions have keyboard shortcuts.

> **Note**: This document should be kept in sync with `src/utils/ui/keybinds.ts`, which is the source of truth for keybind definitions.
<Info>This document should be kept in sync with `src/utils/ui/keybinds.ts`, which is the source of truth for keybind definitions.</Info>

## Platform Conventions

Expand Down
5 changes: 4 additions & 1 deletion docs/models.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
## Models
---
title: Models
description: Configure AI providers including Anthropic, OpenAI, Google, xAI, and more
---

See also:

Expand Down
6 changes: 5 additions & 1 deletion docs/mux-codes.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
# Mux Codes
---
title: Mux Codes
description: Redeem free LLM token credits for evaluating Mux
---


Mux codes are free LLM token credits for evaluating Mux. Coder employees disburse them at events to users we think will enjoy Mux. If you want to get your hands on a code, ask the nearest Coder employee.

Expand Down
5 changes: 4 additions & 1 deletion docs/project-secrets.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
# Project Secrets
---
title: Project Secrets
description: Manage environment variables and API keys for your projects
---

Securely manage environment variables for your projects in mux. Project secrets are automatically injected when the agent executes bash commands, making it easy to provide API keys, tokens, and other sensitive configuration.

Expand Down
Loading
Loading