nt

A sensible note-taking program
git clone git://git.laack.co/nt.git
Log | Files | Refs | README

README.md (10614B)


      1 # Rich Interactive Widgets for Terminal UIs
      2 
      3 [![PkgGoDev](https://pkg.go.dev/badge/github.com/rivo/tview)](https://pkg.go.dev/github.com/rivo/tview)
      4 [![Go Report](https://img.shields.io/badge/go%20report-A%2B-brightgreen.svg)](https://goreportcard.com/report/github.com/rivo/tview)
      5 
      6 This Go package provides commonly used components for terminal based user interfaces.
      7 
      8 ![Screenshot](tview.gif)
      9 
     10 Among these components are:
     11 
     12 - __Input forms__ (including __text input__, __selections__, __checkboxes__, and __buttons__)
     13 - Navigable multi-color __text views__
     14 - Editable multi-line __text areas__
     15 - Sophisticated navigable __table views__
     16 - Flexible __tree views__
     17 - Selectable __lists__
     18 - __Images__
     19 - __Grid__, __Flexbox__ and __page layouts__
     20 - Modal __message windows__
     21 - An __application__ wrapper
     22 
     23 They come with lots of customization options and can be easily extended to fit your needs.
     24 
     25 ## Usage
     26 
     27 To add this package to your project:
     28 
     29 ```bash
     30 go get github.com/rivo/tview@master
     31 ```
     32 
     33 ## Hello World
     34 
     35 This basic example creates a box titled "Hello, World!" and displays it in your terminal:
     36 
     37 ```go
     38 package main
     39 
     40 import (
     41 	"github.com/rivo/tview"
     42 )
     43 
     44 func main() {
     45 	box := tview.NewBox().SetBorder(true).SetTitle("Hello, world!")
     46 	if err := tview.NewApplication().SetRoot(box, true).Run(); err != nil {
     47 		panic(err)
     48 	}
     49 }
     50 ```
     51 
     52 Check out the [GitHub Wiki](https://github.com/rivo/tview/wiki) for more examples along with screenshots. Or try the examples in the "demos" subdirectory.
     53 
     54 For a presentation highlighting this package, compile and run the program found in the "demos/presentation" subdirectory.
     55 
     56 ## Projects using `tview`
     57 
     58 - [K9s - Kubernetes CLI](https://github.com/derailed/k9s)
     59 - [IRCCloud Terminal Client](https://github.com/termoose/irccloud)
     60 - [Window manager for `tview`](https://github.com/epiclabs-io/winman)
     61 - [CLI bookmark manager](https://github.com/Endi1/drawer)
     62 - [A caving database interface written in Go](https://github.com/IdlePhysicist/cave-logger)
     63 - [Interactive file browse and exec any command.](https://github.com/bannzai/itree)
     64 - [A complete TUI for LDAP](https://github.com/Macmod/godap)
     65 - [A simple CRM](https://github.com/broadcastle/crm)
     66 - [Terminal UI for todist](https://github.com/cyberdummy/todoista)
     67 - [Graphical kubectl wrapper](https://github.com/dcaiafa/kpick)
     68 - [Decred Decentralized Exchange ](https://github.com/decred/dcrdex)
     69 - [A CLI file browser for Raspberry PI](https://github.com/destinmoulton/pixi)
     70 - [A tool to manage projects.](https://github.com/divramod/dp)
     71 - [A simple app for BMI monitoring](https://github.com/erleene/go-bmi)
     72 - [Stream TIDAL from command line](https://github.com/godsic/vibe)
     73 - [Secure solution for fully decentralized password management](https://github.com/guillaumemichel/passtor/)
     74 - [A growing collection of convenient little tools to work with systemd services](https://github.com/muesli/service-tools/)
     75 - [A terminal based browser for Redis written in Go](https://github.com/nitishm/redis-terminal)
     76 - [First project for the Computer Networks course.](https://github.com/pablogadhi/XMPPClient)
     77 - [Test your typing speed in the terminal!](https://github.com/shilangyu/typer-go)
     78 - [TUI Client for Docker](https://github.com/skanehira/docui)
     79 - [SSH client using certificates signed by HashiCorp Vault](https://github.com/stephane-martin/vssh)
     80 - [VMware vCenter Text UI](https://github.com/thebsdbox/vctui)
     81 - [Bookmarks on terminal](https://github.com/tryffel/bookmarker)
     82 - [A UDP testing utility](https://github.com/vaelen/udp-tester)
     83 - [A simple Kanban board for your terminal](https://github.com/witchard/toukan)
     84 - [The personal information dashboard for your terminal. ](https://github.com/wtfutil/wtf)
     85 - [MySQL database to Golang struct](https://github.com/xxjwxc/gormt)
     86 - [Discord, TUI and SIXEL.](https://gitlab.com/diamondburned/6cord)
     87 - [A CLI Audio Player](https://www.github.com/dhulihan/grump)
     88 - [GLab, a GitLab CLI tool](https://gitlab.com/profclems/glab)
     89 - [Browse your AWS ECS Clusters in the Terminal](https://github.com/swartzrock/ecsview)
     90 - [The CLI Task Manager for Geeks](https://github.com/ajaxray/geek-life)
     91 - [Fast disk usage analyzer written in Go](https://github.com/dundee/gdu)
     92 - [Multiplayer Chess On Terminal](https://github.com/qnkhuat/gochess)
     93 - [Scriptable TUI music player](https://github.com/issadarkthing/gomu)
     94 - [MangaDesk : TUI Client for downloading manga to your computer](https://github.com/darylhjd/mangadesk)
     95 - [Go How Much? a Crypto coin price tracking from terminal](https://github.com/ledongthuc/gohowmuch)
     96 - [dbui: Universal CLI for Database Connections](https://github.com/KenanBek/dbui)
     97 - [ssmbrowse: Simple and elegant cli AWS SSM parameter browser](https://github.com/bnaydenov/ssmbrowse)
     98 - [gobit: binance intelligence terminal](https://github.com/infl00p/gobit)
     99 - [viddy: A modern watch command](https://github.com/sachaos/viddy)
    100 - [s3surfer: CLI tool for browsing S3 bucket and download objects interactively](https://github.com/hirose31/s3surfer)
    101 - [libgen-tui: A terminal UI for downloading books from Library Genesis](https://github.com/audstanley/libgen-tui)
    102 - [kubectl-lazy: kubectl plugin to easy to view pod](https://github.com/togettoyou/kubectl-lazy)
    103 - [podman-tui: podman user interface](https://github.com/containers/podman-tui)
    104 - [tvxwidgets: tview extra widgets](https://github.com/navidys/tvxwidgets)
    105 - [Domino card game on terminal](https://github.com/gusti-andika/card-domino.git)
    106 - [goaround: Query stackoverflow API and get results on terminal](https://github.com/glendsoza/goaround)
    107 - [resto: a CLI app can send pretty HTTP & API requests with TUI](https://github.com/abdfnx/resto)
    108 - [twad: a WAD launcher for the terminal](https://github.com/zmnpl/twad)
    109 - [pacseek: A TUI for searching and installing Arch Linux packages](https://github.com/moson-mo/pacseek)
    110 - [7GUIs demo](https://github.com/letientai299/7guis/tree/master/tui)
    111 - [tuihub: A utility hub/dashboard for personal use](https://github.com/ashis0013/tuihub)
    112 - [l'oggo: A terminal app for structured log streaming (GCP stack driver, k8s, local streaming)](https://github.com/aurc/loggo)
    113 - [reminder: Terminal based interactive app for organising tasks with minimal efforts.](https://github.com/goyalmunish/reminder)
    114 - [tufw: A terminal UI for ufw.](https://github.com/peltho/tufw)
    115 - [gh: the GitHub CLI](https://github.com/cli/cli)
    116 - [piptui: Terminal UI to manage pip packages](https://github.com/glendsoza/piptui/)
    117 - [cross-clipboard: A cross-platform clipboard sharing](https://github.com/ntsd/cross-clipboard)
    118 - [tui-deck: nextcloud deck frontend](https://github.com/mebitek/tui-deck)
    119 - [ktop: A top-like tool for your Kubernetes clusters](https://github.com/vladimirvivien/ktop)
    120 - [blimp: UI for weather, network latency, application status, & more](https://github.com/merlinfuchs/blimp)
    121 - [Curly - A simple TUI leveraging curl to test endpoints](https://github.com/migcaraballo/curly)
    122 - [amtui: Alertmanager TUI](https://github.com/pehlicd/amtui)
    123 - [A TUI CLI manager](https://github.com/costa86/cli-manager)
    124 - [PrivateBTC](https://github.com/adrianbrad/privatebtc)
    125 - [play: A TUI playground to experiment with your favorite programs, such as grep, sed, awk, jq and yq](https://github.com/paololazzari/play)
    126 - [gorest: Enjoy making HTTP requests in your terminal, just like you do in Insomnia.](https://github.com/NathanFirmo/gorest)
    127 - [Terminal-based application to listen Radio Stations around the world!](https://github.com/vergonha/garden-tui)
    128 - [ntui: A TUI to manage Hashicorp Nomad clusters](https://github.com/SHAPPY0/ntui)
    129 - [lazysql: A cross-platform TUI database management tool written in Go](https://github.com/jorgerojas26/lazysql)
    130 - [redis-tui: A Redis Text-based UI client in CLI](https://github.com/mylxsw/redis-tui)
    131 - [fen: File manager](https://github.com/kivattt/fen)
    132 - [sqltui: A terminal UI to operate sql and nosql databases](https://github.com/LinPr/sqltui)
    133 - [DBee: Simple database browser](https://github.com/murat-cileli/dbee)
    134 - [oddshub: A TUI for sports betting odds](https://github.com/dos-2/oddshub)
    135 - [envolve: Terminal based interactive app for manage enviroment variables](https://github.com/erdemkosk/envolve)
    136 - [zfs-file-history: Terminal UI for inspecting and restoring file history on ZFS snapshots](https://github.com/markusressel/zfs-file-history)
    137 - [fan2go-tui: Terminal UI for fan2go](https://github.com/markusressel/fan2go-tui)
    138 - [NatsDash: Terminal UI for NATS Jetstream](https://nats-dash-gui.returnzero.win/)
    139 - [tuissh: A terminal UI to manage ssh connections](https://github.com/linuxexam/tuissh)
    140 - [chiko: Ultimate Beauty TUI gRPC Client](https://github.com/felangga/chiko)
    141 - [kmip-explorer: Browse & manage your KMIP objects from the terminal](https://github.com/phsym/kmip-explorer)
    142 - [stui: Slurm TUI for managing HPC clusters](https://github.com/antvirf/stui)
    143 - [nerdlog: Fast, remote-first, multi-host log viewer with timeline histogram](https://github.com/dimonomid/nerdlog)
    144 
    145 ## Documentation
    146 
    147 Refer to https://pkg.go.dev/github.com/rivo/tview for the package's documentation. Also check out the [Wiki](https://github.com/rivo/tview/wiki).
    148 
    149 ## Dependencies
    150 
    151 This package is based on [github.com/gdamore/tcell](https://github.com/gdamore/tcell) (and its dependencies) as well as on [github.com/rivo/uniseg](https://github.com/rivo/uniseg).
    152 
    153 ## Sponsor this Project
    154 
    155 [Become a Sponsor on GitHub](https://github.com/sponsors/rivo?metadata_source=tview_readme) to further this project!
    156 
    157 ## Backwards-Compatibility
    158 
    159 I try really hard to keep this project backwards compatible. Your software should not break when you upgrade `tview`. But this also means that some of its shortcomings that were present in the initial versions will remain. Having said that, backwards compatibility may still break when:
    160 
    161 - a new version of an imported package (most likely [`tcell`](https://github.com/gdamore/tcell)) changes in such a way that forces me to make changes in `tview` as well,
    162 - I fix something that I consider a bug, rather than a feature, something that does not work as originally intended,
    163 - I make changes to "internal" interfaces such as [`Primitive`](https://pkg.go.dev/github.com/rivo/tview#Primitive). You shouldn't need these interfaces unless you're writing your own primitives for `tview`. (Yes, I realize these are public interfaces. This has advantages as well as disadvantages. For the time being, it is what it is.)
    164 
    165 ## Your Feedback
    166 
    167 Add your issue here on GitHub. Feel free to get in touch if you have any questions.
    168 
    169 ## Code of Conduct
    170 
    171 We follow Golang's Code of Conduct which you can find [here](https://golang.org/conduct).