GitHub - Yus314/kasane: Drop-in Kakoune frontend with an extensible UI foundation
Pangram verdict · v3.3
We believe that this document is primarily AI-generated with some human-written content
AI likelihood · overall
AIArticle text · 528 words · 3 segments analyzed
Kakoune handles editing. Kasane rebuilds the rendering pipeline — terminal or GPU — and opens the full UI to extension: splits, image display, workspace persistence, and beyond. Extend it yourself with sandboxed WASM plugins — a complete one fits in 15 lines of Rust. Your kakrc works unchanged.
GPU backend (--ui gui) — fuzzy finder, pane splits, and color preview are all WASM plugins
Getting Started · What's Different · Plugin Development · Vision What You Get alias kak=kasane and these improvements apply automatically:
Flicker-free rendering — no more tearing on redraws Multi-pane without tmux — native splits with per-pane status bars Clipboard that just works — Wayland, X11, macOS, SSH — no xclip needed Correct Unicode — CJK and emoji display correctly regardless of terminal
Add --ui gui for a GPU backend with system font rendering, smooth animations, and inline image display. Existing Kakoune plugins (kak-lsp, …) work as before. See What's Different for the full list. Quick Start NoteRequires Kakoune 2024.12.09 or later. Binary packages skip the Rust toolchain requirement. Arch Linux: yay -S kasane-bin · macOS: brew install Yus314/kasane/kasane · Nix: nix run github:Yus314/kasane · From source: cargo install --path kasane kasane file.txt # your Kakoune config works unchanged alias kak=kasane # add to .bashrc / .zshrc GPU backend: cargo install --path kasane --features gui, then kasane --ui gui. See Getting Started for detailed setup. Plugins Plugins can add floating overlays, line annotations, virtual text, code folding, gutter decorations, input handling, scroll policies, and more.
Bundled example plugins you can try today:
Plugin What it does
cursor-line Highlight the active line with theme-aware colors
fuzzy-finder fzf-powered file picker as a floating overlay
sel-badge Show selection count in the status bar
color-preview Inline color swatches next to hex values
pane-manager Tmux-like splits with Ctrl+W — no external multiplexer needed
image-preview Display images in a floating overlay anchored to the cursor
smooth-scroll Animated scrolling
prompt-highlight Visual feedback when entering prompt mode
Each plugin builds into a single .kpk package — sandboxed, composable, and ready to install. A complete plugin in 15 lines — here is sel-badge in its entirety: kasane_plugin_sdk::define_plugin! { manifest: "kasane-plugin.toml",
state { #[bind(host_state::get_cursor_count(), on: dirty::BUFFER)] cursor_count: u32 = 0, },
slots { STATUS_RIGHT(dirty::BUFFER) => |_ctx| { (state.cursor_count > 1).then(|| { auto_contribution(text(&format!(" {} sel ", state.cursor_count), default_face())) }) }, }, } Start writing your own: kasane plugin new my-plugin # scaffold from 6 templates kasane plugin dev # hot-reload while you edit See Plugin Development and Plugin API. Status Kasane is stable as a Kakoune frontend — ready for daily use. The plugin API is evolving; see Plugin Development for the current ABI version and migration guides. Usage kasane [options] [kak-options] [file]... [+<line>[:<col>]|+:]
All Kakoune arguments work — kasane passes them through to kak. kasane file.txt # Edit a file kasane -c project # Connect to existing session kasane -s myses file.txt # Named session kasane --ui gui file.txt # GPU backend kasane -l # List sessions (delegates to kak) See docs/config.md for configuration. Contributing See CONTRIBUTING.md for development setup and guidelines.
cargo test # Run all tests cargo clippy -- -D warnings # Lint cargo fmt --check # Format check License MIT OR Apache-2.0