miso-tui
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinesemiso-tui
miso-tui
Use this skill when configuring multi-process TUI display, task ordering, or concurrent tasks.
当你需要配置多进程TUI显示、任务排序或并发任务时,可使用该skill。
tui
Field
tuitui
字段
tuiControls the terminal UI mode. Set at the top level of .
miso.json| Value | Behavior |
|---|---|
| Default. No TUI. Normal stdout. |
| Sidebar with per-process log panes. Click or use arrow keys to navigate, |
| Interleaved output with color-coded process labels and a filter bar. |
| Object form. |
Auto-exit behavior: After all processes finish, the TUI waits 2 seconds then exits. By default, all buffered output is also dumped to stdout after the TUI closes. Set to suppress that dump.
cleanExit: true用于控制终端UI模式,需配置在的顶层。
miso.json| 值 | 行为 |
|---|---|
| 默认值。无TUI,使用标准stdout输出。 |
| 侧边栏搭配每个进程对应的日志面板。可点击或使用方向键导航,按 |
| 交错输出内容,带有颜色标记的进程标签和筛选栏。 |
| 对象形式配置。 |
自动退出行为: 所有进程结束后,TUI会等待2秒再退出。默认情况下,TUI关闭后所有缓冲的输出都会打印到stdout,设置可禁止该输出转储。
cleanExit: truerepo
Field
reporepo
字段
repoControls how miso discovers and orchestrates workspaces or pipeline tasks.
| Value | Behavior |
|---|---|
| Default. One project, no workspace awareness. |
| Miso-native monorepo orchestration. Discovers workspaces from |
| Delegates to Turborepo. Parses Turborepo output into TUI tabs. |
| Delegates to Nx ( |
| Object form | Use when you need |
控制miso如何发现和编排工作区或流水线任务。
| 值 | 行为 |
|---|---|
| 默认值。单项目,无工作区感知能力。 |
| miso原生的monorepo编排能力,会从根目录 |
| 委托给Turborepo处理,将Turborepo的输出解析为TUI标签页。 |
| 委托给Nx( |
| 对象形式 | 当你需要配置 |
repo.tasks
— Concurrent and Dependent Tasks
repo.tasksrepo.tasks
— 并发与依赖任务
repo.taskstaskstasksdependsOn
dependsOndependsOn
dependsOnRun upstream tasks before this one (topological order):
json
"repo": {
"mode": "mono",
"tasks": {
"build": {
"dependsOn": ["^build"]
}
}
}"^build"build^在当前任务之前运行上游任务(拓扑排序):
json
"repo": {
"mode": "mono",
"tasks": {
"build": {
"dependsOn": ["^build"]
}
}
}"^build"build^concurrent
concurrentconcurrent
concurrentLaunch additional tasks alongside this one in the TUI:
json
"repo": {
"mode": "turbo",
"tasks": {
"dev": {
"concurrent": ["studio"]
}
}
}Running will also launch as a TUI tab alongside it. tasks are always run by miso directly — they are not passed to turbo/nx even when is .
miso devstudioconcurrentmode"turbo"In mode, launches extra scripts from the root folder alongside the workspace-distributed task.
In mode, launches extra scripts from the root folder alongside miso's native orchestration (not turbo's).
"mono"concurrentscripts/"turbo"concurrentscripts/dev在TUI中与当前任务并行启动额外任务:
json
"repo": {
"mode": "turbo",
"tasks": {
"dev": {
"concurrent": ["studio"]
}
}
}运行时会同步启动作为TUI的另一个标签页。定义的任务始终由miso直接运行——即便设置为,也不会传递给turbo/nx处理。
miso devstudioconcurrentmode"turbo"在模式下,会从根目录文件夹中启动额外脚本,与工作区分发的任务并行运行。
在模式下,会从根目录文件夹中启动额外脚本,与miso原生的编排流程(而非turbo的编排流程)并行运行。
"mono"concurrentscripts/"turbo"concurrentscripts/devOverriding a Turbo (or Nx) Task
覆盖Turbo(或Nx)任务
When is or , miso routes each command individually:
repo.mode"turbo""nx"- Task name is in → miso runs it directly with its own TUI orchestration
repo.tasks - Task name is NOT in → miso delegates to
repo.tasks(orturbo run <task>)nx run-many
This lets you pick exactly which tasks miso controls and which turbo handles.
Example: take over , keep turbo for everything else
devBefore (turbo handles dev — string shorthand):
json
{
"repo": "turbo",
"tui": "tabbed"
}miso devturbo run devAfter (miso handles dev — object form with ):
tasksjson
{
"repo": {
"mode": "turbo",
"tasks": {
"dev": {
"concurrent": ["studio"]
}
}
},
"tui": "tabbed"
}miso devpackage.jsondevstudiomiso buildmiso lintMinimum override (no extra config needed):
json
"tasks": {
"dev": {}
}An empty task entry is enough to make miso take over .
dev当设置为或时,miso会单独路由每个命令:
repo.mode"turbo""nx"- 任务名称存在于中 → miso使用自身的TUI编排能力直接运行该任务
repo.tasks - 任务名称不存在于中 → miso将任务委托给
repo.tasks(或turbo run <task>)处理nx run-many
你可以通过该机制精确控制哪些任务由miso管控,哪些由turbo处理。
示例:接管任务,其余任务仍由turbo处理
dev修改前(turbo处理dev —— 字符串简写形式):
json
{
"repo": "turbo",
"tui": "tabbed"
}miso devturbo run dev修改后(miso处理dev —— 带的对象形式):
tasksjson
{
"repo": {
"mode": "turbo",
"tasks": {
"dev": {
"concurrent": ["studio"]
}
}
},
"tui": "tabbed"
}miso devpackage.jsondevstudiomiso buildmiso lint最简覆盖配置(无需额外配置):
json
"tasks": {
"dev": {}
}空的任务配置项就足以让miso接管任务。
devFull Example
完整示例
json
{
"$schema": "https://misojs.dev/miso.schema.json",
"tui": "tabbed",
"repo": {
"mode": "turbo",
"tasks": {
"dev": {
"concurrent": ["studio", "worker"]
},
"build": {
"dependsOn": ["^build"]
}
}
}
}json
{
"$schema": "https://misojs.dev/miso.schema.json",
"tui": "tabbed",
"repo": {
"mode": "turbo",
"tasks": {
"dev": {
"concurrent": ["studio", "worker"]
},
"build": {
"dependsOn": ["^build"]
}
}
}
}Common Mistakes
常见错误
- without Turbo installed — Turbo must be in PATH; miso shells out to
repo: "turbo"directlyturbo - without
dependsOn—^means same-workspace dependency; use"dependsOn": ["build"]for cross-workspace topological ordering"dependsOn": ["^build"] - Expecting TUI for a single process — the TUI only launches when multiple processes are involved (either monorepo workspaces or tasks configured)
concurrent - nested inside
tui—repois a top-level field, not undertuirepo - when you want miso to run dev — string shorthand
"repo": "turbo"fully delegates all tasks to turbo; to make miso handle specific tasks, use the object form with"turbo":tasks{ "mode": "turbo", "tasks": { "dev": {} } } - tasks going to turbo —
concurrenttasks are always run by miso directly, even inconcurrentmode; they are not passed to"turbo"turbo run
- 配置了但未安装Turbo —— Turbo必须在PATH中,miso会直接调用
repo: "turbo"命令turbo - 没有加
dependsOn——^代表同一工作区的依赖;如果需要跨工作区拓扑排序,请使用"dependsOn": ["build"]"dependsOn": ["^build"] - 期望单进程也显示TUI —— 只有当涉及多进程时(要么是monorepo工作区,要么配置了任务)才会启动TUI
concurrent - 配置嵌套在
tui下 ——repo是顶层字段,不能放在tui下repo - 想要miso运行dev任务却配置了—— 字符串简写
"repo": "turbo"会将所有任务完全委托给turbo;如果想要miso处理特定任务,请使用带"turbo"的对象形式:tasks{ "mode": "turbo", "tasks": { "dev": {} } } - 期望任务传递给turbo处理 ——
concurrent任务始终由miso直接运行,即便在concurrent模式下也不会传递给"turbo"turbo run