terminal text editor written in Go, using xi-editor as backend
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github chore: update screenshot Sep 27, 2018
editor Fix for cursor placement for certain chars (#44) Oct 9, 2018
rpc Change to bufio.NewReader(c.rw) instead of bufio.NewScanner(c.rw) in … Oct 13, 2018
.gitignore chore: gitignore and README Jul 20, 2017
Gopkg.toml kod: explicitly version dependencies. (#20) Jun 4, 2018
LICENSE Fixes #35 - adds MIT License (#36) Oct 3, 2018
README.md Add proper installation instructions (#42) Oct 9, 2018
kod.go fix: set config_dir in order to load plugins Sep 27, 2018


kod (WIP)


kod screenshot

kod aims to be a fast and modern terminal code-editor. It is inspired by both vim & micro. It's built using xi-editor as backend.


  • Performance, it should never freeze or be slow
  • Modes for efficient editing, similar to vim
  • Plugins (via xi-core, an example is xi-syntect-plugin which is shown in the picture above)
  • Modular, uses xi-editor as backend


  • Maintain a huge platform support (like vim), it will be supported by the major platforms and architectures


kod expects xi-core to be set in your $PATH. For more information how to build xi-core, please have a look at xi-editor's github page.

Once xi-core is available you should be able to install with following

 go get -u -v github.com/linde12/kod

To ensure that kod is available, run which kod. It prints kod path in GO binary. If you see kod not found, you need to add your $GOPATH/bin to PATH


  • Unmarshal known JSON requests into structs, partially done
  • Implement update method
  • Read viewHeight lines and fill buffer
  • Refactor away unused code(e.g. lineArray, buffer_reader, cursor)
  • Add (very) basic editing functionality
  • Add vertical scrolling
  • Add horizontal scrolling
  • Indentation (local, xi doesn't fully support yet AFAIK)
  • Respect alpha value in ARGB
  • Cleanup view and inputhandler
  • Find(search) in file
  • Support multiple cursors
  • Make editor runnable outside current CWD
  • Display line numbers/gutter (very basic)
  • A lot of other things...