waterfall terminal · modal input · workspace AI

面向 AI 开发的
vim 模态终端。

你不再只是写代码——你在指挥智能体。fluxtty 是一个键盘驱动的工作区,用于同时监督多个 AI 会话,拥有让 vim 变得不可或缺的那种模态效率。

no sessions New Split Settings Help
NORMAL

你曾经写代码。
现在你监督智能体。

当 AI 编写代码时,你的工作就从打字转向了指挥。你需要一个为此而生的工作区——而不是一个硬塞了终端的编辑器。

以前

  • 在编辑器里手动写代码。
  • 一个终端,偶尔敲几条命令。
  • 自己跑测试、看输出、手动打补丁。
  • 在编辑器、浏览器、终端之间来回切换上下文。

现在

  • 智能体负责编写;你负责审阅、引导和解决阻塞。
  • 8–12 个会话并行打开:智能体、服务器、shell。
  • 监控输出,重新引导智能体,快速纠正方向。
  • 终端就是整个工作区。

为大规模监督智能体而生的每一个原语。

这不只是终端皮肤。核心在于基于行的布局、会话身份、明确的模式以及 PTY 安全的输入路由——足以支撑 10 个智能体同时运行而不迷失其中任何一个。

ROW

瀑布式行布局

行纵向堆叠。水平分割存在于行内部。当行数很多时,工作区的滚动本身就成为了布局方式。

MODE

模态输入栏

普通、插入、AI、终端、查找和视图模式都是明确的状态。输入栏会随当前模式改变标签、提示符和按键路由。

FIND

面板选择器

/ 打开对面板名称、分组、cwd 和状态的模糊搜索。方向键或 j/k 移动;Enter 聚焦该面板。

PTY

xterm.js 面板

这些面板是由 Tauri 和 portable-pty 支撑的真实 xterm.js 终端,为 TUI 和全屏应用提供原始终端模式。

TAB

Shell 与斜杠命令补全

Tab 通过 Rust 后端补全命令和路径。智能体面板会将斜杠命令补全切换为所检测到智能体的命令列表。

AI

智能体检测

可检测的智能体包括 claude、codex、aider、gemini、opencode、goose、cursor、qwen、amp、crush 和 openhands。

ID

会话身份

面板会追踪名称、分组、cwd、状态、上一条命令、上一次退出码、tmux 会话、备用屏幕状态和智能体类型。

CMD

工作区命令

动作层支持运行、读取、编排流水线、广播、分组、新建、重命名、关闭、分割、聚焦、备注、清空、终止、粘贴以及向智能体发送输入。

NOTE

行备注与恢复

m 打开行备注面板。启用恢复功能时,行备注和布局都会包含在工作区快照中。

YML

配置热重载

窗口、字体、颜色、光标、shell、tmux、输入、工作区 AI、瀑布布局、持久化以及会话默认值,均存放于 YAML 中。

一种模式,一种目的,没有歧义。

每种模式都有各自的颜色、标签和明确的路由规则。输入栏会准确显示你的按键会去往何处——工作区、shell、智能体,还是原始 xterm。

NORMAL

默认的工作区控制。h j k l 移动,用 n 新建,用 s 分割,用 q 关闭,用 r 重命名,用 m 添加备注,用 / 搜索。

INSERT

面向 PTY 的行编辑器。i 向当前激活面板输入内容。Tab 补全 shell 路径或所检测到智能体的斜杠命令。Esc 返回普通模式。

AI

工作区命令输入。a 进入工作区 AI 提示符。当 model: none 时,会解析精确的内置命令;配置了模型后,回复可以生成结构化的动作代码块。

TERMINAL

原始 xterm 控制。当 vim、htop、某个 TUI 或智能体提示符需要直接掌控键盘时,按 Ctrl+\

VIEW

专注观察某一行。v 隔离显示当前激活行,同时保留相同的面板与模式模型。

用自然语言指挥你的工作区。

a 并描述你想要完成的事情。内置解析器无需模型即可处理常见操作。设置 workspace_ai.model 即可将自然语言路由到任意 LLM——Anthropic、OpenAI、Gemini 或本地 Ollama。

内置解析器示例
a run npm test in frontend
a run cargo test in group backend
a npm test in all sessions
a run cargo test then run npm test in api-agent
a new api in backend
a rename api to api-agent
a close idle
a close group scratch
a focus frontend
a group api-agent as backend
a note api-agent check migration output
a read tests
a clear db
a kill api-agent
a list
a !agent claude
立即执行的解析器动作liststatushelpreadfocus!agent 会立即执行。
会改变状态的解析器动作运行、新建、重命名、关闭、按组关闭、分割、分组、备注、清空和终止都会通过共享的确认流程排队执行。
LLM 动作代码块配置好的模型可以生成结构化动作,包括 agent-sendrun-awaitpipeline

AI 提议,你来执行。

会改变工作区状态的动作会被排入一个计划,你可以在任何操作执行前先行审阅。按一次 y 即可执行;其他任何输入都会中止。掌控权始终在你手中。

计划预览
AI plan (3 actions):
  create new session "api" in group "backend"
  run "cargo test" in group "backend"
  rename "api" -> "api-agent"

execute? y/N

两条命令即可上手。

获取适用于 macOS、Linux 或 Windows 的最新版本——或使用 Tauri 从源码构建。配置存放在单个 YAML 文件中。

Homebrew
brew tap amoswzw/tap
brew install --cask fluxtty
构建
git clone https://github.com/amoswzw/fluxtty
cd fluxtty
npm install
npm run tauri build
配置
~/.config/fluxtty/config.yaml

input:
  live_typing: true
workspace_ai:
  model: none

30 秒即可上手。

所有快捷键都遵循 vim 惯例。任意绑定都可以在 config.yaml 中重新映射。

移动面板与行h j k l
插入模式i
AI 模式a
视图模式v
查找面板/
内联命令:
新建终端n
分割行s
关闭面板q
行备注m
原始终端Ctrl+\
设置Cmd+, / Ctrl+,