A local-first task manager and personal archive for Windows and
macOS.
No accounts. No telemetry. No server. Your tasks, notes and
documents stay as plain files on your own disk.
English · Español
Prefer a direct download? GitHub Releases carries the signed installers — Windows (.exe) · macOS (.dmg)
Tisty is a free, open source task manager for Windows and macOS, built on one idea: a finished task is worth more than the tick that closes it. Most to-do apps are a list you cross out — the moment you complete something, the steps you took, the notes you wrote and the documents you leaned on go with it. Tisty archives all of that instead, and search reaches every word of it.
This is not a company product. I am a developer who kept solving the same problem twice, so I built the personal task manager I wanted and gave it away. No ads, no telemetry, no accounts, no subscriptions — just a local-first productivity tool that lives on your machine and nowhere else.
Why people choose Tisty over other task managers:
- 100% local — your tasks, your journal and your documents never leave your computer. No cloud, no server, no account.
- Truly free — no premium tier, no feature gates, no trial. AGPL v3, and commercial terms only for organisations that cannot comply with it.
- Your data outlives the app — plain text and Markdown on your own disk,
readable with
catand searchable withgrep. - Finishing keeps everything — completing a task moves it to the archive with its steps, its notes and its attachments intact, documents included.
- Fast and native — a Rust core inside a Tauri window: it starts quickly, stays small, and looks like it belongs on both systems.
I use Tisty every day on macOS and Windows. If something feels off, open an issue — this project keeps improving because of real-world use.
It is for one person, by design. No assignees, no permissions, no boards. If you need to run a team, Tisty will not carry that.
- Why I Built This
- What It Is / What It Isn't
- Who Is This For?
- The Idea It Is Built On
- Getting Started
- What It Does
- Your Data and Privacy
- Two Machines, If You Have Two
- A Command Line, If You Want One
- Where It Stands
- What It Will Never Do
- Other Tools by the Same Author
- Standing On
- Contributing
- Licence
Organising your day is harder than a list makes it look. There are more moving parts than fit in your head, plans shift under you, and something you thought was small turns out not to be. Which is why finishing it feels good.
But look at what the task gathered on the way. The steps it actually took. The notes you wrote while working it out. What you looked up, what it turned out to connect to, the documents you leaned on. That is where the effort went.
Mine looked like "fix the intermittent timeouts on save". By the time it was done it had collected the ticket, the commit, and two paragraphs explaining that the real cause was a missing index on a table nobody was looking at.
Eight months later the same thing happened somewhere else. I remembered solving it. I could not remember how — and the note that held the answer had gone with the tick.
That is the whole reason Tisty exists. A task is not a line you cross out. It is a tree: the steps, the journal, the files and the documents that grew around it while you worked. Finishing it should not prune it.
I wanted it to stay mine, too. On my disk, in files I can open without asking anyone. So I built the thing I wanted, used it until it stopped annoying me, and put it here in case it is the thing you wanted too.
It is a personal task manager where finishing something is the beginning of its useful life. Tasks carry a description, a journal, steps and attachments; when you complete one it moves to the archive, and search reaches all of it, documents included.
It is for one person. No assignees, no permissions, no boards. If you need to run a team, Tisty will not carry that, and you deserve to know before you install it rather than after.
It is not something I sell. Nothing is locked, nothing expires, and there is no version of this with more in it. It is a program I wrote for myself and gave away.
Your data is files. Plain text on your own disk, readable with cat and
searchable with grep. If Tisty disappeared tomorrow, everything you wrote
would still be there and still make sense.
Someone who works alone, or mostly alone, and whose tasks leave a trail worth keeping. Developers, sysadmins, freelancers, researchers, students — anyone who has ever solved the same problem twice and known it the second time.
If what you want is a list to cross out and never open again, Tisty will feel like more than you asked for. That is a fair reason to walk away.
A completed task is not finished. It is archived.
It stops being a reminder of what to do and becomes the record of how something got solved. Three things follow from that, and they shaped everything else:
- Search is the main way into the archive, not a side feature.
- Deleting is the exception. The normal ending is completing, which keeps it. Erasing something for good takes two deliberate steps first: it has to be archived, and then hidden.
- Capture has to stay instant, because most tasks are not like that at all. The call you have to make tomorrow is born and dies within a day and leaves nothing worth keeping — and writing it down must not cost more than one line.
Windows — from the Microsoft Store, which keeps it updated for you.
macOS — with Homebrew. The tap is added once and never again; after that, Tisty updates like anything else you have installed:
$ brew tap rgdevment/tap
$ brew install --cask tisty
$ brew upgrade --cask tistyOr take the disk image and the installer straight from Releases, on either system.
The first time it opens, Tisty asks four things — which language, where your copies should go, whether it may wake you for a reminder, and what closing the window ought to mean — and then writes you a guide. The guide is a document in your own store, in a folder of its own: yours to read, edit, or throw away like anything else you wrote. Settings brings the welcome back, opens the guide again, and changes the language, which starts as your system's.
Three columns at most: what you are looking at, the list, and the task you opened. Nothing else on screen.
It reads what you write. You type a sentence and Tisty takes the date out of it, leaves the sentence readable, and shows you what it understood before anything is saved — as chips you can correct with one click.
"ship the release tomorrow at 10" → tomorrow 10:00
"file the report before friday" → due fri
"book the flights @travel #urgent" → @travel · #urgent
A day, a time, or both. Names, distances, plain dates. What it cannot read it leaves alone rather than guess. A deadline is a different thing from a plan, and three words open one: before, due, until.
A task opens beside the list, not on top of it: dates, list, tags, priority, a description and a journal in Markdown, steps you tick one at a time, and whatever you dropped on it. Completing it puts none of that out of reach.
Priorities are a matrix, not a ladder. Tisty borrows the four quadrants of the Eisenhower matrix — the method President Dwight D. Eisenhower is credited with, popularised by Stephen Covey in The 7 Habits of Highly Effective People: sort what you have by urgent against important, and each quadrant tells you what to do with it. Do what is urgent and important, Schedule what matters and is not urgent, Delegate what is urgent and is not yours, and leave in Minor whatever you could live without — when you are sure, one button drops the lot.
Drag a task into its quadrant, or type it: !do, !schedule, !delegate.
!decide still works, because it is what the quadrant used to be called. Each
quadrant has a + that opens the quick capture with that quadrant already
set, and whatever nobody has placed waits in a tray that opens the way you
left it.
Documents live beside the tasks, for reference material that has no date and never gets ticked. They are Markdown files you edit as documents — tables, checklists, code, images — and search reads them too. A task can point at a document; a document never creates tasks.
Text can be highlighted in a few colours, centred or aligned, and set apart as an aside. It stays Markdown: where Markdown cannot say a thing, Tisty writes the small piece of HTML that can, and reads it back.
The writing sits on a lit page, and its first line is both the name of the
document and its title. When the window is wide enough a column opens beside it
with what the document is, the formatting the / menu used to hide, and its
outline. Tisty makes its own PDF — A4, Letter or one endless sheet, with its
own margins and the attachments carried inside — and shows it to you before you
export it.
A global shortcut opens a small field over whatever you are doing, so a task that occurs to you mid-something does not cost you the something.
Repeating tasks come back one occurrence at a time, so the archive shows you did it twelve times — and it counts what was owed rather than only what you closed, so a routine reads 26 of 30 with four dates that have no record. Marking one days late offers those dates back instead of calling them forgotten: tick the ones you did and the gap closes. Reminders arrive as a system notification and a short sound you can turn off. The whole window works from the keyboard.
The archive is read in three layers. The ones that taught something come with their whole trail — what changed, when, and what you wrote along the way. The routines come with their tallies, their streaks and the hour you usually keep them. The rest is the trace: what left nothing written, listed dense and out of the way, because it still happened and search still reaches it.
Everything lives in one folder on your disk: an append-only log of what
happened, your documents as .md files, and your attachments as themselves.
Nothing is obfuscated and nothing is in a format only Tisty can read.
Nothing is encrypted at rest, and that is a decision rather than an oversight — your operating system's permissions are the protection, and the files stay readable with tools you already have. It is written out in PRIVACY.md and SECURITY.md, including the parts that are not reassuring.
Tisty makes one network request in its life: once a day it checks whether a newer version exists. It sends nothing, and you can turn it off.
Point Tisty at a folder both computers already reach — whatever your Google Drive, OneDrive or iCloud client keeps in step, a NAS, a drive you plug in on Fridays — and it does the rest on its own.
There is nothing of mine in the middle: no account, no server, no daemon. Who runs that folder is your business, not Tisty's. If you sync nothing, it never opens a connection at all.
Two machines can genuinely write the same document at once, and there Tisty merges them block by block — you edit the introduction on one, someone edits the closing paragraph on the other, and both land with nothing to answer. Only a real overlap becomes a question.
Or back up by hand. One zip, kept wherever you like.
And because what uploads that folder is your provider's program and not Tisty, if you ever change something on one machine and it does not turn up on the other, FAQ.md lists the causes worth checking, in order.
The window is the main way in. But everything it does, the terminal does too: the same store, the same tasks, the same natural language. It exists because I wanted it, and it is entirely optional.
$ tisty "call the bank at 3"
$ tisty ls today
$ tisty done 2Settings puts it within reach of your terminal, or you can install only the
command with brew install rgdevment/tap/tisty-cli and never open the window.
| ✅ | Tasks, lists, tags, steps, journal, attachments, search |
| ✅ | An archive read in three layers, with what each task left behind |
| ✅ | Natural language for dates, deadlines and repeats |
| ✅ | The window, the tray, and quick capture on a global shortcut |
| ✅ | Documents: editor, folders, and sync that merges block by block |
| ✅ | Reminders, backup, and sync through a folder both machines reach |
| ✅ | A guided welcome, a guide written into your store, English and Spanish |
| ✅ | macOS: signed and notarised. Windows: signed installer |
| ◐ | Daily use, which is what turns up the bugs tests do not |
| ◐ | The Microsoft Store listing, whose screenshots have to be retaken on Windows |
Two things are known and accepted rather than pending: you cannot reorder by hand in the window — HTML drag and drop does not survive the native file drop that attachments need, and attachments were the better trade — and nothing has been tested with a real screen reader, though the keyboard path has.
As important as the list above. Permanently out of scope: real-time collaboration, kanban boards, Gantt charts, time tracking, productivity metrics, databases with typed properties and formulas, and AI anywhere in the critical path.
The natural language stays deterministic and local. Nothing is ever sent to a model.
Same idea, same terms: free, open source, no ads, no telemetry, everything local.
- CopyPaste — a clipboard manager for Windows, macOS and Linux.
- LinkUnbound — a browser selector for Windows and macOS: it asks which browser should open a link instead of assuming.
Tisty is small because other people's work does the heavy lifting.
The core, in Rust — Tauri puts a native window around it without shipping a browser; serde reads and writes every line of the log; jiff does the dates and the time zones, which is the part nobody should write twice; SQLite, through rusqlite, holds the read cache; clap is the command line; ULID gives every task an identifier that sorts by time and needs no coordination.
The window — React draws it and Tailwind CSS styles it; TipTap and ProseMirror are the document editor; markdown-it renders the prose everywhere else; Vite builds it and Vitest tests it.
The full list, with versions and licences, is in Cargo.lock and
app/package-lock.json.
How the store, the merge and the sync actually work is written down in ARCHITECTURE.md — a reference for the behaviour, not a tour of the code.
Read CONTRIBUTING.md. Open an issue before writing code for anything beyond a fix: Tisty is deliberately minimal, and a well-written feature can still be declined — usually because it would make the tool something other than what it is.
AGPL-3.0, and available under commercial terms for organisations that cannot comply with it.
The signed builds in the app stores carry their own terms, because the stores' do not accept the AGPL — DISTRIBUTION.md says which applies to what you have, and why. Nothing is withheld from the source either way.




