{"id":13393098,"url":"https://github.com/gizak/termui","last_synced_at":"2025-05-12T05:34:27.387Z","repository":{"id":37706395,"uuid":"30245748","full_name":"gizak/termui","owner":"gizak","description":"Golang terminal dashboard","archived":false,"fork":false,"pushed_at":"2024-07-22T21:41:39.000Z","size":6150,"stargazers_count":13346,"open_issues_count":105,"forks_count":797,"subscribers_count":286,"default_branch":"master","last_synced_at":"2025-05-12T04:13:40.128Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gizak.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-02-03T14:09:27.000Z","updated_at":"2025-05-11T18:57:19.000Z","dependencies_parsed_at":"2023-11-11T04:24:46.246Z","dependency_job_id":"18ff28b0-f13a-4d7c-917b-ba16ef2b9d47","html_url":"https://github.com/gizak/termui","commit_stats":{"total_commits":313,"total_committers":52,"mean_commits":6.019230769230769,"dds":0.670926517571885,"last_synced_commit":"f976fe697aa09b747f16fa6e08c36dde5fb16f27"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gizak%2Ftermui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gizak%2Ftermui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gizak%2Ftermui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gizak%2Ftermui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gizak","download_url":"https://codeload.github.com/gizak/termui/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253672736,"owners_count":21945483,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-30T17:00:42.945Z","updated_at":"2025-05-12T05:34:27.349Z","avatar_url":"https://github.com/gizak.png","language":"Go","readme":"# termui\n\n[\u003cimg src=\"./_assets/demo.gif\" alt=\"demo cast under osx 10.10; Terminal.app; Menlo Regular 12pt.)\" width=\"100%\"\u003e](./_examples/demo.go)\n\ntermui is a cross-platform and fully-customizable terminal dashboard and widget library built on top of [termbox-go](https://github.com/nsf/termbox-go). It is inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib) and [tui-rs](https://github.com/fdehau/tui-rs) and written purely in Go.\n\n## Note\n\nPlease be aware that due to my fluctuating availability, the frequency of updates to this project may not always follow a consistent schedule. I would like to invite potential maintainers to contribute to this project. If you are interested in becoming a maintainer, please do not hesitate to reach out to me.\n\n## Versions\n\ntermui is currently compatible with Go 1.15 (as in go.mod) and above (tracking the Debian's [oldstable](https://wiki.debian.org/DebianReleases)). Please use the version-numbered branch as stable release. The new changes will be pushed to master branch first and then merge to version branch.\n\n## Features\n\n- Several premade widgets for common use cases\n- Easily create custom widgets\n- Position widgets either in a relative grid or with absolute coordinates\n- Keyboard, mouse, and terminal resizing events\n- Colors and styling\n\n## Installation\n\n### Go modules\n\nIt is not necessary to `go get` termui, since Go will automatically manage any imported dependencies for you. Do note that you have to include `/v3` in the import statements as shown in the 'Hello World' example below.\n\n### Dep\n\nAdd with `dep ensure -add github.com/gizak/termui`. With Dep, `/v3` should *not* be included in the import statements.\n\n## Hello World\n\n```go\npackage main\n\nimport (\n\t\"log\"\n\n\tui \"github.com/gizak/termui/v3\"\n\t\"github.com/gizak/termui/v3/widgets\"\n)\n\nfunc main() {\n\tif err := ui.Init(); err != nil {\n\t\tlog.Fatalf(\"failed to initialize termui: %v\", err)\n\t}\n\tdefer ui.Close()\n\n\tp := widgets.NewParagraph()\n\tp.Text = \"Hello World!\"\n\tp.SetRect(0, 0, 25, 5)\n\n\tui.Render(p)\n\n\tfor e := range ui.PollEvents() {\n\t\tif e.Type == ui.KeyboardEvent {\n\t\t\tbreak\n\t\t}\n\t}\n}\n```\n\n## Widgets\n\n- [BarChart](./_examples/barchart.go)\n- [Canvas](./_examples/canvas.go) (for drawing braille dots)\n- [Gauge](./_examples/gauge.go)\n- [Image](./_examples/image.go)\n- [List](./_examples/list.go)\n- [Tree](./_examples/tree.go)\n- [Paragraph](./_examples/paragraph.go)\n- [PieChart](./_examples/piechart.go)\n- [Plot](./_examples/plot.go) (for scatterplots and linecharts)\n- [Sparkline](./_examples/sparkline.go)\n- [StackedBarChart](./_examples/stacked_barchart.go)\n- [Table](./_examples/table.go)\n- [Tabs](./_examples/tabs.go)\n\nRun an example with `go run _examples/{example}.go` or run each example consecutively with `make run-examples`.\n\n## Documentation\n\n- [wiki](https://github.com/gizak/termui/wiki)\n\n## Uses\n\n- [dockdash](https://github.com/byrnedo/dockdash)\n- [expvarmon](https://github.com/divan/expvarmon)\n- [go-ethereum/monitorcmd](https://github.com/ethereum/go-ethereum/blob/master/cmd/geth/monitorcmd.go)\n- [go-jira-ui](https://github.com/mikepea/go-jira-ui)\n- [gotop](https://github.com/cjbassi/gotop)\n- [termeter](https://github.com/atsaki/termeter)\n- [updo](https://github.com/Owloops/updo)\n\n## Related Works\n\n- [blessed-contrib](https://github.com/yaronn/blessed-contrib)\n- [gocui](https://github.com/jroimartin/gocui)\n- [termdash](https://github.com/mum4k/termdash)\n- [tui-rs](https://github.com/fdehau/tui-rs)\n- [tview](https://github.com/rivo/tview)\n\n## License\n\n[MIT](http://opensource.org/licenses/MIT)\n","funding_links":[],"categories":["Go","Popular","HarmonyOS","开源类库","Command Line","Misc","命令行","库 Libraries","Go (134)","Open source library","Table of Contents","语言资源库","Programming Languages","\u003ca name=\"monitor\"\u003e\u003c/a\u003eSystem monitoring","Build Automation","高级控制台UI","\u003cspan id=\"命令行-command-line\"\u003e命令行 Command Line\u003c/span\u003e","\\*nix/\\*nux","高级控制台UI`用于构建控制台应用程序和控制台用户界面的库.`","Go 🐹"],"sub_categories":["Windows Manager","命令行","Advanced Console UIs","Terminal Dashboard","高級控制台界面","命令行 Command-line","高级控制台用户界面","Command Line","go","Go","高级控制台界面","标准 CLI","\u003cspan id=\"高级控制台用户界面-advanced-console-uis\"\u003e高级控制台用户界面 Advanced Console UIs\u003c/span\u003e","Presentation"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgizak%2Ftermui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgizak%2Ftermui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgizak%2Ftermui/lists"}