checkmate is a cross-platform desktop app for reusable checklists and recorded runs. Templates and run history live as plain markdown files on your machine, with optional git backing if you want version history and sync.
Why build another checklist app?
Less friction. Most checklist tools today are SaaS, bloated, UI-focused and often not built for repetition. I wanted something local and lightweight. Something to click, something to copy code and a window that stays pinned while I work. I hope you'll like it.
~ Leonard
Supported systems: Linux, macOS, Windows
On first launch, checkmate creates a default data folder and seeds a starter checklist that explains the workflow inside the app.
If you want to use your own folder instead, for example ~/checkmate-data:
mkdir ~/checkmate-data
Then open Settings in checkmate and point the data path to that folder. checkmate will store:
checklists/ for reusable checklist templatesruns/ for saved checklist runsAfter that, create your first checklist in the app, add sections and steps, save it, and run it from the home screen.
Git is not required. checkmate can read and write checklist data in a normal folder.
If you want version history and automatic commits, initialize git in the folder that contains checklists/ and runs/. The example below assumes you chose ~/checkmate-data as a custom path:
cd ~/checkmate-data
git init
Then enable auto-commit in Settings.
To publish that data to GitHub later, create your repo on GitHub and then:
cd ~/checkmate-data
git remote add origin [email protected]:YOUR-USER/YOUR-REPO.git
git add -A
git commit -m "Initial checkmate data"
git push -u origin main
Adjust the remote URL and branch name to match your repository.
Install the required toolchain first:
Linux, macOS, and Windows may each need additional native packages before pnpm tauri dev or
pnpm tauri build will work. Follow the Tauri prerequisites guide for your platform before
installing dependencies.
pnpm install
pnpm check
pnpm tauri dev
To build a production app:
pnpm tauri build
Checklist templates are plain markdown files with YAML frontmatter.
Use this structure:
---
title: "Checklist Title"
description: "Optional one-liner"
tags: [tag1, tag2]
---
Then add sections with ## headings and unchecked checklist items:
## Section Name
- [ ] Step title
Optional one-line description
```bash
optional command
```
Rules:
title in frontmatter; description and tags are optional## headings for sections- [ ] for checklist items in templates##Disclaimer:
AI was used in the development of this project.