# vt
A vim-modal terminal where command+output blocks are navigable units.
## What
- Shell runs underneath, full state preserved (cd, env, aliases, functions)
- Each command + output is a block you can navigate, collapse, expand
- Vim keybindings throughout
- Status line shows cwd and exit code
## Layout
```
┌─────────────────────────────────────────────────┐
│ drwxr-xr-x 5 user staff 160 Jan 10 14:32 . │
│ ❯ ls -la │ ← command below output
│ [47 lines, exit 0] │ ← collapsed
│ ❯ cargo build │
├─────────────────────────────────────────────────┤
│ ❯ █ │ ← input (fixed)
├─────────────────────────────────────────────────┤
│ ~/projects/vt [0] │ ← status (fixed)
└─────────────────────────────────────────────────┘
```
## Modes
**Normal** — navigate blocks
**Insert** — type commands
**Scroll** — navigate within a block's output
## Keybindings
### Normal
| `j/k` | Next/prev block |
| `gg/G` | First/last block |
| `Enter` | Enter Scroll mode |
| `i` | Enter Insert mode |
| `za` | Toggle collapse |
| `q` | Quit |
### Insert
| `Esc` | Back to Normal |
| `Enter` | Execute |
| `Ctrl-c` | Clear |
### Scroll
| `j/k` | Line up/down |
| `Ctrl-d/u` | Half page |
| `gg/G` | Top/bottom |
| `Esc` | Back to Normal |
## Install
```
cargo install --path .
```
## Config
`~/.config/vt/config.toml`
```toml
[prompt]
symbol = "❯ "
[blocks]
max_lines = 10000
[history]
```
| bottom_up | below | output above command, anchored to bottom |
| bottom_up | above | command above output, anchored to bottom |
| top_down | below | output above command, anchored to top |
| top_down | above | command above output, anchored to top |
## License
Unlicense
---
Built with [Claude Code](https://claude.ai/code) (claude-opus-4-5-20251101)