strop

see the cut before you make it.

Neovim's hands · Helix's spine · rootle's eyes · GitLens' memory

nonblocking code completion · 23 languages

strop demo — operator-pending preview, picker, git hunks

pick a palette — the logo re-themes live

The demo GIF will re-render in your pick once the forge ships — the same eleven palettes rootle.dev offers, plus our own.

$ curl -fsSL https://strop.dev/install.sh | sh linux · macOS

already installed? strop update — checks, verifies, swaps itself · changelog · roadmap

prebuilt static binary · Linux x86_64 + arm64 · macOS Apple Silicon · sha256-verified · tarballs ↗

completion without blocking your next key

Language-server suggestions and current-buffer words share a caret-anchored menu. Ctrl-N/Ctrl-P select, Ctrl-Y accepts, and Ctrl-E dismisses without changing what you typed. Selected documentation, resolved imports and undo use the same source-owned edits; unsupported snippets are refused, not approximated.

Completion controls and settings · release notes

terminals live in your editor

:terminal opens a real PTY-backed shell — a pinned static Ghostty VT engine renders it, so every escape sequence means the same thing it does in your standalone terminal. Terminal buffers are real read-only buffers: motions, / search, selection and yank just work; splits mirror the live grid while the focused view owns its size.

Editor keys stay editor keys: Esc, Ctrl-C and chords go to the child; Ctrl-\ Ctrl-N (or Ctrl-W N) steps out to inspect a pinned snapshot, and i/a return to the live cursor. Ctrl-W h/j/k/l moves panes straight from terminal input, and terminals list in the buffer picker with their live phase. Multiline and control-character pastes ask first; :qa refuses to quit on live sessions.

Terminal content never enters traces — recording downgrades to metadata unless you explicitly opt in with --log-terminal-content.

Terminal commands, keys and privacy · what remains on the terminal roadmap

one filesystem workspace

Browse local and SSH directories as real buffers. Create, rename, move and copy through Review → Apply → Receipt; edit filenames with ordinary motions, yank/paste and undo without touching disk until Apply.

Space e reveals the current source. :fs search captures its directory scope; capable SSH hosts search remotely without a local fallback. Containers stay read-only.

Filesystem commands, copy versions and recovery limits

browse and edit remote files

Press Space o to connect and browse real buffers. Files open read-only; :remote edit verifies a full snapshot and enables editing, then :w saves through an owned atomic transaction.

Content/metadata conflicts preserve local edits. Locks coordinate remote-save participants, not arbitrary external writers; unconfirmed outcomes use explicit :remote verify.

SSH usage, prerequisites and guarantees · what remains on the remote roadmap

CMake, Markdown and 21 more languages

Static Tree-sitter grammars, Markdown emphasis and fenced code, HTML script/style injections, and structural indentation guides. Worker-owned search, ranking and syntax analysis keep large workspaces out of the keystroke path.

Language coverage · Headless scripting