MCPcopy
hub / github.com/nsf/termbox-go

github.com/nsf/termbox-go @v1.1.1 sqlite

repository ↗ · DeepWiki ↗ · release v1.1.1 ↗
220 symbols 458 edges 33 files 58 documented · 26%
README

Go Reference Build

IMPORTANT

This library is somewhat not maintained anymore. But I'm glad that it did what I wanted the most. It moved people away from "ncurses" mindset and these days we see both re-implementations of termbox API in various languages and even possibly better libs with similar API design. If you're looking for a Go lib that provides terminal-based user interface facilities, I've heard that gdamore/tcell is good (never used it myself). Also for more complicated interfaces and/or computer games I recommend you to consider using HTML-based UI. Having said that, termbox still somewhat works. In fact I'm writing this line of text right now in godit (which is a text editor written using termbox-go). So, be aware. Good luck and have a nice day.

Termbox

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.

Installation

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

Examples

For examples of what can be done take a look at various examples 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. - rat lets you compose shell commands to build terminal applications. - httplab An interactive web server. - 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. - jid is an interactive JSON drill down tool using filtering queries like jq. - nonograminGo is a nonogram (aka. picross) in Go. - tower-of-go is a tiny maze game that runs on the terminal.

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

draw_key
called by 110
_demos/keyboard.go
tbprint
called by 34
_demos/rgbcolor.go
w
called by 21
collect_terminfo.py
printf_tb
called by 19
_demos/keyboard.go
is_cursor_hidden
called by 14
termbox_common.go
clear
called by 10
termbox_common.go
uintptr
called by 9
termbox_windows.go
get_term_size
called by 6
termbox.go

Shape

Function 161
Struct 26
Method 19
TypeAlias 13
FuncType 1

Languages

Go97%
Python3%

Modules by API surface

termbox_windows.go53 symbols
_demos/editbox.go25 symbols
termbox.go21 symbols
api.go20 symbols
api_windows.go18 symbols
_demos/keyboard.go13 symbols
api_common.go10 symbols
collect_terminfo.py6 symbols
_demos/output.go6 symbols
terminfo.go5 symbols
termbox_common.go5 symbols
_demos/raw_input.go5 symbols

Used by 3 indexed graphs manifest dependencies, hub-wide

Dependencies from manifests, versioned

github.com/mattn/go-runewidthv0.0.9 · 1×

For agents

$ claude mcp add termbox-go \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact