A custom desktop browser for TiddlyWiki 5 and TiddlyWiki Classic, based on nw.js
JavaScript
1,919
278 commits
updated Sep 1, 2026
TiddlyDesktop is a special purpose web browser for working with locally stored TiddlyWikis. See http://tiddlywiki.com/ for more details of TiddlyWiki.
See this video tutorial for an overview of installing and using TiddlyDesktop on Windows and OS X:
https://www.youtube.com/watch?v=i3Bggkm7paA
It is based on nw.js, a project created and developed in the Intel Open Source Technology Center:
Download the Windows, linux or Mac binary .zip files from:
https://github.com/TiddlyWiki/TiddlyDesktop/releases
Unzip into a folder and run TiddlyWiki.app or nw.exe and for linux nw
Note that TiddlyDesktop will not work correctly from a Windows UNC network share (eg \\MY-SERVER\SHARE\MyFolder). You should map the network share to a local drive, and run it from there.
Linux releases are also available in the AppImage format. The AppImages are compatible with glibc-based Desktop Linux distributions such as Ubuntu, Fedora, and Arch Linux. The AppImages are not compatible with musl-based Linux distributions such as Alpine Linux, nor are they compatible with Linux server distributions; Server distributions don't provide enough of the required dependencies.
To use an AppImage, your Linux distribution must provide fusermount3, which is typically provided in a package named fuse3.
Before you can execute an AppImage, you must set the executable permission:
chmod u+x tiddlydesktop-*-v*.AppImage
Note that AppImages are not currently included in TiddlyDesktop releases. The suggested workaround is to fork this repo in GitHub, and then push a dummy commit to the master branch. That will trigger the CI and produce an AppImage, which you can then access.
First add the repository to your inputs.
Point to main branch:
inputs = {
...
tiddly-desktop.url = "github:TiddlyWiki/TiddlyDesktop";
...
};
Point to a rev in main branch:
inputs = {
...
tiddly-desktop.url = "github:TiddlyWiki/TiddlyDesktop/9715840d450b4febec4c24c6fdbd4f74a80a5a12";
...
};
Point to a tag:
inputs = {
...
tiddly-desktop.url = "github:TiddlyWiki/TiddlyDesktop/refs/tags/v0.0.20";
...
};
Then your outputs should look something like this:
outputs = {...} @ inputs: {
# Don't forget to add nixpkgs to your inputs
nixosConfigurations."nixos" = inputs.nixpkgs.lib.nixosSystem {
...
specialArgs = {inherit inputs;};
modules = [
./configuration.nix
...
];
};
};
And finally, somewhere in your configuration.nix:
{inputs, pkgs, ...}: {
...
environment.systemPackages = [
# Note that if `pkgs.stdenv.hostPlatform.system` is anything
# other than x86_64-linux (e.g., your system is ARM), this will fail.
inputs.tiddly-desktop.packages.${pkgs.stdenv.hostPlatform.system}.default
];
...
}
First add the pin using your pinning tool.
We assume you are using npins for this example but this can also be done with other similar tools (lon, niv, nvfetcher).
Point to a branch:
npins add github TiddlyWiki TiddlyDesktop -b master
Point to a rev in main branch:
npins add github TiddlyWiki TiddlyDesktop -b master --at 9715840d450b4febec4c24c6fdbd4f74a80a5a12
Point to a tag:
npins add github TiddlyWiki TiddlyDesktop --at v0.0.20
Or point to latest release:
npins add github TiddlyWiki TiddlyDesktop
Then add the package to your systemPackages:
let
sources = import ./npins;
in {
environment.systemPackages = [
(import sources.TiddlyDesktop)
];
}
let
rev = "9715840d450b4febec4c24c6fdbd4f74a80a5a12"; # Or whatever rev you prefer
twdesktop = import (fetchTarball "https://github.com/TiddlyWiki/TiddlyDesktop/archive/${rev}.tar.gz") { };
in {
environment.systemPackages = [
twdesktop
];
}
To have separate mutliple instances of TiddlyDesktop (for example, separate Personal and Professional instances), you can pass the --user-data-dir argument. e.g. /opt/TiddlyDesktop/nw --user-data-dir=/mnt/data/TiddlyWiki/config. The property should be a directory to use for holding configuration data.
The F12 key opens the Chromium developer tools for the current window.
Instructions for Windows 10 64-bit (updates for other OSs welcome).
npm install --savegit tag v0.0.22, the version number you just updated in package.jsongit push origin v0.0.22 and a draft release will be createddownload-nwjs.sh to download the latest nw.js binariesbld.shoutput/mac/TiddlyWiki.app or output/win/nw.exe or output/linux32/nw or output/linux64/nw43 followers · starred Jun 2020
1,285 followers · starred May 2020
45 followers · starred Aug 2014
A custom desktop browser for TiddlyWiki 5 and TiddlyWiki Classic, based on nw.js
JavaScript
1,919
278 commits
updated Sep 1, 2026
TiddlyDesktop is a special purpose web browser for working with locally stored TiddlyWikis. See http://tiddlywiki.com/ for more details of TiddlyWiki.
See this video tutorial for an overview of installing and using TiddlyDesktop on Windows and OS X:
https://www.youtube.com/watch?v=i3Bggkm7paA
It is based on nw.js, a project created and developed in the Intel Open Source Technology Center:
Download the Windows, linux or Mac binary .zip files from:
https://github.com/TiddlyWiki/TiddlyDesktop/releases
Unzip into a folder and run TiddlyWiki.app or nw.exe and for linux nw
Note that TiddlyDesktop will not work correctly from a Windows UNC network share (eg \\MY-SERVER\SHARE\MyFolder). You should map the network share to a local drive, and run it from there.
Linux releases are also available in the AppImage format. The AppImages are compatible with glibc-based Desktop Linux distributions such as Ubuntu, Fedora, and Arch Linux. The AppImages are not compatible with musl-based Linux distributions such as Alpine Linux, nor are they compatible with Linux server distributions; Server distributions don't provide enough of the required dependencies.
To use an AppImage, your Linux distribution must provide fusermount3, which is typically provided in a package named fuse3.
Before you can execute an AppImage, you must set the executable permission:
chmod u+x tiddlydesktop-*-v*.AppImage
Note that AppImages are not currently included in TiddlyDesktop releases. The suggested workaround is to fork this repo in GitHub, and then push a dummy commit to the master branch. That will trigger the CI and produce an AppImage, which you can then access.
First add the repository to your inputs.
Point to main branch:
inputs = {
...
tiddly-desktop.url = "github:TiddlyWiki/TiddlyDesktop";
...
};
Point to a rev in main branch:
inputs = {
...
tiddly-desktop.url = "github:TiddlyWiki/TiddlyDesktop/9715840d450b4febec4c24c6fdbd4f74a80a5a12";
...
};
Point to a tag:
inputs = {
...
tiddly-desktop.url = "github:TiddlyWiki/TiddlyDesktop/refs/tags/v0.0.20";
...
};
Then your outputs should look something like this:
outputs = {...} @ inputs: {
# Don't forget to add nixpkgs to your inputs
nixosConfigurations."nixos" = inputs.nixpkgs.lib.nixosSystem {
...
specialArgs = {inherit inputs;};
modules = [
./configuration.nix
...
];
};
};
And finally, somewhere in your configuration.nix:
{inputs, pkgs, ...}: {
...
environment.systemPackages = [
# Note that if `pkgs.stdenv.hostPlatform.system` is anything
# other than x86_64-linux (e.g., your system is ARM), this will fail.
inputs.tiddly-desktop.packages.${pkgs.stdenv.hostPlatform.system}.default
];
...
}
First add the pin using your pinning tool.
We assume you are using npins for this example but this can also be done with other similar tools (lon, niv, nvfetcher).
Point to a branch:
npins add github TiddlyWiki TiddlyDesktop -b master
Point to a rev in main branch:
npins add github TiddlyWiki TiddlyDesktop -b master --at 9715840d450b4febec4c24c6fdbd4f74a80a5a12
Point to a tag:
npins add github TiddlyWiki TiddlyDesktop --at v0.0.20
Or point to latest release:
npins add github TiddlyWiki TiddlyDesktop
Then add the package to your systemPackages:
let
sources = import ./npins;
in {
environment.systemPackages = [
(import sources.TiddlyDesktop)
];
}
let
rev = "9715840d450b4febec4c24c6fdbd4f74a80a5a12"; # Or whatever rev you prefer
twdesktop = import (fetchTarball "https://github.com/TiddlyWiki/TiddlyDesktop/archive/${rev}.tar.gz") { };
in {
environment.systemPackages = [
twdesktop
];
}
To have separate mutliple instances of TiddlyDesktop (for example, separate Personal and Professional instances), you can pass the --user-data-dir argument. e.g. /opt/TiddlyDesktop/nw --user-data-dir=/mnt/data/TiddlyWiki/config. The property should be a directory to use for holding configuration data.
The F12 key opens the Chromium developer tools for the current window.
Instructions for Windows 10 64-bit (updates for other OSs welcome).
npm install --savegit tag v0.0.22, the version number you just updated in package.jsongit push origin v0.0.22 and a draft release will be createddownload-nwjs.sh to download the latest nw.js binariesbld.shoutput/mac/TiddlyWiki.app or output/win/nw.exe or output/linux32/nw or output/linux64/nw43 followers · starred Jun 2020
1,285 followers · starred May 2020
45 followers · starred Aug 2014