Pure Go termbox implementation
Go Python
Switch branches/tags
Nothing to show
Clone or download
Failed to load latest commit information.
_demos Fix cursor's behavior Jan 22, 2016
AUTHORS Add AUTHORS, change copyright notice accordingly. Oct 13, 2012
LICENSE Add AUTHORS, change copyright notice accordingly. Oct 13, 2012
README.md Merge branch 'master' of git://github.com/pb-/termbox-go Jun 13, 2018
api.go Double the macOS escape sequence wait period after encounting spuriou… Jan 23, 2018
api_common.go spelling: attributes Mar 14, 2016
api_windows.go Update documentation on InputMouse input mode. Jan 16, 2016
collect_terminfo.py Add a small built-in terminfo database as last fallback variant. Oct 28, 2012
escwait.go macOS delay on incomplete escape sequences to avoid spurious escape k… Jan 13, 2018
escwait_darwin.go macOS delay on incomplete escape sequences to avoid spurious escape k… Jan 13, 2018
syscalls.go Fix darwin build (amd64 only at the moment). Mar 15, 2012
syscalls_darwin.go Fix accidental too-relaxed build constraint Nov 24, 2015
syscalls_darwin_amd64.go Fix darwin build (amd64 only at the moment). Mar 15, 2012
syscalls_dragonfly.go Add DragonFly BSD support Sep 13, 2016
syscalls_freebsd.go impl. basic click event Dec 14, 2013
syscalls_linux.go Fix darwin build (amd64 only at the moment). Mar 15, 2012
syscalls_netbsd.go Add NetBSD syscalls. Feb 22, 2015
syscalls_openbsd.go impl. basic click event Dec 14, 2013
syscalls_windows.go Proper event producer shutdown (this time for sure) and gofmt. Dec 20, 2014
termbox.go Merge branch 'spelling' of https://github.com/jsoref/termbox-go Jan 14, 2018
termbox_common.go Use github.com/mattn/go-runewidth library. Jul 15, 2014
termbox_windows.go change resizing mechanism Apr 7, 2018
terminfo.go Add /lib/terminfo to terminfo search path. May 2, 2018
terminfo_builtin.go Implement more advanced mouse handling (windows support is TBD). Jan 16, 2016




Termbox is a library that provides a minimalistic API which allows the programmer to write text-based user interfaces. The library is crossplatform and has both terminal-based implementations on *nix operating systems and a winapi console based implementation for windows operating systems. The basic idea is an abstraction of the greatest common subset of features available on all major terminals and other terminal-like APIs in a minimalistic fashion. Small API means it is easy to implement, test, maintain and learn it, that's what makes the termbox a distinct library in its area.


Install and update this go package with go get -u github.com/nsf/termbox-go


For examples of what can be done take a look at demos in the _demos directory. You can try them with go run: go run _demos/keyboard.go

There are also some interesting projects using termbox-go:

  • godit is an emacsish lightweight text editor written using termbox.
  • gotetris is an implementation of Tetris.
  • sokoban-go is an implementation of sokoban game.
  • hecate is a hex editor designed by Satan.
  • httopd is top for httpd logs.
  • mop is stock market tracker for hackers.
  • termui is a terminal dashboard.
  • termloop is a terminal game engine.
  • xterm-color-chart is a XTerm 256 color chart.
  • gocui is a minimalist Go library aimed at creating console user interfaces.
  • dry is an interactive cli to manage Docker containers.
  • pxl displays images in the terminal.
  • snake-game is an implementation of the Snake game.
  • gone is a CLI pomodoro® timer.
  • Spoof.go controllable movement spoofing from the cli
  • lf is a terminal file manager
  • rat lets you compose shell commands to build terminal applications.
  • httplab An interactive web server.
  • tetris Go Tetris with AI option
  • wot Wait time during command is completed.
  • 2048-go is 2048 in Go
  • jv helps you view JSON on the command-line.
  • pinger helps you to monitor numerous hosts using ICMP ECHO_REQUEST.
  • vixl44 lets you create pixel art inside your terminal using vim movements
  • zterm is a typing game inspired by http://zty.pe/
  • gotypist is a fun touch-typing tutor following Steve Yegge's method.
  • cointop is an interactive terminal based UI application for tracking cryptocurrencies.
  • pexpo is a terminal sending ping tool written in Go.

API reference