A terminal-native, agentic coding IDE built with Rust and ratatui. Keyboard-first, modal, and local-first — the agent proposes changes, you review and approve them.
Currently in early development. Phase 0 (Foundation) is complete: a tokio-powered event loop, workspace shell with file explorer, editor/status panels, and help overlay.
- Tokio async event loop with crossterm input handling
- Git-aware workspace discovery (falls back to the current directory)
- Split-panel layout: file explorer, editor area, status bar
- Vim-style modal foundation (Normal mode)
- Focus routing between panels (
Tab) - Customizable theme module
| Phase | Scope |
|---|---|
| 0 | Foundation: event loop, app state, layout, theme, status bar |
| 1 | Editor: buffers, cursor, undo/redo, syntax highlighting, tabs |
| 2 | Project: file tree, fuzzy find, file watching, session persistence |
| 3 | Chat: LLM provider client, streaming chat panel, session log |
| 4 | Agent core: tool registry, read/edit/write/run tools |
| 5 | Approval flow: diff review, apply/reject hunks |
| 6 | Embedded terminal + git integration |
| 7 | Polish: command palette, config, themes, docs |
Requires a recent stable Rust toolchain (edition 2024).
cargo runRun tests and lints:
cargo test
cargo clippy --all-targets -- -D warnings| Key | Action |
|---|---|
q / Ctrl+C |
Quit |
? |
Toggle help overlay |
Tab |
Cycle focus between panels |
j / k or ↑ / ↓ |
Move selection in Explorer |
babushka_tui/src/
main.rs entry point; runtime + terminal bootstrap
app.rs root App state, Focus/Mode, key routing
event.rs event bus: crossterm reader thread + tokio channel
project/ workspace discovery
ui/ rendering: theme, layout, panels, help overlay
TBD