Local-first
Everything lives in one JSON file on your disk, rotated into timestamped backups. Works on a plane. Nothing to sign up for.
Board, calendar, docs and notes for engineers — a single Qt 6 binary that knows which git branch you’re on. Your work stays in one file on your own disk. No account, no server, no telemetry.
Free and open source · MIT · Windows, macOS, Linux
A live board — click or drag a card to move it. Open the full sandbox for the week, notes andCtrl K.
Four decisions shape everything in heap. — and they are why it opens instantly and never asks you to log in.
Everything lives in one JSON file on your disk, rotated into timestamped backups. Works on a plane. Nothing to sign up for.
Switch branches and the matching card lights up, with branch and PR state on the board. No manual linking.
A command palette for everything, Vim-style card navigation, quick capture from any app. Every shortcut is rebindable.
A native binary, not a browser in disguise. Nothing runs in the background, and the Linux AppImage carries its own Qt.
Kanban columns you drag between, priority chips, recurring tasks, a timeline by deadline and an archive.

Week and month views, a day calendar with drag-to-create, focus blocks, repeating events, .ics in and out.

Markdown notes with folders and a daily note, [[wiki-links]] and backlinks, docs, snippets and contacts.

GitHub, GitLab, Jira, Trello and eight more trackers, mirrored as cards. Mattermost for your contacts.

Ctrl+K over everything, one-line quick capture from any app that books meetings and focus blocks, a git-aware board and profiles.

heap. watches your working copy. Check out a branch that carries a task id and the card is matched, decorated with the branch, and a focused-repo banner shows branch and PR state. No linking, no plugins, no copy-pasting ticket numbers.
$ git switch -c APP-112-flaky-sync-test Switched to a new branch 'APP-112-flaky-sync-test'
Sign in through the browser or paste a token. Tokens stay in the OS keychain, never in the data file. Close a card on a GitHub, GitLab, Gitea or Forgejo board and the issue closes too.
One human-readable state.json, timestamped backups beside it, profiles you can export one at a time. Notes go in and out as a folder of Markdown files that Obsidian opens as-is.
{
"schemaVersion": 5,
"profiles": [{
"name": "acme-web",
"tasks": [{
"id": "APP-101",
"title": "Login rate-limit bypass",
"deadline": "2026-07-09"
}, …],
"notes": [ … ],
"people": [ … ]
}]
}The only request heap. makes on its own is an update check to api.github.com — and Settings has a switch for it. Trackers are contacted only after you connect them.
Try it here: or/ searches this whole site.
One download, nothing else to install. The first run opens a short, skippable tour and a sample board.
You’re on a phone — heap. is a desktop app for Windows, macOS and Linux.
Also on Scoop: scoop bucket add heap https://github.com/sectapunterx/heap
Open the disk image and drag heap. into Applications.
chmod +x the AppImage and run it — Qt comes inside, nothing else to install.
Yes. It is open source under the MIT license — no paid tier, no trial, no account.
Completely. heap. is a desktop app and your data is a local file. Only the tracker integrations you choose to connect need the network.
Today you export a profile on one machine and import it on the other, or copy state.json. Continuous sync through your own private git remote is on the roadmap.
Not in real time — heap. is a personal workspace. Shared work stays in your team’s tracker; heap. pulls those issues onto your board and closes or reopens them as you move cards.
Yes. Notes import from and export to a folder of .md files, with [[wiki-links]] intact.
English and Russian, switchable in Settings.