Skip to content

Repository files navigation

view logo

view

An agentic, Rust-fast terminal editor with a modern UI and Neovim mechanics.

CI License: MIT OR Apache-2.0 Status: pre-alpha

FeaturesNot a distroPerformanceRoadmapBuilding

view editing Rust code, Dracula themed, with a plugin-heavy lazy.nvim config loaded

Warning

view is pre-alpha and not usable as a daily editor yet. The engine, the runtime, and the test infrastructure are built; most of the visible feature set is still landing. See the roadmap.

What is view?

view is a terminal editor that embeds a real Neovim as its engine, so your existing config, plugins, LSP servers, and treesitter setup work on day one: the same Neovim you already run is running them. Around that engine, view draws its own UI in native Rust: one design system for the editor chrome instead of a patchwork of plugins, a process that paints before your config has finished loading, and (coming in a later phase) AI agents as a first-class part of the editor rather than a bolt-on.

Features

  • Bring your whole config. Real Neovim is the engine, so compatibility comes from running your setup, not reimplementing it. A differential oracle checks view against a reference Neovim on every build, and a compat suite drives pinned real-world plugin stacks (telescope, lualine, noice, nvim-cmp, treesitter, mini.nvim, and more) through a real pty.
  • Fast where you feel it. view paints a usable shell in ~4 ms and first content 1.7 to 5x sooner than bare Neovim, at 3.4 MB resident. Every claim is measured, paired, and regression-gated in CI. See Performance.
  • Modern out of the box. The surfaces view owns (statusline, picker, file tree, notifications, command palette) share one design system. Prefer the plugin you already use? It still loads, and a single config key hands the surface back to it.
  • Honest about the gaps. The benchmark table below includes the rows where view is currently slower than Neovim, and the build fails if any of them quietly regress further.

Not another Neovim distro

A fair question, so here is the direct answer. LazyVim, NvChad, and friends are plugin collections running inside stock Neovim: same process, same render path, same startup. view is a separate Rust program that owns the terminal, embeds Neovim as a headless engine over its UI protocol, and paints every frame itself.

That architecture is why none of view's surfaces can be a repackaged plugin: the render path, input handling, the native UI, and the AI integration are all view's own code. It is also where the speed comes from. A distro waits for your config before it can draw anything; view's shell is on screen in about 4 ms while your config is still loading, and that number is the same whether your setup has zero plugins or forty.

Performance

Numbers below are recorded baselines on a Linux dev host, Neovim v0.12.4, 1000 samples per cell, measured paired: view and bare Neovim in the same run, same host, same config, samples interleaved. Reproduce with task perf-audit.

view bare Neovim
Shell painted, config still loading (p99) 4.1 ms n/a
First paint, cold, no plugins (p99) 26.5 ms 131.4 ms
First paint, cold, 14-plugin lazy.nvim stack (p99) 120.5 ms 199.8 ms
Resident memory (PSS) 3.4 MB n/a
Keystroke to cell change, steady typing (p99) 0.90 ms 0.81 ms

Cold start and memory are big wins. Typing and sustained scrolling are currently a bit slower than bare Neovim (about 17% and 2x, on paths that are sub-millisecond either way, so neither is something you can feel). We are actively closing those gaps rather than explaining them away: profiling already cut the typing overhead roughly in half, and what remains is itemized down to the microsecond.

The full story, including methodology, the per-stage breakdown of a keystroke, and how budgets are enforced in CI, lives in docs/performance.md.

Roadmap

  • Embedded engine, RPC seam, input and redraw paths
  • Command line, messages, popup menu, tabline, cursor shapes
  • Terminal capability tiers (kitty/ghostty class down to 16-color)
  • Differential oracle, fuzz harness, compat suite, benchmark matrix
  • Native UI (in progress): picker, file tree, statusline, command palette, notifications, theming
  • Clipboard provider and full CLI passthrough (+42, -R, -O, ls | view -)
  • AI: agent panel, ACP client, context providers, in-editor diff review
  • Multigrid, view doctor, Windows as a supported tier, v0.1

Building from source

You will need stable Rust, Task, and Neovim v0.12.4 on your PATH (the engine is pinned; see .engine-pin). Release builds will eventually bundle Neovim so only the pre-built binary needs nothing installed.

git clone https://github.com/tj-smith47/view.git
cd view
task build
target/release/view yourfile.rs

Best experience on kitty, ghostty, or WezTerm; view degrades gracefully on less capable terminals.

License

MIT or Apache-2.0, at your option.

About

Blazing fast, agentic terminal editor built on top of Neovim.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages