Disclaimer

Todtler is provided free of charge, as-is, with no warranty of any kind. While every release is built and tested before publishing, no guarantee is made that it will work correctly on your specific system, or that it is free of bugs, security vulnerabilities, or data-loss risk. Back up your files before opening them with new software, as a matter of general good practice. The macOS and self-hosted Flatpak builds are not distributed through an app store or official software repository, and have not been reviewed by Apple or Flathub. You're trusting the SHA-256 checksums on this page and the build process behind them, not a third-party reviewer. Verify checksums after downloading if that matters to you. Todtler is offered under a Pay What You Want model; downloading and using it does not obligate you to pay anything, now or later.

Download

Todtler is free to download and use. Pick whichever build matches your system below. Linux downloads are mostly single self-contained files; the macOS and Windows builds are ZIP archives containing everything needed to run Todtler, with no other dependencies.

Version 1.0 — June 22, 2026

Linux

AppImage — recommended for most people

The simplest option. No installation, no package manager involved. Download, mark it executable, run it from a terminal.

chmod +x TODTLER-x86_64.AppImage
./TODTLER-x86_64.AppImage

Or open a file directly:

./TODTLER-x86_64.AppImage mynovel.odt

Download AppImage (x86_64, glibc)

Requires a glibc-based Linux distribution with glibc 2.34 or newer (Debian 12+, Ubuntu 22.04+, Fedora 35+, and most distributions from 2022 onward). Not compatible with musl-based distributions such as Alpine Linux or Void Linux (musl variant); use the standalone musl binary instead. Also requires FUSE2 (libfuse.so.2), which most desktop distributions already include.

Flatpak

A good choice if you'd like Todtler sandboxed, or you already use Flatpak for other applications. This build is hosted here directly rather than through Flathub, so it won't appear in software-center search results. Download it from this page.

If Flatpak isn't installed yet, install it first:

sudo apt install flatpak          # Debian / Ubuntu / Raspberry Pi OS
sudo dnf install flatpak          # Fedora / RHEL
sudo pacman -S flatpak            # Arch
sudo apk add flatpak              # Alpine

Then add the Flathub remote (needed to fetch the runtime) and install the Freedesktop Platform runtime:

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub org.freedesktop.Platform//25.08

Then install and run Todtler:

flatpak install --user todtler-flatpak.flatpak
flatpak run com.renesmaal.todtler

Download Flatpak

The Freedesktop Platform runtime is a one-time ~250 MB download shared across all Flatpak apps that use it. If you already have other Flatpak apps installed, it may already be present. Since this build isn't distributed via Flathub, updates won't arrive via flatpak update. Check back on this page for new releases.

Standalone binaries

For 32-bit systems, musl-based distributions (such as Alpine or Void's musl variant), or anyone who'd rather run a plain binary without AppImage or Flatpak involved at all:

chmod +x todtler-64bit-glibc
./todtler-64bit-glibc

Choose glibc for Debian, Ubuntu, Fedora, Arch, and most mainstream distributions. Choose musl for Alpine Linux or Void's musl variant. If you're not sure which your system uses, glibc is correct for the large majority of desktop installs.

These binaries link against the system's Python shared library. If Todtler fails to start with a libpython not found error, install the matching library for your Python version, for example on Debian/Ubuntu:

python3 --version           # note the version, e.g. 3.11
sudo apt install libpython3.11

On Fedora/RHEL: sudo dnf install python3-libs. On Arch: sudo pacman -S python. Substitute the correct version number where applicable.

On Alpine or Void (musl variant), the shared library ships as part of the regular python3 package rather than a separate versioned package, so no version-matching is needed:

sudo apk add python3       # Alpine
sudo xbps-install -S python3   # Void

AppImage — 32-bit x86 (i386)

An alternative to the standalone 32-bit (glibc) binary above. Same self-contained AppImage format as the 64-bit build, bundling its own Python runtime. No installation, no package manager, no system library dependencies to satisfy.

chmod +x TODTLER-i386.AppImage
./TODTLER-i386.AppImage

Download AppImage (i386)

Requires a 32-bit x86 (i386) Linux distribution with glibc. Also requires FUSE2 (libfuse.so.2), which most desktop distributions already include.

Raspberry Pi (ARMv6 / Pi 1 & Zero)

32-bit build for Raspberry Pi 1, Raspberry Pi Zero, and Raspberry Pi Zero W. Requires a 32-bit Raspberry Pi OS (ARMv6).

Download for Raspberry Pi (ARMv6)

If Todtler fails to start with a missing library error, install the Python shared library first:

python3 --version           # note the version, e.g. 3.9
sudo apt install libpython3.9

Raspberry Pi (ARM64 / Pi 3, 4 & 5)

Native 64-bit build for Raspberry Pi models 3, 4, and 5 running a 64-bit Linux operating system (such as Raspberry Pi OS 64-bit). Compiled on a Raspberry Pi 4 (Cortex-A72). Compatible with ARM64 Linux distributions.

Download for Raspberry Pi (ARM64)

Requires a 64-bit Raspberry Pi OS (Bookworm or Bullseye). If Todtler fails to start with a missing library error, install the Python shared library first:

python3 --version           # note the version, e.g. 3.9
sudo apt install libpython3.9

Substitute the version number shown by python3 --version if it differs from the example above.

macOS

Two builds are available: one for Apple Silicon (M1 and newer), one for Intel Macs. Check which you have under Apple menu → About This Mac.

Download the ZIP archive, extract it, then open Terminal and change into the extracted folder:

cd TODTLER-macos-arm64
xattr -dr com.apple.quarantine .
./todtler

The quarantine step only needs to be done once. If macOS still blocks Todtler, go to System Settings → Privacy & Security, scroll down, and click Open Anyway.

Download for macOS (Apple Silicon)

Download for macOS (Intel)

Requires macOS 10.13 (High Sierra) or later.

Windows

Download the ZIP archive and extract the whole thing into its own folder. Not just todtler.exe on its own. It needs several other files alongside it (the Python runtime, curses support, standard library) to start.

cd todtler-windows-x86_64
.\todtler.exe

Double-clicking todtler.exe after extracting also works. Unlike the Linux and macOS builds, it opens its own console window automatically, no need to launch a terminal first.

Download for Windows (x86_64)

Requires 64-bit Windows 10 or 11. Keep the whole extracted folder together. Moving todtler.exe elsewhere on its own will not work.

Latest builds — Last update: today (v1.1.068)

Latest daily builds from the current development branch. These reflect work in progress and may be unstable, incomplete, or broken in unexpected ways. Not recommended for regular use. Merely intended for testing and feedback purposes.

My system is… Download this
64-bit Linux, most distros (Debian, Ubuntu, Fedora, Arch…) AppImage
64-bit Linux, musl-based (Alpine, Void musl…) 64-bit (musl)
64-bit ARM Linux (Raspberry Pi 3/4/5 with 64-bit OS, ARM servers…) AppImage (aarch64)
32-bit Linux, glibc-based AppImage (i386)
32-bit Linux, musl-based 32-bit (musl)
Raspberry Pi 2, 3, or 4, 32-bit OS AppImage (armhf)
Raspberry Pi 1, Zero, or Zero W (ARMv6) tar.gz (armv6)
Sandboxed install, or already using Flatpak Flatpak
macOS (Apple Silicon M1 and newer) Download for macOS (Apple Silicon)
Windows 10 or 11 (64-bit) Download for Windows

AppImage — recommended for most people on 64-bit x86 Linux

The simplest option. No installation, no package manager involved. Download, mark it executable, run it from a terminal.

chmod +x TODTLER-x86_64.AppImage
./TODTLER-x86_64.AppImage

Or open a file directly:

./TODTLER-x86_64.AppImage mynovel.odt

Download AppImage (x86_64, glibc)

Requires a glibc-based Linux distribution with glibc 2.34 or newer (Debian 12+, Ubuntu 22.04+, Fedora 35+, and most distributions from 2022 onward). Not compatible with musl-based distributions such as Alpine Linux or Void Linux (musl variant); use the standalone musl binary instead. Also requires FUSE2 (libfuse.so.2), which most desktop distributions already include.

Flatpak

A good choice if you'd like Todtler sandboxed, or you already use Flatpak for other applications. This build is hosted here directly rather than through Flathub, so it won't appear in software-center search results. Download it from this page.

If Flatpak isn't installed yet, install it first:

sudo apt install flatpak          # Debian / Ubuntu / Raspberry Pi OS
sudo dnf install flatpak          # Fedora / RHEL
sudo pacman -S flatpak            # Arch
sudo apk add flatpak              # Alpine

Then add the Flathub remote (needed to fetch the runtime) and install the Freedesktop Platform runtime:

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub org.freedesktop.Platform//25.08

Then install and run Todtler:

flatpak install --user todtler.flatpak.flatpak
flatpak run com.renesmaal.todtler

Download Flatpak

The Freedesktop Platform runtime is a one-time ~250 MB download shared across all Flatpak apps that use it. If you already have other Flatpak apps installed, it may already be present. Since this build isn't distributed via Flathub, updates won't arrive via flatpak update. Check back on this page for new releases.

Standalone binaries

For musl-based distributions, or anyone who'd rather run a plain binary without AppImage or Flatpak involved at all. For 32-bit x86 or ARM systems on a glibc-based distribution, use the AppImage builds instead. See the table above.

chmod +x todtler-64bit-musl
./todtler-64bit-musl

These are for Alpine Linux, Void's musl variant, and similar musl-based distributions. If you're on a glibc-based distribution (Debian, Ubuntu, Fedora, Arch, and most mainstream ones), use the AppImage builds instead. See the table above for the 32-bit and 64-bit x86 links, or the Raspberry Pi sections below for ARM.

AppImage — 32-bit x86 (i386)

For 32-bit x86 Linux systems on a glibc-based distribution. Same self-contained AppImage format as the 64-bit build above. No installation, no package manager, bundles its own Python runtime.

chmod +x TODTLER-i386.AppImage
./TODTLER-i386.AppImage

Download AppImage (i386)

Requires a 32-bit x86 (i386) Linux distribution with glibc. Also requires FUSE2 (libfuse.so.2), which most desktop distributions already include.

Raspberry Pi & other ARM — 64-bit OS

For Raspberry Pi 3, 4, or 5 running a 64-bit OS (such as Raspberry Pi OS 64-bit), or any other 64-bit ARM Linux system. Same self-contained AppImage format as the x86_64 build above. No installation, no package manager, bundles its own Python runtime.

chmod +x TODTLER-aarch64.AppImage
./TODTLER-aarch64.AppImage

Download AppImage (aarch64)

Requires a 64-bit ARM (aarch64) Linux distribution with glibc — Raspberry Pi OS 64-bit (Bookworm or Bullseye), Debian/Ubuntu arm64, and similar. Also requires FUSE2 (libfuse.so.2), which Raspberry Pi OS and most desktop-oriented distributions already include.

Raspberry Pi 2, 3, or 4 — 32-bit OS

For Raspberry Pi 2, 3, or 4 running the 32-bit OS. This build targets ARMv7, the baseline Debian's own "armhf" architecture requires. It will not run on the original Pi, Pi Zero, or Pi Zero W (see below for those).

chmod +x TODTLER-armhf.AppImage
./TODTLER-armhf.AppImage

Download AppImage (armhf)

Requires a 32-bit ARM Linux distribution with glibc and a hard-float ABI, ARMv7 or later. Standard on 32-bit Raspberry Pi OS for the Pi 2, 3, and 4. Also requires FUSE2 (libfuse.so.2), which Raspberry Pi OS already includes.

Raspberry Pi 1, Zero, or Zero W (ARMv6)

The original Pi, Pi Zero, and Pi Zero W use an ARMv6 CPU, which is a strictly older instruction set than the ARMv7 baseline the standard armhf build above requires. Running that build on this hardware fails immediately. This build targets ARMv6 directly (via Raspbian's own toolchain, the same reason Raspbian exists as a distribution separate from Debian's own armhf port). It's distributed as a plain tarball rather than an AppImage, since the standard AppImage runtime itself isn't guaranteed to be ARMv6-compatible.

tar xzf TODTLER-armv6.tar.gz
./TODTLER.AppDir/AppRun

Download tar.gz (armv6)

Requires a 32-bit Raspberry Pi OS install on a Pi 1, Zero, or Zero W. No FUSE or AppImage support needed: it's a self-contained folder, so feel free to move or rename it after extracting.

macOS

Available for Apple Silicon (M1 and newer). Check your platform under Apple menu → About This Mac.

Download the ZIP archive, extract it, then open Terminal and change into the extracted folder:

cd TODTLER-macos-arm64
xattr -dr com.apple.quarantine .
./todtler

The quarantine step only needs to be done once. If macOS still blocks Todtler, go to System Settings → Privacy & Security, scroll down, and click Open Anyway.

Download for macOS (Apple Silicon)

Requires macOS 10.13 (High Sierra) or later.

Windows

Download the ZIP archive and extract the whole thing into its own folder. Not just todtler.exe on its own. It needs several other files alongside it (the Python runtime, curses support, standard library) to start.

cd todtler-windows-x86_64
.\todtler.exe

Double-clicking todtler.exe after extracting also works: it opens its own console window automatically, no need to launch a terminal first.

Download for Windows (x86_64)

Requires 64-bit Windows 10 or 11. Keep the whole extracted folder together. Moving todtler.exe elsewhere on its own will not work.


Verifying your download

Each release is published with SHA-256 checksums. After downloading, you can confirm your file matches:

shasum -a 256 TODTLER-x86_64.AppImage
— Compare against the published checksums for the 1.0 release

1fd1f896848ffa5ac16a6a48f6d837289ebe45ca3a95229eae6ff463c643113c  TODTLER-i386.AppImage
8bb2fb1687d881249afd99314458b517649d886e601e88f8415b63596cb3317a  TODTLER-macos-arm64.zip
7c8d36f298da810aa2d7021b093b46b846e0f9cc768e3a5384c86d0cb3f7e601  TODTLER-macos-x86_64.zip
35e82129e719d989a1df0bb080e1eb6f73caba3f801e03cc05e788c5256075f1  TODTLER-x86_64.AppImage
0d7904760d65444ea13b2aa12fe57a415b0b57bd63d025e33d211407c824c219  todtler-32bit-musl
4693e457f610ea86d40c2ddc91c4f3bf95c0b6442b30894aa22b94be16ac2b3f  todtler-64bit-musl
8e01fa201071d9863365f10100583258665cce8eff4c98eb6d78df44c3fdc07b  todtler-flatpak.flatpak
a4261fe17bdcf714b137e4610d6af42348c9083550d2cd17f0971e1b56b19aaa  todtler-macos-arm64
dd622d62ffc37fea8d2c67ac33f7c4e32e5091e750804ef63aa9c8a500e58921  todtler-rpi-arm64
acf55fbeb5d2d74b734f716480112b063f2dd9fc5ceddf402608c27ecf4b209a  todtler-rpi-armv6
cd90541e96ba657dbb75a593690ac0b8972464c6adc80d20ce4663510ceeba97  todtler-windows-x86_64.zip

Requirements

Todtler runs in any modern terminal emulator. It works best in kitty, foot, WezTerm, or xterm. These support font size adjustment from within Todtler. It also runs on the raw Linux framebuffer console.

Todtler must be launched from an actual terminal window: double-clicking it from a file manager or Finder won't do anything useful, since it's a full-screen terminal application rather than a graphical one.

Keyboard shortcuts

Todtler is entirely keyboard-driven. Press Ctrl+Space at any time to see the full shortcut reference. All shortcuts can be remapped by editing ~/.configkeys.conf.

Troubleshooting

Todtler won't start, or exits immediately: Make sure you're running it from an actual terminal window, not by double-clicking. Todtler needs a real terminal to draw its interface.

"libpython3.x.so.1.0: cannot open shared object file": The standalone and Raspberry Pi binaries link against the system Python shared library, and the version they need may not be available in your distribution's repositories yet. The easiest fix is to use the AppImage instead. It bundles its own Python runtime and has no such dependency. The only thing it needs that may not be present on a minimal or headless install is FUSE2:

ls /usr/lib/x86_64-linux-gnu/libfuse.so.2 2>/dev/null || echo "not found"

If it prints "not found":

sudo apt install libfuse2

Then download the AppImage, make it executable, and run it:

chmod +x TODTLER-x86_64.AppImage
./TODTLER-x86_64.AppImage

If you specifically need a standalone binary rather than the AppImage, check whether your system is 64-bit first (getconf LONG_BIT), and make sure you've picked the build matching your C library — glibc (Debian, Ubuntu, Fedora, Arch, Raspberry Pi OS…) or musl (Alpine, Void's musl variant). As a last resort, install the matching Python library directly. Substitute the version number shown in the error message:

sudo apt install libpython3.9   # Debian / Raspberry Pi OS
sudo dnf install python3-libs   # Fedora / RHEL
sudo pacman -S python           # Arch

On Alpine or Void (musl variant), the shared library is part of the regular python3 package rather than a separate versioned one:

sudo apk add python3           # Alpine
sudo xbps-install -S python3   # Void

A cursor or curs_set() related error appears: This is usually caused by your terminal's TERM setting. Try launching Todtler with a more complete terminal type:

TERM=xterm ./TODTLER-x86_64.AppImage

If that resolves it, you can make it permanent by adding export TERM=xterm to your shell profile.

"Permission denied" after chmod +x: Check whether the file is stored on a partition mounted with the noexec flag (some /tmp directories and removable drives use this). Move the file to your home directory and try again.

AppImage specifically refuses to run: Confirm FUSE2 is installed (libfuse.so.2). Most desktop distributions include it by default, but minimal or server installs sometimes don't.

macOS (Apple Silicon)

"todtler" cannot be opened because it is from an unidentified developer, or Todtler is silently blocked without launching: this is Gatekeeper reacting to the quarantine flag macOS attaches to anything downloaded from a browser. Clear it once, from Terminal, in the folder you extracted:

cd TODTLER-macos-arm64
xattr -dr com.apple.quarantine .

If macOS still objects after that, go to System Settings → Privacy & Security, scroll down to the blocked-app notice, and click Open Anyway, then try launching Todtler again.

"Killed: 9" and the terminal returns immediately, with no other output: this means macOS's kernel refused to run a binary or one of its bundled libraries because its code signature doesn't check out. Apple Silicon enforces this for every executable, not just ones downloaded from the internet. Re-signing everything in the bundle yourself (ad-hoc, no Apple Developer account needed) usually clears it:

cd TODTLER-macos-arm64
codesign --force --deep --sign - .

Then try running it again. If this keeps happening on a specific machine, it's worth checking whether that Mac has System Integrity Protection disabled or unusual security software intercepting code-signing checks, since those are the two situations that most often confuse Gatekeeper here.

"Library not loaded" or "dyld: Symbol not found": this means a bundled dependency is still pointing at a path from the machine it was built on, rather than a self-contained reference. This shouldn't happen with current builds. If you hit it, please report it with the exact error text, since it usually points to a specific library the build script missed bundling correctly.

A cursor or terminal-capability related error appears (e.g. Todtler complains it can't find terminal capabilities): try launching with a more complete terminal type:

TERM=xterm-256color ./todtler

"Permission denied" after chmod +x: Check whether the file is stored on a partition or network share mounted in a way that blocks execution (some external drives formatted for other systems do this). Move the extracted folder to your home directory and try again.

Windows

todtler.exe won't start, or a missing-DLL error appears: make sure the entire ZIP archive was extracted into its own folder, and that you're running todtler.exe from inside that folder rather than a copy moved elsewhere. It needs python311.dll and several other files to sit right alongside it.

A message about a missing VCRUNTIME140.dll (or similar): install the Microsoft Visual C++ Redistributable — a small, common Microsoft download that many other applications also rely on.


Todtler is free under a Pay What You Want model. If it earns a place in your writing life, please consider supporting it.