Skip to content

Overview

taskstream is a local-first task manager for macOS and Linux. Nested tags, an embedded AI agent pane, Todoist sync, and a keyboard-first workflow — all running offline.

What it is

taskstream is a task manager that keeps your lists on your own machine and stays fully usable with no network at all. Organize work into nested tags, projects, and areas; set repeats through a picker instead of memorizing syntax; hand work to the docked agent pane; and let long-running efforts carry their own staged workflows.

Everything in the core loop — listing, editing, repeating, and reordering tasks — works offline and is driven from the keyboard. Network features are opt-in extras: connect Todoist or GitHub sync, or give the agent a model provider, and each one brings its own credentials without ever gating the task list itself.

The taskstream desktop app: a task list on the left, task details in the middle, and the agent pane on the right.
The desktop app: task list, task details, and the agent pane.

Highlights

Automations1 recipe · 2 active runs
Coding workflowEnabled

Five phases, each a step you complete. The agent works inside a phase; you decide when it ends.

Add OAuth loginRound 2 · Implement
InterviewSpecImplementReviewMerge
Branch feature/42-add-oauthBase main
  • Round 1 rejected · error paths are not covered
  • Spec saved · docs/spec/add-oauth-spec.md
Complete step
Map Todoist sections onto tagsRound 1 · Interview
InterviewSpecImplementReviewMerge
Branch not proposed yetBase main
  • Interview round 1 · asking clarifying questions
ApproveReject
Branches to clean up
feature/old-notes-panerun cancelledDelete
The automations pane: a recipe, the runs under it with the phase each one has reached, and the branch cleanup a coding run leaves behind.

Your data stays yours

Your tasks live on your machine, and that copy is the one the app trusts. Sync is a layer on top: when you connect an outside system, the app maps your tasks onto it and reconciles changes in both directions — but a sync that fails never breaks the list, and you keep working offline until it catches up.

The same opt-in rule holds for the agent: nothing needs configuring to use the local lists, and the agent only starts working once you pick a provider and give it a key. SeeConfiguration for providers and accounts, andthe roadmap for what is shipped versus planned.

Working on the code?
How the workspace is laid out, which crate owns what, and how to run it all live in the contributor guide — start with Architecture.

Where to start

Using the app

You want to run taskstream and get your tasks into it.

Edit this page on GitHub