A plain text editor for the desktop and terminal, written in Rust. Speed and a quiet, responsive interface come first.
Early beta: 0.1.0-beta.8 is published as a prerelease. The full v1
specification is still in progress. See beta status and
release notes before evaluating it with copies of
important files.
- Desktop and terminal interfaces: use the native GUI or the keyboard-driven
TUI from the same application. Force either with
--guior--tui. - Everyday file editing: tabs, new/open/save/save as/save all, recent files, reopening closed tabs, undo/redo and recovery journals.
- Editing tools: multiple cursors, rectangular selection, indentation, comment toggling, line operations, go to line, whitespace display and word wrap.
- Search and navigation: in-file find/replace, case and whole-word options, regex support, folder search, a command palette and fuzzy file navigation. Search completeness and folder replacement remain beta limitations.
- Configurable controls: VS Code, Notepad++ and Vim keymap presets, custom bindings and TOML settings, with settings interfaces in both frontends.
- Text encodings: UTF-8, UTF-16 LE/BE, UTF-32 LE/BE and supported stateless legacy encodings, including Shift_JIS, EUC-JP, GBK, Big5 and Windows-1252. Untouched encoded bytes and malformed-byte provenance are preserved by the shared text/save engine. Per-file pickers reopen clean files or select the next save encoding, and convert LF / CRLF / CR line endings.
- Hex editing: inspect physical bytes and edit in hex, with an explicit text/hex choice for binary input. See hex controls for ASCII editing, byte offsets, byte search and copy-as-hex.
- Syntax highlighting: bundled language support and a generic fallback for other text, with background highlighting work.
- Markdown preview in the GUI: text, preview and split modes, including supported local images. Large Markdown previews page nearby blocks on a worker with bounded memory.
- Rendering designed for remote desktops: event-driven updates, a CPU renderer and remote-mode controls. Cross-platform damage and remote bandwidth budgets still need qualification.
These describe implemented areas to try, not a promise of complete GUI/TUI parity or acceptance of every v1 requirement. Compare views, formatter execution, log following, custom themes and accessibility remain incomplete. Any-size opening, resident index memory limits, full allocation admission and published performance budgets are also unfinished. ISO-2022-JP is explicitly unsupported.
Download from Releases, for x64 or ARM64:
- Windows: run
kwil-<version>-windows-<arch>-setup.exe(per user, no admin rights; Start menu entry and uninstaller), or extract the.zipand keepkwil.exeandkwil.comtogether. - macOS / Linux: extract
kwil-<version>-<platform>.tar.gzor.zip.
Packages arrive from beta.3 on; beta.2 ships bare executables (rename the
Windows pair to kwil.exe and kwil.com). Then:
.\kwil.exe notes.txt
.\kwil.com --tui notes.txtOn macOS or Linux:
./kwil notes.txt
./kwil --tui notes.txtBuilds are unsigned, so SmartScreen and Gatekeeper warn on first start. Kwil updates itself: beta builds follow betas, stable builds follow stable releases (updates). See the installation guide.
To build from source, use scripts/run.bat on Windows or scripts/run.sh
elsewhere. Add --release for an optimized build or --tui for terminal mode.
In Settings → Keymap, choose Preset, or run Keymap: Use VS Code Preset, Keymap: Use Notepad++ Preset or Keymap: Use Vim Preset from the command palette. Changes apply live in both interfaces. The settings file accepts:
keymap.preset = "vscode" # default; also "notepad++" or "vim"
[[bindings]]
keys = "ctrl+s"
command = "" # unbind a preset shortcut
[[bindings]]
keys = "ctrl+alt+s"
command = "file.save"
# Optional selectors: context = "editor", mode = "insert"Overrides remain in effect when switching presets. Invalid keys or command ids
show a settings error and leave the last accepted settings active. Existing
keymap = "vscode" files are still supported. Palette shortcut labels follow
the active editor mode and user overrides; commands without an effective
shortcut have no binding label.
Actual beta TUI sessions captured through a hidden Windows ConPTY and rendered from recorded terminal output, at 120 × 32 cells. See the capture method and limits.
Historical Windows GUI captures from 24 October 2026 use a development build with the frame harness enabled. The gallery and provenance identify their source and capture limits; they are not beta artifact verification.
- Beta status and checks
- v1 specification and performance targets
- Architecture decisions
- Report an issue
License: MIT.



