{"id":20162550,"url":"https://github.com/zdharma-continuum/zui","last_synced_at":"2025-06-29T13:04:22.760Z","repository":{"id":103427575,"uuid":"423393236","full_name":"zdharma-continuum/zui","owner":"zdharma-continuum","description":"⬢ Zsh User Interface library – CGI+DHTML-like rapid application development with Zsh","archived":false,"fork":false,"pushed_at":"2023-04-16T05:39:34.000Z","size":417,"stargazers_count":12,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-10T00:36:47.922Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://zdharma.org","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zdharma-continuum.png","metadata":{"files":{"readme":"README.md","changelog":null,"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}},"created_at":"2021-11-01T08:38:51.000Z","updated_at":"2025-02-13T10:31:34.000Z","dependencies_parsed_at":"2024-01-03T04:29:57.656Z","dependency_job_id":null,"html_url":"https://github.com/zdharma-continuum/zui","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/zdharma-continuum/zui","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zdharma-continuum%2Fzui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zdharma-continuum%2Fzui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zdharma-continuum%2Fzui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zdharma-continuum%2Fzui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zdharma-continuum","download_url":"https://codeload.github.com/zdharma-continuum/zui/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zdharma-continuum%2Fzui/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262598167,"owners_count":23334669,"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-11-14T00:25:39.722Z","updated_at":"2025-06-29T13:04:22.692Z","avatar_url":"https://github.com/zdharma-continuum.png","language":"Shell","funding_links":["https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=D6XDCHDSBDSDG"],"categories":["Plugins"],"sub_categories":["ZSH on Windows"],"readme":"![ZUI logo](https://raw.githubusercontent.com/wiki/zdharma-continuum/zui/img/zui_logo-fs8.png)\n\n[![paypal](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=D6XDCHDSBDSDG)\n\n# ⬢ ZUI – CGI+DHTML-like User Interface Library for Zsh / ZCurses\n\n[![License (GPL version 3)](https://img.shields.io/badge/license-GNU%20GPL%20version%203-blue.svg?style=flat-square)](./LICENSE)\n[![MIT License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](./LICENSE)\n![ZSH 4.3.17](https://img.shields.io/badge/zsh-v4.3.17-orange.svg?style=flat-square)\n\n![Dharma logos](https://raw.githubusercontent.com/wiki/zdharma-continuum/zui/img/logo_theme-fs8.png)\n\nThis is a RAD (Rapid Application Development) textual user interface library for Zsh. It in many aspects resembles\ntypical CGI+(D)HTML setup. There are:\n\n- generators ran on \"server\" side (basic Zshell-code that is just generating text!),\n- event loop that turns the generated text into document with active elements (buttons, anchors, toggle buttons, text\n  fields, list boxes),\n- mechanism to regenerate document parts from the original generators.\n\nSo, a Zshell code generates text. It is then turned into document with hyperlinks. DHTML-like calls are possible that\nwill regenerate document parts on the fly. Page can be also reloaded with input data, just like an HTML page.\n\nA voiced [video tutorial](https://youtu.be/TfZ8b_RS_Bg) shows how to create an application – Nmap network scanner\nfrontend.\n\n## Hello World\n\n```zsh\n# Started from Zle or from command line\n\n-zui_std_cleanup deserialize:\"zui-demo-hello-world\"\n-zui_std_init app:\"zui-demo-hello-world\" app_name:\"ZUI Hello World\"\nemulate -LR zsh -o extendedglob -o typesetsilent -o warncreateglobal\n-zui_std_init2 # after emulate -LR\n\n-zui_std_store_default_app_config b:border 1\n\ndemo_generator_A() {\n    local mod=\"$1\" ice=\"$2\"\n\n    # Content, no hyper-links\n    reply=( \"Hello World from ${ZUI[YELLOW]}ZUI${ZUI[FMT_END]}! Module $mod, instance $ice.\" )\n\n    # Non-selectable lines   Hops to jump with [ and ]   Local anchors\n    reply2=( )               reply3=( 1 )                reply4=( )\n}\n\n## Start application ##\nzui-event-loop 1:demo_generator_A\n\n-zui_std_cleanup serialize\n```\n\n![Hello World screenshot](https://raw.githubusercontent.com/wiki/zdharma-continuum/zui/img/hello-world-fs8.png)\n\nOther example which uses list-box:\n[zui-demo-list-box](https://github.com/zdharma-continuum/zui/blob/master/demos/zui-demo-list-boxes)\n\nThe API is described at the [wiki](https://github.com/zdharma-continuum/zui/wiki). Checkout\n[screenshots](https://github.com/zdharma-continuum/zui/wiki/Screenshots) and\n[Asciinema recordings](https://github.com/zdharma-continuum/zui/wiki/Asciinema).\n\n## Installation\n\n**The plugin is \"standalone\"**, which means that only sourcing it is needed. So to install, unpack `zui` somewhere and\nadd\n\n```zsh\nsource {where-zui-is}/zui.plugin.zsh\n```\n\nto `zshrc`.\n\nIf using a plugin manager, then `Zinit` is recommended, but you can use any other too, and also install with `Oh My Zsh`\n(by copying directory to `~/.oh-my-zsh/custom/plugins`).\n\n### Zinit\n\nAdd `zinit load zdharma-continuum/zui` to your `.zshrc` file. Zinit will handle cloning the plugin for you automatically\nthe next time you start zsh. To update (i.e. to pull from origin) issue `zinit update zdharma-continuum/zui`.\n\n### Antigen\n\nAdd `antigen bundle zdharma-continuum/zui` to your `.zshrc` file. Antigen will handle cloning the plugin for you\nautomatically the next time you start zsh.\n\n### Oh-My-Zsh\n\n1. `cd ~/.oh-my-zsh/custom/plugins`\n1. `git clone git@github.com:zdharma-continuum/zui.git`\n1. Add `zui` to your plugin list\n\n### Zgen\n\nAdd `zgen load zdharma-continuum/zui` to your .zshrc file in the same place you're doing your other `zgen load` calls\nin.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzdharma-continuum%2Fzui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzdharma-continuum%2Fzui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzdharma-continuum%2Fzui/lists"}