← Discover MCPs and Agents
f
MCPAI & MLGitHub

fluxtty

A vim-modal terminal for AI development.

Links

README

From the repo.

fluxtty

English · Español · 简体中文 · Français · Deutsch · Italiano

fluxtty

A vim-modal terminal workspace for AI development.

You don't just write code anymore — you supervise agents.
fluxtty is a keyboard-driven workspace for running many AI sessions in parallel,
with the modal efficiency that made vim indispensable.

CI CodeQL Release Platform Tauri License

Live demo →   ·   Download latest release

fluxtty workspace preview

The idea

When AI writes the code, your job shifts from typing to directing. You need a workspace built for that — not an editor with a terminal bolted on.

BeforeNow
Write code manually in an editor.Agents write; you review, steer, and unblock.
One terminal for the occasional command.8–12 sessions open in parallel: agents, servers, shells.
Run tests yourself, read output, patch manually.Monitor outputs, redirect agents, course-correct fast.
Context-switch between editor, browser, terminal.The terminal is the entire workspace.

fluxtty applies vim's modal philosophy to the whole terminal workspace:

Needfluxtty answer
Watch many sessions at onceWaterfall rows keep all agents visible without squeezing into a tiny grid
Move without touching the mouseNormal mode: h j k l navigation, / fuzzy search, n new, s split, q close
Type safely into any shellInsert mode routes input to the active PTY — Normal mode never leaks keys into a running agent
Use real terminal appsTerminal mode gives xterm.js raw keyboard control for vim, htop, TUIs, and agent prompts
Coordinate the workspaceWorkspace AI can run, read, create, rename, group, pipeline, and dispatch across sessions

Install

Homebrew on macOS

brew tap amoswzw/tap
brew install --cask fluxtty

Download

Latest release — macOS, Linux, Windows

PlatformPackage
macOS Apple Siliconfluxtty_*_aarch64.dmg
macOS Intelfluxtty_*_x64.dmg
Linuxfluxtty_*_amd64.deb, .rpm, .AppImage
Windowsfluxtty_*_x64-setup.exe

Build from source

Prerequisites: Rust 1.77+, Node.js 18+, Tauri v2 prerequisites.

git clone https://github.com/amoswzw/fluxtty
cd fluxtty
npm install
npm run tauri build
npm run tauri dev   # development

Modes

fluxtty has one persistent input bar with a small set of explicit modes:

ModeEnterWhat happens
NormaldefaultNavigate panes and rows, scroll output, split, close, rename, search. No keystrokes reach the shell.
InsertiType into the active shell through the input bar. Esc returns to Normal.
AIaEnter the Workspace AI prompt. Built-in parser with model: none; LLM-backed with any provider configured.
TerminalCtrl+\Raw terminal input. xterm.js owns the keyboard until Ctrl+\ returns to Normal.
Find/Fuzzy search across all panes by name, group, cwd, and status.
ViewvIsolate the active row for focused watching.

: in Normal mode opens the same workspace command path inline.

Workspace commands

Built-in commands available when workspace_ai.model: none:

run <cmd> in <session>
run <cmd> in group <group>
<cmd> in all sessions
run X then run Y in <session>
new [name] [in <group>]
rename <session> to <name>
close <session> | close idle | close group <group>
split
focus <session>
group <session> as <group>
note <session> <text>
read <session>
clear <session>
kill <session>
list | status | help
!agent <claude|codex|aider|gemini|opencode|goose|cursor|qwen|amp|crush|openhands|none>

list, status, help, read, focus, and !agent execute immediately. All workspace-changing commands are queued through a plan confirmation step before running.

Highlights

Waterfall layout

Rows stack vertically; horizontal splits live inside a row. With few rows, fluxtty divides the space evenly. With many rows, each row becomes a full-height workspace slice you scroll through.

Agent detection and completion

Detected agents: claude, codex, aider, gemini, opencode, goose, cursor, qwen, amp, crush, openhands. When a pane is running an agent, the mode indicator reflects it and Tab switches to that agent's slash-command completions.

Session identity and auto-naming

Every pane tracks name, group, cwd, status, last command, exit code, tmux session, alternate-screen state, and agent type. New panes are named from cwd, then auto-renamed when significant commands take over. Manual renames stay pinned.

Row notes

m opens a note pane for the active row — branch names, review reminders, agent intent. Notes are included in workspace restore snapshots.

Hot-reload config

~/.config/fluxtty/config.yaml hot-reloads on save. Covers window, font, colors, cursor, shell, tmux, keybindings, input behavior, Workspace AI provider and model, waterfall sizing, persistence, and session defaults.

Configuration

# ~/.config/fluxtty/config.yaml

font:
  family: "JetBrains Mono"
  size: 13.0

colors:
  primary:
    background: "#0d1117"
    foreground: "#e6edf3"

input:
  live_typing: true

workspace_ai:
  model: none                    # or: claude-sonnet-4-6, gpt-4o, gemini-2.0-flash, ollama/llama3
  always_confirm_broadcast: true
  always_confirm_multi_step: true

waterfall:
  row_height_mode: viewport
  scroll_snap: false

Keybindings

KeyModeAction
h j k lNormalMove across panes and rows
iNormal, ViewInsert mode for the active PTY
a or :NormalWorkspace AI / command prompt
/NormalFuzzy pane selector
vNormalView mode for the active row
nNormalNew terminal row
sNormalSplit the active row
qNormalClose the active pane
mNormalToggle the row note pane
rNormalRename the active pane
G / ggNormalJump to bottom / top of workspace
Ctrl+\AnyToggle raw Terminal mode
EscInsert, AI, Find, ViewReturn to Normal mode
TabInsertShell completion or agent slash-command completion
Cmd+, / Ctrl+,AnyOpen settings

Development

npm install
npm run tauri dev    # dev with hot reload
npm test
npm run build
npm run tauri build  # production bundle

Contributing

Issues and pull requests are welcome. Keep changes focused, run the test suite, and include screenshots or recordings for UI behavior changes.

Inspiration

The waterfall layout idea — terminals stacking vertically, each filling the viewport as you scroll — was shamelessly stolen from infinite-scroll. I prefer the word "inspired."


License

MIT

Collected info

  • 8 stars
  • Language: TypeScript
  • Source updated: 9/14/2026

Config for your environment

Replace {MCP_ENDPOINT_URL} with this MCP’s endpoint URL (from its repo or docs above). No API key — you connect directly.

Tool

OS

Config file: ~/.cursor/mcp.json

{
  "mcpServers": {
    "mcp-server": {
      "url": "{MCP_ENDPOINT_URL}"
    }
  }
}

Paste into mcpServers in the config file. Restart Cursor after saving.

If this MCP is also published on mcpchannel.ai, you can subscribe from Browse and use the gateway config there instead.