AI News HubLIVE
In-site rewrite3 min read

Vibe coded AI Neovim is useful

aeovim is a Rust TUI that multiplexes LLM coding agents with a Neovim-like interface, currently wrapping Claude Code and offering features like multi-chat sessions, streaming, and persistence.

SourceHacker News AIAuthor: s2xon

Notifications You must be signed in to change notification settings

Fork 0

Star 3

BranchesTags

Open more actions menu

Folders and files

NameName

Last commit message

Last commit date

Latest commit

History

30 Commits

30 Commits

src

src

.gitignore

.gitignore

Cargo.lock

Cargo.lock

Cargo.toml

Cargo.toml

DESIGN.md

DESIGN.md

IMPLEMENTATION_PLAN.md

IMPLEMENTATION_PLAN.md

INTEGRATION.md

INTEGRATION.md

README.md

README.md

Repository files navigation

vim, but the buffers are live coding agents and the operators drive them.

aeovim is a standalone, keyboard-native Rust TUI for multiplexing and orchestrating LLM coding agents. It applies the Neovim mental model — modes, motions, buffers, tabs, splits — to conversations with coding agents, so spawning, steering, watching, and reviewing many agents at once is muscle memory rather than window juggling.

The project is aeovim; the command you run is avim (like Neovim → nvim).

v1 wraps the claude CLI (Claude Code) as child processes over headless stream-json. It reuses Claude Code's own auth, tools, permissions, skills, and MCP servers — it doesn't re-implement any of that. All backend detail sits behind an AgentBackend seam so other models/CLIs (or a direct API) can drop in later. Single-user, local macOS daily driver. Not distributed.

Status

Working walking skeleton — installable and in daily use. ~3,200 lines of Rust across seven modules; builds, installs, and drives real multi-turn Claude Code sessions. This is well past the "pre-implementation" the earlier README claimed. The orchestration layer (fan-out, job board, diff review) is designed but not yet built — see the split below.

What works today

Modal TUI with a Space-leader keymap + which-key popup, ported from the author's Neovim config (nvim-tree / harpoon / bufferline / lualine / which-key). Lilac theme.

Two-level model: a Space is a named container of 1–4 Chats. The sidebar lists Spaces; the active Space renders its Chats as split panes (single / vertical / horizontal / 2×2), focused pane bordered in bright purple.

Live Claude Code sessions: each Chat spawns claude over --output-format stream-json; multi-turn continuity via --session-id then --resume.

Streaming transcript: assistant messages, a thinking spinner, and Claude-style tool-call / tool-result rendering; slash-command popup; inline markdown; mode indicator; powerline status bar.

Navigation: Ctrl-hjkl focus panes ↔ sidebar, Tab / H / L cycle chats, Space 1-0 jump to a Space, sidebar add / rename / delete.

Space ops: merge multiple Spaces (chats combined, ≤4), pop a chat into its own Space, split management.

Persistence: Spaces (name + chats) saved per tmux session at ~/.local/state/aeovim/.json; relaunch resumes.

Inter-agent pipe: a FIFO (~/.local/state/aeovim/.pipe) lets one agent message another Space; a reader thread routes it into the target chat's transcript and the agent responds.

Permissions: dangerous by default (--dangerously-skip-permissions); --safe switches to --permission-mode acceptEdits.

Designed, not yet built

Parallel fan-out of one prompt to N agents, each isolated in its own git worktree, as a first-class job.

A quickfix-style task board with done / needs-input / error status.

aeovim-owned loop scheduler and a skills palette.

Vim-native diff review: ]c / [c hunk motions, visual-select, per-turn git approve/reject on an apply baseline.

Tree-sitter syntax highlighting (code rendering only).

Persistent bidirectional child for in-TUI permission approval, interrupt (Esc), and mid-turn steering. (Today's one-child-per-turn model rules these out by design — see INTEGRATION.md.)

Install & run

cargo install --path . # builds the avim binary into ~/.cargo/bin avim # launch (dangerous permissions by default) avim --safe # --permission-mode acceptEdits instead avim --model # pick the Claude model avim --help # flags + key reference

Sessions persist per tmux session; relaunch avim to resume where you left off.

Keys

The keymap mirrors the author's Neovim config and is still moving. The authoritative, in-app reference is Space zz (cheatsheet); avim --help prints the current summary. The stable essentials:

Key Action

i / Esc compose / normal mode

Enter send (in composer)

Ctrl-h / Ctrl-l focus sidebar / chat panes

H / L / Tab previous / next chat

Space e toggle sidebar

Space 1–0 jump to Space N

: command

Space zz cheatsheet · q quit

Docs

DESIGN.md — full design spec (UX model, architecture, orchestration, adapter seam, diff review).

IMPLEMENTATION_PLAN.md — milestone ladder and build plan.

INTEGRATION.md — Claude Code integration research: what the stream already emits, what to parse next, and the persistent-child milestone that unlocks in-TUI approval/interrupt.

About

aeovim instead if neovim

Resources

Readme

Uh oh!

There was an error while loading. Please reload this page.

Activity

Stars

3 stars

Watchers

0 watching

Forks

0 forks

Report repository

Releases

No releases published

Packages 0

Uh oh!

There was an error while loading. Please reload this page.

Contributors

Uh oh!

There was an error while loading. Please reload this page.

Languages

Rust 100.0%