{"id":13434342,"url":"https://github.com/pojala/termipal","last_synced_at":"2025-05-07T00:09:31.913Z","repository":{"id":66734802,"uuid":"114744696","full_name":"pojala/termipal","owner":"pojala","description":"Instant, native micro-GUIs for shell scripts and command line apps","archived":false,"fork":false,"pushed_at":"2017-12-19T10:13:33.000Z","size":674,"stargazers_count":316,"open_issues_count":3,"forks_count":3,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-05-07T00:09:19.482Z","etag":null,"topics":["javascript","macos","osx"],"latest_commit_sha":null,"homepage":null,"language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pojala.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":"2017-12-19T09:20:14.000Z","updated_at":"2025-02-24T01:01:23.000Z","dependencies_parsed_at":"2023-05-02T20:00:57.818Z","dependency_job_id":null,"html_url":"https://github.com/pojala/termipal","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pojala%2Ftermipal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pojala%2Ftermipal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pojala%2Ftermipal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pojala%2Ftermipal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pojala","download_url":"https://codeload.github.com/pojala/termipal/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252788527,"owners_count":21804284,"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":["javascript","macos","osx"],"created_at":"2024-07-31T02:01:53.823Z","updated_at":"2025-05-07T00:09:31.868Z","avatar_url":"https://github.com/pojala.png","language":"Objective-C","readme":"# Termipal\n\nThe Unix command line is powerful... But interactivity isn't its strong suit. There are text-mode UIs like curses, but they're not easy to develop, feel archaic to many users and can't interface with the desktop environment.\n\nTermipal is a small and fast GUI utility that lets you create minimal user interfaces using an easy JSON format.\n\nThe UIs you create are fully native using the macOS Cocoa API. They have access to desktop APIs like open panels for picking files, opening links in other apps, etc.\n\nFor maximum convenience, Termipal automatically attaches to the bottom edge of your terminal window. This way it's right next to where you're typing. This feature works with the standard Mac Terminal as well as replacements like iTerm.\n\nTermipal — let it be your Terminal's new best pal. *\u0026ast;cringe\u0026ast;*\n\n![Screenshot](docs/termipal-example2.png)\n\n### How it works\n\nTermipal is actually a small framework for building JavaScript apps, like Electron.\n\n“Wait, that sounds terrible,” you may be thinking — isn't JavaScript slow and a memory hog? \nThe answer is: No, not when it's separated from the web browser.\n\nJavaScript itself is fast and lightweight. It's the browser that makes Electron apps so big. \nTermipal's entire install is a single binary which is only 150 kB in size.\n\nThere's no browser engine in Termipal. It doesn't use HTML or CSS — user interfaces are defined simply as JSON objects. It doesn't even embed a JavaScript runtime; instead it uses the one that comes with macOS and is probably already loaded in your Mac's memory because it's a system component.\n\nThe APIs in Termipal are similar to Electron where possible. For example, you can listen to the ready event on the app object, and you can open a file picker dialog by calling dialog.showOpenDialog().\n\n(Don't get the wrong impression: Electron is a large and advanced project whereas Termipal is a dinky little version 0.0.x product that has less than 0.1% of the capabilities of Electron. Think of Electron compatibility as a principle that guides Termipal's API design, rather than any guarantee of present compatibility.)\n\nFor creating UIs, a new module called microUI is provided. To update the Termipal interface, call microUI.loadUIDefinition() with a JSON object that describes the UI elements. To associate JavaScript functions with interactions, simply pass an action property value that contains the function's name. That's pretty much all there is to know about the UI framework. You can find a few example scripts in the project's Github repo.\n\n### Website\n\nFind install instructions, FAQ and more at the Termipal website.\n\nIt's at: https://termipal.sh\n\n### Contact\n\nPauli Olavi Ojala / [@pauliooj](https://twitter.com/pauliooj) / pauli @ lacquer.fi\n","funding_links":[],"categories":["Objective-C"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpojala%2Ftermipal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpojala%2Ftermipal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpojala%2Ftermipal/lists"}