A terminal modal text editor written in Rust, inspired by Kakoune and Neovim, with multiple selections and built-in LSP support.
mawww/kakoune
A modal code editor inspired by Vi, built around keystrokes as a text editing language and multiple selections.
Open-source alternative to:Vim
- Stars
- 11,115
- Forks
- 787
- Open issues
- 929
- Last commit
- 11 days ago
What is it?
Kakoune is a terminal-based code editor that follows Vi's idea of keystrokes as a text editing language. Like Vim, it is modal, with a normal mode for manipulating selections and an insert mode for typing text. Its core difference is that editing operates on selections, which are oriented, inclusive character ranges with an anchor and a cursor, so most commands act on the selected text first and then change it.
Multiple selections are a central part of the design. Users can select all regex matches within current selections, split or filter selections by regex, align them, rotate their contents, and pipe each one through an external program. The editor uses a client-server architecture, so several clients can attach to the same editing session, and it can be combined with tmux, zellij, kitty, WezTerm, or a window manager for splits.
Kakoune is extended through its own scripting language, with support for hooks, macros, custom commands, key mappings, syntax highlighters, and FIFO buffers for showing asynchronous command output. It builds on Linux, macOS, and Cygwin, requires a C++20 compiler, and is packaged for many Linux distributions and BSD systems.
Key features
- 01Multiple selections as the main way to edit text
- 02Regex-based selecting, splitting, and filtering of selections
- 03Client-server sessions that multiple clients can attach to
- 04Piping selections through external filter programs
- 05Syntax highlighting with multiple languages in one buffer
- 06Hooks, macros, and a built-in scripting language for customization
Use cases
- Terminal-based editing for developers who prefer modal, keyboard-driven workflows
- Bulk refactoring by selecting and changing many matches at once
- Running a shared editing session across several terminal panes or clients
Quick start
- 1
Clone the repository
git clone https://github.com/mawww/kakoune.git - 2
Enter the project directory
cd kakoune - 3
Build the editor
make - 4
Run Kakoune from the source directory
./src/kak
Things to know
- No native Windows version is planned; it runs on Linux, macOS, and Cygwin.
- It relies on a Unix-like environment and needs a C++20 compiler (GCC 10.3+ or clang 11+).
Topics
FAQ
- What is kakoune?
- A modal code editor inspired by Vi, built around keystrokes as a text editing language and multiple selections. Kakoune is a terminal-based code editor that follows Vi's idea of keystrokes as a text editing language. Like Vim, it is modal, with a normal mode for manipulating selections and an insert mode for typing text. Its core difference is that editing operates on selections, which are oriented, inclusive character ranges with an anchor and a cursor, so most commands act on the selected text first and then change it.
- Is kakoune free to use? What license does it have?
- kakoune is open source under the Unlicense license. Check the license terms before using it in commercial products.
- Is kakoune still maintained?
- Actively maintained. The last commit to kakoune was on Oct 11, 2026.
- What can I use kakoune for?
- Terminal-based editing for developers who prefer modal, keyboard-driven workflows Bulk refactoring by selecting and changing many matches at once Running a shared editing session across several terminal panes or clients
- How do I install kakoune?
- Clone the repository: git clone https://github.com/mawww/kakoune.git Enter the project directory: cd kakoune Build the editor: make Run Kakoune from the source directory: ./src/kak
- Where can I get kakoune?
- The source code and installation instructions are on GitHub: https://github.com/mawww/kakoune
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Neovim is a Vim-based text editor refactored for extensibility, with a Lua and RPC API that lets plugins and external UIs drive the editor.
Vim is an improved, highly configurable version of the classic Vi text editor, designed for fast keyboard-driven editing of code and plain text.
A code editor written in Rust with built-in LSP support, optional Vim-style modal editing, and remote development.
A macOS GUI version of the Vim text editor, with native menus, full-screen modes, Touch Bar and macOS system integration.
A terminal code review tool with vim keybindings that exports comments to GitHub, GitLab, Gitea, Bitbucket, Azure DevOps, Gerrit, or the clipboard.