{"id":21258708,"url":"https://github.com/ceccopierangiolieugenio/pytermtk","last_synced_at":"2025-05-14T14:07:51.265Z","repository":{"id":38198426,"uuid":"339475110","full_name":"ceccopierangiolieugenio/pyTermTk","owner":"ceccopierangiolieugenio","description":"Python Terminal Toolkit - a Spiced Up Cross Compatible TUI Library 🌶️ ","archived":false,"fork":false,"pushed_at":"2025-05-09T13:21:37.000Z","size":12259,"stargazers_count":707,"open_issues_count":23,"forks_count":30,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-05-09T14:32:40.350Z","etag":null,"topics":["ascii","ascii-graphics","library","pyodide","pytermtk","python","terminal","terminal-emulator","terminal-graphics","terminal-multiplexer","text-editor","tui","tui-app","tui-editor","tui-library","tutorial","ui","ui-design","ui-library","user-interface"],"latest_commit_sha":null,"homepage":"https://ceccopierangiolieugenio.github.io/pyTermTk-Docs/","language":"Python","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/ceccopierangiolieugenio.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,"zenodo":null}},"created_at":"2021-02-16T17:23:36.000Z","updated_at":"2025-05-09T13:20:18.000Z","dependencies_parsed_at":"2023-02-12T18:40:17.191Z","dependency_job_id":"2f9a4cfa-9ae2-43c7-9e99-0a940b1f2a9a","html_url":"https://github.com/ceccopierangiolieugenio/pyTermTk","commit_stats":{"total_commits":541,"total_committers":9,"mean_commits":"60.111111111111114","dds":0.0979667282809612,"last_synced_commit":"c9bab1fd05cc6c15ae13c781f9bd0b432ac954c0"},"previous_names":[],"tags_count":79,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ceccopierangiolieugenio%2FpyTermTk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ceccopierangiolieugenio%2FpyTermTk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ceccopierangiolieugenio%2FpyTermTk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ceccopierangiolieugenio%2FpyTermTk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ceccopierangiolieugenio","download_url":"https://codeload.github.com/ceccopierangiolieugenio/pyTermTk/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254160021,"owners_count":22024567,"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":["ascii","ascii-graphics","library","pyodide","pytermtk","python","terminal","terminal-emulator","terminal-graphics","terminal-multiplexer","text-editor","tui","tui-app","tui-editor","tui-library","tutorial","ui","ui-design","ui-library","user-interface"],"created_at":"2024-11-21T04:10:15.122Z","updated_at":"2025-05-14T14:07:46.254Z","avatar_url":"https://github.com/ceccopierangiolieugenio.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\n[![Serial](https://img.shields.io/badge/-ssh,serial,tty-grey?logo=gnometerminal\u0026logoColor=white)](https://ceccopierangiolieugenio.github.io/pyTermTk-Docs/info/features/crosscompatible.html)\n[![Linux](https://img.shields.io/badge/-Linux-grey?logo=linux\u0026logoColor=white)](https://ceccopierangiolieugenio.github.io/pyTermTk-Docs/info/features/crosscompatible.html)\n[![Windows](https://img.shields.io/badge/-Windows-grey?logo=pcgamingwiki\u0026logoColor=white)](https://ceccopierangiolieugenio.github.io/pyTermTk-Docs/info/features/crosscompatible.html)\n[![OSX](https://img.shields.io/badge/-OSX-grey?logo=apple\u0026logoColor=white)](https://ceccopierangiolieugenio.github.io/pyTermTk-Docs/info/features/crosscompatible.html)\n[![HTML5](https://img.shields.io/badge/-HTML5-grey?logo=html5)](https://ceccopierangiolieugenio.github.io/pyTermTk-Docs/info/features/crosscompatible.html)\n\n[![Python](https://img.shields.io/badge/Python-v3.9%5E-green?logo=python)](https://devguide.python.org/versions/)\n[![Test Status](https://img.shields.io/github/actions/workflow/status/ceccopierangiolieugenio/pyTermTk/testing.yml?branch=main\u0026label=tests)](https://github.com/ceccopierangiolieugenio/pyTermTk/actions?query=workflow%3Atesting)\n[![pyTermTk_version](https://img.shields.io/github/v/tag/ceccopierangiolieugenio/pyTermTk?label=version)](https://github.com/ceccopierangiolieugenio/pyTermTk/releases)\n[![pypi_version](https://img.shields.io/pypi/v/pyTermTk?label=pypi)](https://pypi.org/project/pyTermTk)\n[![Usage](https://img.shields.io/badge/Usage-Terminal%20User%20Interface-yellow)](https://ceccopierangiolieugenio.github.io/pyTermTk-Docs/)\n\n![screenshot](https://ceccopierangiolieugenio.github.io/binaryRepo/pyTermTk/images/pyTermTk.HERO.800.png)\n\n[![pypi_version](https://img.shields.io/badge/Twitter-pyTermTk-blue?logo=x\u0026logoColor=blue)](https://twitter.com/hashtag/pyTermTk?src=hashtag_click\u0026f=live)\n[![Static Badge](https://img.shields.io/badge/BlyeSky-pyTermTk-blue?logo=bluesky\u0026logoColor=blue)](https://bsky.app/profile/piercecco.bsky.social)\n[![Static Badge](https://img.shields.io/badge/Discord-pyTermTk-8A2BE2?logo=discord\u0026logoColor=blue)](https://discord.gg/7E5DZdbw)\n\n\n\n## [pyTermTk](https://github.com/ceccopierangiolieugenio/pyTermTk)\n\n(**py**thon **Term**inal **T**ool**k**it) is a Text-based user interface library ([TUI](https://en.wikipedia.org/wiki/Text-based_user_interface))\nEvolved from the discontinued project [pyCuT](https://github.com/ceccopierangiolieugenio/pyCuT)\nand inspired by a mix of [Qt5](https://www.riverbankcomputing.com/static/Docs/PyQt5/),[GTK](https://pygobject.readthedocs.io/en/latest/), and [tkinter](https://docs.python.org/3/library/tkinter.html) api definition with a touch of personal interpretation\n\nhttps://github.com/user-attachments/assets/888e745a-ea00-4d03-b6ec-273319d54ea7\n\n## [Features](https://ceccopierangiolieugenio.github.io/pyTermTk-Docs/info/features/index.html)\n- [Self Contained](https://ceccopierangiolieugenio.github.io/pyTermTk-Docs/info/installing.html#copy-termtk-folder) (no external lib required), Python 3.9 or above required.\n- [Cross compatible](https://ceccopierangiolieugenio.github.io/pyTermTk-Docs/info/features/crosscompatible.html): [Linux](https://en.wikipedia.org/wiki/Linux)🐧, [MacOS](https://en.wikipedia.org/wiki/MacOS)🍎, [MS Windows](https://en.wikipedia.org/wiki/Microsoft_Windows)🪟, [HTML5](https://en.wikipedia.org/wiki/HTML5)🌍([Try](https://ceccopierangiolieugenio.github.io/pyTermTk-Docs/sandbox/sandbox.html))\n- [Basic widgets](https://ceccopierangiolieugenio.github.io/pyTermTk-Docs/info/features/widgets.html#base-widgets) for [TUI](https://en.wikipedia.org/wiki/Text-based_user_interface) development (Button, Label, checkbox, ...)\n- [Specialized widgets](https://ceccopierangiolieugenio.github.io/pyTermTk-Docs/info/features/widgets.html#specialised-widgets) to improve the usability (Windows, Frames, Tables, ...)\n- QT Like Layout system to help arrange the widgets in the terminal\n- True color support\n- Ful/Half/Zero sized Unicode characters 😎\n- I am pretty sure there is [something else...](https://ceccopierangiolieugenio.github.io/pyTermTk-Docs/info/features/index.html)\n\n---\n\n## Try the [Sandbox](https://ceccopierangiolieugenio.github.io/pyTermTk-Docs/sandbox/sandbox.html) straight from your browser\n\n[![SandBox](https://user-images.githubusercontent.com/8876552/206438915-fdc868b1-32e0-46e8-9e2c-e29f4a7a0e75.png)](https://ceccopierangiolieugenio.github.io/pyTermTk-Docs/sandbox/sandbox.html)\n\nPowered by [Pyodide](https://pyodide.org/) and [xterm.js](https://xtermjs.org/) and [CodeMirror5](https://codemirror.net/5/) and [w2ui](https://w2ui.com/)\n\n---\n\n## [the Tutorials](https://github.com/ceccopierangiolieugenio/pyTermTk/tree/main/tutorial) and [the Examples](https://github.com/ceccopierangiolieugenio/pyTermTk/tree/main/tutorial/000-examples.rst)\nBe inspired by [the Tutorials](https://github.com/ceccopierangiolieugenio/pyTermTk/tree/main/tutorial) and [the Examples](https://github.com/ceccopierangiolieugenio/pyTermTk/tree/main/tutorial/000-examples.rst)\n\n## [Api Definitions](https://ceccopierangiolieugenio.github.io/pyTermTk-Docs/index.html#api-reference)\nDon't get bored by the [Api Definitions](https://ceccopierangiolieugenio.github.io/pyTermTk-Docs/index.html#api-reference)\n\n## [ttkode](https://github.com/ceccopierangiolieugenio/pyTermTk/tree/main/apps/ttkode)\nBurn your fingers with the Terminal Studio Kode\n\n## [ttkDesigner](https://github.com/ceccopierangiolieugenio/pyTermTk/tree/main/apps/ttkDesigner)\nSmell deliciousness with the official [pyTermTk](https://github.com/ceccopierangiolieugenio/pyTermTk) tool for designing and building Text-based user interfaces ([TUI](https://en.wikipedia.org/wiki/Text-based_user_interface)s)\n\n## [theDumbPaintTool](https://github.com/ceccopierangiolieugenio/pyTermTk/tree/main/apps/dumbPaintTool)\nUnravel your inner artist with [The Terminal ASCII Photoshop](https://ceccopierangiolieugenio.itch.io/dumb-paint-tool)\n\n---\n\n## [Install/Upgrade](https://ceccopierangiolieugenio.github.io/pyTermTk-Docs/info/installing.html)\n[pyTermTk](https://github.com/ceccopierangiolieugenio/pyTermTk) is available on [PyPI](https://pypi.org/project/pyTermTk/)\n```bash\npip3 install --upgrade pyTermTk\n```\n\n## Quick Test/Try - no install required\n\n#### Clone\n```bash\ngit clone https://github.com/ceccopierangiolieugenio/pyTermTk.git\ncd pyTermTk\n```\n\n#### Demos\n```bash\n# Press CTRL-C to exit (CTRL-Break on Windows)\n\n# Showcase Demo\npython3 demo/demo.py -f -t\n\n# run the ttkDesigner\nrun.ttkDesigner.sh\n\n# run The Dumb Paint Tool\n# it require pillow\n#   pip install pillow\nrun.dumbPaintTool.sh\n\n# Text edit with \"Pygments\" highlight integrated\n# it require pygments\n#   pip install pygments\npython3 tests/test.ui.018.TextEdit.Pygments.py README.md\n```\n\n---\n\n## Projects using [pyTermTk](https://github.com/ceccopierangiolieugenio/pyTermTk)\n- [ttkDesigner](https://github.com/ceccopierangiolieugenio/pyTermTk/tree/main/apps/ttkDesigner) - the official [pyTermTk](https://github.com/ceccopierangiolieugenio/pyTermTk) tool for designing and building Text-based user interfaces ([TUI](https://en.wikipedia.org/wiki/Text-based_user_interface)s)\n- [the DumbPaintTool](https://ceccopierangiolieugenio.itch.io/dumb-paint-tool) - The Terminal ASCII Photoshop\n- [tlogg](https://github.com/ceccopierangiolieugenio/tlogg) - A fast, advanced log explorer.\n- [ttkode](https://github.com/ceccopierangiolieugenio/ttkode) - TerminalToolKit (Studio) Code (editor)\n- [pytest-fold](https://github.com/jeffwright13/pytest-fold) - A Pytest plugin to make console output more manageable when there are multiple failed tests\n- [pytest-tui](https://github.com/jeffwright13/pytest-tui) - A Text User Interface (TUI) for Pytest, automatically launched after your test run is finished\n- [breakoutRL](https://ceccopierangiolieugenio.itch.io/breakoutrl) - Breakout the Roguelike\n- [7drl-2024](https://ceccopierangiolieugenio.itch.io/a-snake-on-a-plane) - A Snake🐍 on a Plane✈️ - The Roguelike\n\n## Related Projects\n- Honourable mention\n  - [bpytop](https://github.com/aristocratos/bpytop) - Linux/OSX/FreeBSD resource monitor \u003cbr\u003e\n    This was the base inspiration for my core library\n\n- Python\n  - [urwid](https://github.com/urwid/urwid) - Console user interface library for Python\n  - [pyTermGUI](https://github.com/bczsalba/pytermgui) - A simple yet powerful TUI framework for your Python (3.7+) applications\n  - [Textual](https://github.com/Textualize/textual) - TUI (Text User Interface) framework for Python inspired by modern web development\n  - [Rich](https://github.com/Textualize/rich) - Python library for rich text and beautiful formatting in the terminal\n  - [PyCuT](https://github.com/ceccopierangiolieugenio/pyCuT) - terminal graphic library loosely based on QT api (my previous failed attempt)\n  - [pyTooling.TerminalUI](https://github.com/pyTooling/pyTooling.TerminalUI) - A set of helpers to implement a text user interface (TUI) in a terminal.\n\n- Non Python\n  - [Turbo Vision](http://tvision.sourceforge.net)\n  - [ncurses](https://en.wikipedia.org/wiki/Ncurses)\n  - [tui.el](https://github.com/ebpa/tui.el) - An experimental text-based UI framework for Emacs modeled after React\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fceccopierangiolieugenio%2Fpytermtk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fceccopierangiolieugenio%2Fpytermtk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fceccopierangiolieugenio%2Fpytermtk/lists"}