01 What it is
Real installers for Windows, Linux and macOS, straight from a GitHub repo.
No freezing and no bundlers that break. We install your project's real runtime and dependencies into a folder of its own, then install your project against them. Windows installers are built with NSIS, and on Linux and macOS the installer is one POSIX shell script with no framework to install.
- Output
.exe·.run·.zip- Languages
- 13, plus your own runtime
- Oldest target
- Windows XP · glibc 2.17 Linux · macOS 10.9
- This page
- One HTML file, no server, no network
One file, like TiddlyWiki
TiddlyInstall is a single HTML file. This page carries the installer programs, the runtime catalogue, and all the code that makes, edits and signs them.
- With no server at all
- Code you write here, a package, or a GitHub repository pinned to a commit. It edits any installer nobody has signed, packs the runtimes inside for machines with no internet, and signs with your own key. A copy saved to your disk asks nothing of the network except the runtime mirror, so a GitHub branch has to be given as a commit there.
- What the server adds
- Two things. It signs the install script, so an installer can check the script came from us and reached it unaltered. And it is where installers signed by us would be built, once there is a certificate to sign them with - there is not one yet, so that option is off. Everything else above is this page's own work.
about 6 MB, and it is the whole product
Three steps, no surprises
Point at a repo
Give us a GitHub repository and a branch, tag or commit. We clone the actual source code.
Dependencies are handled for you
At install time it picks the newest runtime that matches your version range and runs on that computer, then installs it into the app's own folder.
Build for every platform
An ordinary .exe for Windows, built with NSIS, plus a .run
for Linux and a .zip for macOS - three real installers.
Every app gets its own folder
Each app gets its own copy of every dependency, in folders with short hashed names. Nothing is shared, so one app can never break another, and uninstalling just deletes the app's folders. Disk space is cheap; broken installs are not.
Windows C:\ti\k3m9q2x7v4p8\ the app
C:\ti\tjfq5rqwnnrx\ its Python 3.12.4
C:\ti\a7d2hx9q4mbe\ its git 2.46.0
Linux /opt/ti/tjfq5rqwnnrx/
macOS /Library/Application Support/ti/tjfq5rqwnnrx/
Write the app here
Pick Python, JavaScript (Node.js) or Ruby and a template - a script, a window app, a web page in a window or a tray app - then write your code in the browser, run it, and make an installer from it with the same pipeline, on the New installer page.
One installer program, pointed at your app
We wrote one installer program - the base installer - and
every installer built here is that same program plus your settings. For example,
install_python_x.exe is that program, with settings that say "install the Python
package x". The code is identical in every copy and only the settings change, which
is why the program itself only has to be tested, hardened and signed once rather than once per app.
install_python_requests.exe -> installs the "requests" package install_python_black.exe -> installs the "black" package install_node_prettier.exe -> installs the "prettier" package
Three ways to ship
A signature here is on the installer program - the one we wrote, identical in every copy - and never on the software it installs. It works like the signature on a web browser: it says who wrote the browser and that this copy is unmodified, and nothing about the sites you visit. The program that asks for your trust at install time is ours and unaltered, so the screen it shows you can be believed.
We sign the installer
The fewest security warnings. Settings live in the file name, so renaming the file points it at a different package - and the signature stays valid, because it was never a claim about what gets installed.
You sign the installer
Your name and icon on the installer itself, with your own certificate and your own reputation.
Nobody signs it
Fully editable. Change what it installs, its name and its icon in your browser, without uploading the file.
Nothing hidden
Every installer, whoever signed it, shows what it will install, where it comes from, what it downloads, where the files go and who signed the installer file, before it changes anything. That screen - the one at the top of this page - is not a summary we wrote afterwards. It is read from the installer's own settings block, which is the same block the installer follows, so it cannot disagree with what happens next.
What that screen can prove, and what it cannot, is worth its own page: which parts are signed by us, which are the publisher's word, and how an installer checks any of it on a machine with no internet connection.