> [!Note] > I built a tree-like navigation tool for viewing diff in kakoune ![画面収録 2026-01-04 朝9.52.01](https://hackmd.io/_uploads/B17VY7_Vbe.gif) ## Why? - I need to quickly review pull request, we a glance of file tree, and quickly jump between them - But I don't want to use GitHub Web UI: it was pretty slow - thought it has improved a lot these days, I still prefer terminal tools over web UI - [lazygit](https://github.com/jesseduffield/lazygit) is not enough - [lumen](https://github.com/jnsahaj/lumen) wasn't there yet ## How my *diff* experience evolves over the years - The start: [SourceTree](https://www.sourcetreeapp.com/) app (before the Atlassin aquired lol) - VSCode Source control view, [Gitlens](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens) and [GitGraph](https://marketplace.visualstudio.com/items?itemName=mhutchie.git-graph) plugin - [Fork.app](https://git-fork.com/) - Start using more command line: inline diff pager - from [delta](https://github.com/dandavison/delta), [difftastic](https://github.com/Wilfred/difftastic) to [git-split-diffs](https://github.com/banga/git-split-diffs/) - good but it's still hard to jump between files - [After coming to kakoune:](https://yukai.dev/blog/2024/06/15/kakoune-helix-modern-editor-experiences) - Everything is composable - Heavily use with tmux & fzf that integrates well with kakoune ## How a about building a command palette, and even a file tree, with just fzf tmux and kakoune? - [Source code (GitHub)](https://github.com/Yukaii/dotfiles/blob/082ee6911a14632028b60c9ad60518ee3d26b3a1/bin/.bin/kks-git-diff-files) ![スクリーンショット 2026-01-04 朝10.02.19](https://hackmd.io/_uploads/ryHBjm_VZg.png) ### The flow: - Parse diff format, get location and file name - Render the file list with fzf - Bind fzf actions to send "scroll to" command to kakoune (using a [forked version kks](https://github.com/Yukaii/kks/tree/chore/improve-tmp-file-with-poll), becuase `kks cat` gets unstable results) - Of course built with AI ## And we have a even better tool today! ![スクリーンショット 2026-01-04 朝10.02.55](https://hackmd.io/_uploads/rkZPoX_V-e.png) It's called [lumen](https://github.com/jnsahaj/lumen)! Written in Rust, with built‑in AI integration and lazygit‑inspired ergonomics. Thank you Sahaj for building this. And I just vibe coded two more scripts that wraps around lumen: - [lmpr](https://github.com/Yukaii/dotfiles/blob/082ee6911a14632028b60c9ad60518ee3d26b3a1/bin/.bin/lmpr) - [ghlmpr](https://github.com/Yukaii/dotfiles/blob/082ee6911a14632028b60c9ad60518ee3d26b3a1/bin/.bin/ghlmpr)