Skip to content
An experimental, kakoune-inspired CLI-centric text/code editor with |-shaped cursor (in Rust)
Branch: master
Clone or download
Latest commit 88e02ae Mar 6, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore Use workspace Feb 23, 2019
.travis.yml Add .travis.yml Jan 15, 2019
Cargo.lock We can kind of have multiple buffers now. Mar 4, 2019
Cargo.toml Kind of tabs Feb 25, 2019 Update README Feb 28, 2019

Travis CI Build Status Gitter Chat

Primarily hosted on

Github repo is just a mirror for discoverability.

breeze - An experimental, kakoune-inspired CLI-centric text/code editor with |-shaped cursor (in Rust)

Features & Goals

  • Modal & CLI-centric, but in a modern edition
    • |-shaped cursor
    • Kakoune-inspired editing experience
  • Core library should compile to WebAssembly, so it can run everwhere, especially in the browser
  • WebAssembly plugin support
    • Plugin-centric
    • Sandboxed, so they can't steal your Bitcoins!

I have recently switched to kakoune after years (decades?) of using Vim. I think changing action, movement into movement, action is a brilliant idea. I enjoy simplicity of Kakoune and I am generally quite happy using it.

However I have couple of ideas how Kakoune could be better and/or disagree with a couple of things in it.

So I decided to hack together my own code editor to demonstrate / try them.

What is distinct about Breeze

Rust. Life is too short not to use Rust.

Terminals can do |-shaped cursors now, people! We don't have to use the blocky cursor anymore! In Breeze | is the only cursor shape. Whole design assumes |-shaped cursor. It feels more like a graphical text editor, than traditional CLI ones. A fresh breeze in CLI terminal world.

Kakoune seem very Vim-golf-centric. In Breeze the philosophy is slightly different. It doesn't matter to me in how many keystrokes one can perform certain editing operation. What matter to me most is predictable, natural, easy to use modal text edition. Muscle memory and rapid keypressing without having to pay much attention is what I am aiming for first.

Status and plans

Breeze Screenshot

Some stuff works, but still very, very early. And considering how little time I have, it will probably stay this way for a long while. I might hack on it continously in the future, or I might loose the motivation. I am happy to accept collaborators and help.


If you don't have Rust installed go to


cargo run --release -- [file_path]

to run from source code, or

cargo install -f

to install.

How to use (what works)

Breeze is modal. You are typically in the normal mode, enter insert mode with i, and leave it with Esc. You know... just like in Vim or Kakoune.

Breeze has selections. Kind of like in Visual mode in Vim, just more automatic. If you've used Kakoune - they are very much like in Kakoune.

In normal mode:

Shift + key typically extends the selection, instead of changing it.

Other actions that should work already:

  • basic moves: hjklwb%
  • numerical prefix for most of implemented stuff
  • basic insert mode: i, o, Esc
  • deletion: d, c
  • copy&paste y, p, P
  • g (followed by h, j, k, l)
  • ' - switch selection direction
  • < and >
  • line selection: x, X
  • undo: u U
You can’t perform that action at this time.