@brimveyn/aimux

中文文档
1.29.0发布于 2026/10/25MITES Module近 30 天下载 2764

A terminal multiplexer for AI CLIs. Run Claude, Codex, OpenCode, Kimi side-by-side with tabbed navigation, split panes, and persistent sessions.

原始使用文档
文档目录15 节
  1. Features
  2. Install
  3. Quick Start
  4. Core Concepts
  5. Profiles
  6. Config vs Runtime State
  7. Projects
  8. Keymaps
  9. Default Everyday Shortcuts
  10. CLI
  11. Runtime Model
  12. Documentation Map
  13. Development
  14. References
  15. License

aimux

A terminal multiplexer for AI CLIs. Run Claude, Codex, OpenCode and normal shell tabs side by side in one TUI, across several projects at once, with git worktrees per branch, an in-app diff and pull-request review, split panes, snippets, themes, plugins, and fully configurable keymaps.

Built with Bun TypeScript MIT License

aimux demo

Features

  • multi-project workflow with a dedicated project picker
  • tabs for claude, codex, opencode, grok, kimi, antigravity, and terminal
  • split panes with pane focus and resize shortcuts
  • persistent projects with saved layout and tab state
  • profile-isolated config, catalogs, daemon sockets, and runtime state
  • typed keymap customization through @brimveyn/aimux-config
  • snippets catalog and snippet picker
  • configurable git pane (embedded in the sidebar or as a standalone pane) and a dedicated git mode for review / stage / commit / push with a split or stacked diff view and shiki-powered highlighting
  • the same pane's github tab (g) reads the branch's open pull request through gh — title, body, and every CI check with its state and duration
  • git worktrees for running agents on parallel branches — create per-branch workspaces, review each against its base, and squash-move a workspace's work into another
  • a plugin system with its own typed API, plus aimux plugin to search, install and link them
  • built-in help generated from the resolved keymap
  • theme picker with 67 built-in themes (shiki catalog + aimux house themes) and a / filter

Install

bun install -g @brimveyn/aimux

Requires Bun.

Shell completion (bash, zsh, fish) installs itself the first time you launch the TUI — one file in your shell's completions directory, no dotfile edits. Run aimux doctor to see where it landed, or aimux completion install --shell zsh to place it yourself. Opt out with AIMUX_NO_COMPLETION_INSTALL=1. See docs/reference/cli.md.

Quick Start

Create the default profile and install the typed config package into it:

mkdir -p ~/.config/aimux/default
cd ~/.config/aimux/default
bun init -y
bun add -d @brimveyn/aimux-config

Create ~/.config/aimux/default/aimux.config.ts:

import { defineConfig, actions } from '@brimveyn/aimux-config'

export default defineConfig({
  projectBar: {
    initialPosition: 'top',
    initialVisible: true,
  },

  keymaps: (k) =>
    k.mode('navigation', (m) => m.map('<C-g>', actions.projectPicker, 'Project picker')),
})

Typed config is startup intent, not app-managed persisted state. Fields like projectBar.initialVisible and projectBar.initialPosition are reapplied on every launch, so runtime UI changes for those fields do not stick while the config entry remains set.

Then start the app:

aimux

On first launch, use the project picker flow to create your first project.

For the full setup path, see docs/getting-started.md.

Core Concepts

Profiles

Profile-managed config and catalogs live under:

~/.config/aimux/<profile>/

The active profile is chosen from:

  1. AIMUX_PROFILE
  2. AIMUX_RUNTIME_PROFILE
  3. default

Runtime sockets live in a separate runtime directory that depends on the active profile. See docs/concepts/profiles.md.

Config vs Runtime State

aimux uses multiple files per profile:

  • aimux.config.ts or aimux.config.js - typed user config
  • aimux.json - app-managed preferences and runtime state
  • aimux-projects.json - project catalog and project snapshots
  • aimux-snippets.json - snippet catalog

Rule of thumb:

  • aimux.config.ts declares startup intent
  • aimux.json stores app-managed runtime preferences
  • runtime actions never rewrite aimux.config.ts

See docs/concepts/config-and-state.md.

Projects

A project is a repository you add by picking a folder. Inside it live workspaces (git worktrees), and inside those live tabs — one creation action per level: Ctrl+G for a project, Ctrl+P for a workspace, Ctrl+N for a tab. A project can have:

  • a name
  • an optional project directory
  • a persisted project snapshot
  • an order in the project bar and project picker

See docs/guide/projects.md.

Keymaps

Keymaps are defined through @brimveyn/aimux-config and merged with shipped defaults at startup.

Important runtime fact:

  • the shipped leader key is Ctrl+W

See docs/guide/keymaps.md.

Default Everyday Shortcuts

  • ? - open help
  • i - focus terminal, Ctrl+Z - leave it
  • h / l - previous / next tab, j / k - previous / next project
  • r - rename tab, d d - close tab, S - flash jump
  • Ctrl+N - new tab, Ctrl+P - new workspace, Ctrl+G - project picker
  • Ctrl+S - snippet picker, Ctrl+T - theme picker
  • Ctrl+B - toggle sidebar
  • Ctrl+D - enter git mode, G - toggle the git pane, g - its diff / github tabs
  • Ctrl+W is the leader: Ctrl+W b project bar, Ctrl+W u stats, Ctrl+W , settings, Ctrl+W 1 … Ctrl+W 9 switch tab by index
  • in a terminal: Ctrl+W | / Ctrl+W - split, Ctrl+W h j k l focus a pane

The help modal reflects the resolved keymap, so it includes your overrides.

CLI

aimux
aimux worker doctor
aimux worker run --name investigate --assistant claude "inspect this repository"
aimux project list
aimux tab create --assistant claude --new-workspace
aimux plugin search git
aimux profile list
aimux completion install --shell zsh
aimux version
aimux doctor
aimux update
aimux restart-daemon
aimux restart-terminal-manager

See docs/reference/cli.md for behavior details.

For agent orchestration, prefer the named aimux worker commands. They combine isolated workspace creation, prompt dispatch, authoritative turn waiting, fleet inspection, and guarded cleanup without shell wrappers or jq. Pin the target with --project (or AIMUX_PROJECT) for anything long-running: the default follows whichever project the UI opened last.

Runtime Model

aimux is split into:

  • the UI app
  • an IPC daemon
  • a long-lived terminal manager

This split is what allows daemon restarts and some update paths without dropping every live PTY immediately.

See docs/developer/architecture.md.

Documentation Map

Development

git clone https://github.com/BrimVeyn/aimux && cd aimux
bun install

bun run dev
bun run start
bun test
bun run check
bun run lint
bun run knip

The GIF at the top is reproducible: bun run demo seeds a throwaway demo profile and records assets/demo.tape with vhs. The tape's header says what it needs.

The repository dev scripts use AIMUX_PROFILE=dev, so local development does not collide with a globally installed aimux instance.

References

  • Pierre — diffs.com — inspiration for the git-mode diff review experience: the split / stacked layout, progressive context folding, and focusing on the first change rather than the top of the file.
  • shiki — syntax highlighting for the git diff view and the source of the bundled theme catalog.
  • herdr by @ogulcancelik — the per-CLI assistant status heuristics (working / waiting-input / idle) used in the project bar are adapted from herdr's detect.rs rule tables.

License

MIT © BrimVeyn

版本与发布记录

@brimveyn/aimux 共发布 135 个版本,首次发布于 2026/04/17;过去 12 个月发布了 135 个版本。

版本发布日期距今
1.29.0latest2026/10/2514 天前
1.28.42026/10/2316 天前
1.28.32026/10/2217 天前
1.28.22026/10/2217 天前
1.28.12026/10/2217 天前
1.28.02026/10/2217 天前

关于 @brimveyn/aimux 的常见问题

@brimveyn/aimux 是什么?

A terminal multiplexer for AI CLIs. Run Claude, Codex, OpenCode, Kimi side-by-side with tabbed navigation, split panes, and persistent sessions.

如何安装 @brimveyn/aimux?

在项目目录运行 npm install @brimveyn/aimux,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 aimux,可以用 npx aimux 直接运行。

@brimveyn/aimux 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/brimveyn__aimux 是否存在。

@brimveyn/aimux 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@brimveyn/aimux 可以商用吗?

@brimveyn/aimux 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@brimveyn/aimux 的下载量有多少?

根据 npm 官方下载统计,@brimveyn/aimux 在 2026/10/09 – 2026/11/07 这 30 天内被下载 2,764 次,日均约 92 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@brimveyn/aimux 还在维护吗?

最新版本 1.29.0 发布于 2026/10/25(14 天前);至今共发布 135 个版本,其中过去 12 个月发布了 135 个;首次发布于 2026/04/17。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。