Install and run
Download a prebuilt bundle for macOS, Linux, or Windows, or build taskstream from source.
Download a bundle
Every release carries one bundle per platform, named after its version. The newest is the latest release: all downloads and versions.
The downloads page picks the right file for the machine you are on. From here, pick your platform below — each link points at the newest matching file.
macOS
.dmg— Disk image: open it and drag taskstream into Applications..zip— Archive: unzip it and move taskstream.app into Applications.
- Download the
.dmgand open it, or download the.zipand unzip it. - Drag
taskstream.appinto your/Applicationsfolder. - Open the app once. Gatekeeper stops an unsigned build the first time: go toSystem Settings → Privacy & Security, scroll to the security notice, and choose Open Anyway. Right-clicking the app in the Finder and choosingOpen does the same thing.
Linux
.AppImage— Portable: make it executable and run it. No install step..deb— Debian and Ubuntu: install it with your system installer..tar.gz— Tarball: unpack it and run usr/bin/taskstream.
The AppImage runs without installing anything. The other two fit the usual layouts: the .deb installs under /usr, and the tarball unpacks anywhere.
# Make it executable and run it; there is no install step.
chmod +x taskstream-<version>-linux-x86_64.AppImage
./taskstream-<version>-linux-x86_64.AppImage# Installs into /usr; the package carries its own libraries.
sudo apt install ./taskstream-<version>-linux-x86_64.deb
taskstreamtar -xzf taskstream-<version>-linux-x86_64.tar.gz
./taskstream/usr/bin/taskstreamWindows
.zip— Archive: unzip it and run taskstream.exe.
- Download the
.zipand extract it. - Run
taskstream.exe. SmartScreen may warn about an unsigned build the first time: choose More info, then Run anyway. The archive is self-contained — nothing to install and nothing to clean up.
First launch
The app starts with an empty database. Nothing leaves your machine: there is no account to create and no telemetry, and the network features stay off until you configure them.
- Tasks, tags, and projects — the four pages that follow cover the app itself, from the task list to the agent pane.
- Configuration — the in-app settings panes, plus model providers, Todoist, and GitHub credentials.
A task list works offline out of the box; sync and the agent are the parts that need credentials.
From source
Everything below builds taskstream from a checkout instead of downloading a bundle. Use it if you are working on the code, if your platform has no bundle, or if you would rather not run a prebuilt binary.
What you need
| You need | Details |
|---|---|
| macOS | macOS 12 or newer. The bundle sets that as its minimum system version. |
| Linux | The Rust crates build on Linux; GPUI needs the platform graphics and input libraries. |
| Windows | Windows 10 or newer. The GPUI backend compiles its shaders with the Windows SDK. |
| Rust | A toolchain new enough for edition 2024 (1.85+), plus the platform GUI dependencies. |
| Nix (optional) | The dev shell provides the pinned toolchain, cargo-watch, Node, and pnpm — see Development setup. |
The least fiddly path is the development shell, because it brings the toolchain and every helper command with it. Development setup walks through installing Nix and direnv; if you already have a workable Rust toolchain, you can skip it.
Run it from a checkout
git clone https://github.com/lofi-tools/todo-lofi.git
cd taskstream
# Run the desktop app
cargo run -p taskstream-desktopBuild a macOS app
On macOS, the dev shell's t2-bundle assembles a real taskstream.app for you — it builds the binary, copies the icon and Info.plist into the bundle, writes the Cargo.toml version into the bundle's Info.plist, signs it with thetaskstream-dev identity when that certificate exists, and clears the quarantine flag. It assembles the bundle without launching it.
That is also how release builds are produced, so it is the closest thing to a local install. For everyday development, run the raw binary instead (t2, or cargo run -p taskstream-desktop) — see the command reference.
taskstream-desktop --version prints the version the build was made from, and the same number is shown in the app's Settings → About pane.