Tuw
Tiny GUI wrapper for command-line tools
Install / Use
/learn @matyalatte/TuwREADME
Tuw: a tiny GUI wrapper for command-line tools
Examples | Build Instructions | FAQ
Only 200KB for a portable GUI
Tuw provides a simple GUI, like a web form, for your scripts.
All you need is a JSON file and a tiny executable.
No need for compilers, browsers, or huge executables!
<img src=https://github.com/user-attachments/assets/6a43c5d9-beed-4f27-8a82-5dfd5fd9c3b5 width=398></img>
Features
- Define GUI in JSON
- Embed JSON into exe
- Save arguments
- Input paths by drag and drop
- Cross-platform (Windows, macOS, Linux, BSD, etc.)
- Native look and feel
- Portable
- Small size
- UTF-8 support
Downloads
You can download executables from the release page
Tuw-*-Windows-*.zipis for Windows (7 or later.)Tuw-*-Windows10-*.ziprequires Windows 10 or later, but it's much smaller than the standard version.Tuw-*-macOS-*.tar.xzis for macOS (10.9 or later.)Tuw-*-Linux-*.tar.xzis for Linux (with GTK3.14, GLIBC2.28, and GLIBCXX3.4, or later versions of the libraries.)
[!Note] Tuw also supports Linux distributions using musl and other Unix-like systems (BSD, Haiku, illumos, etc.). While there is no release package available for these systems, you can build Tuw from the source code.
Examples
There are many JSON files to learn how to define GUIs.
JSON Schema
There is a schema for gui_definition.json. You can use it to validate definitions while editing files.
For VSCode, you can add the schema path to settings.json (File > Preferences > Settings > JSON:Schemas > Edit in settings.json.)
"files.associations": {
"*.tuw": "jsonc"
},
"json.schemas": [
{
"fileMatch": [ "gui_definition.json", "gui_definition.jsonc", "*.tuw" ],
"url": "https://raw.githubusercontent.com/matyalatte/tuw/main/schema/schema.json"
}
]
FAQ
Building
Contributing
License
Files in this repository are available under the MIT license.
External Projects
| Project | About | License | | -- | -- | -- | | libui-ng | GUI framework | MIT | | subprocess.h | Command processor | Unlicense | | c-env-utils | Utilities for environment info | MIT | | tiny-str-match | String validator | MIT | | gtk-ansi-parser | ANSI parser for GtkTextBuffer | MIT |
