Features
Everything nokko does, in full.
The front page makes the case; this page is the detail behind it. Jump to any part, or read it top to bottom.
It only ever changes the characters you changed.
Every project is one Markdown file on your Mac, in a folder you choose. Move a due date in the app and it rewrites that date and leaves the rest of the file alone. Your line endings, indentation, blank lines, your own notes and even emoji it doesn't recognise survive byte for byte.
---type: projectstatus: activeclient: Halden Coffeestart: 2026-09-21due: 2026-11-06color: "#5A82D6"columns: - "Budget: number"tags: [web, nextjs]--- # Storefront Freeform notes. nokko never rewrites this prose. ## Milestones - [ ] Design sign-off with Halden 🎯 📅 2026-10-14- [ ] Staging deploy 🎯 📅 2026-11-03 ## Build - [/] Homepage hero and the bag grid [Budget:: 900] [est:: 3h] ⏫ 🛫 2026-10-05 📅 2026-10-16 #frontend - Client wants the oven photo above the fold. - [x] Pick the type scale - [ ] Cut the mobile breakpoint - ⏱ 2026-10-13 09:20–10:55 (1h35m) — hero layout- [ ] Wire the newsletter signup [est:: 2h] 📅 2026-10-12 #backend- [>] Copy review from Halden [Assignee:: Ema] 📅 2026-10-09- [x] Audit the old Shopify storefront #ops The file as it sits on disk. Pick a date above and only the highlighted characters will move.
Homepage hero and the bag grid
Storefront
The same files open in Obsidian, in any text editor, and in ten years
The task format is the Obsidian Tasks convention, and custom fields are Dataview's. Point nokko at a vault you already have and both apps read the same files. You do not need Obsidian to use nokko — but nothing stops you having both open at once.
the same vault
diff it, version it
sync over SFTP
now or in ten years
Eleven views over the same files
Headings in the file are the groups you see. An indented task is a subtask. Nothing here is app state — change a view and you have changed the text on disk.
Nine of the eleven are here. Time has its own section below, and Completed is the eleventh. Every one reads the same files.









Time tracked on the task, invoiced from the same file
A timer on any task, a Pomodoro if you want one, and every session logged as a line in the same Markdown file the task lives in. When the month ends, the invoice is drafted from those hours — rates, VAT, totals — as another file you own.

## Build - [/] Homepage hero and the bag grid [Budget:: 900] [est:: 3h] ⏫ 🛫 2026-10-05 📅 2026-10-16 #frontend - ⏱ 2026-10-13 09:20–10:55 (1h35m) — hero layout - ⏱ 2026-10-14 14:05–15:20 (1h15m) Logged where the work is
Totals that can't lie
Time by client
Invoice
INV-2026-031
Issued 2026-10-14
Due 2026-10-28
To
Halden Coffee
| Description | Hours | Rate | Amount |
|---|---|---|---|
| Homepage hero and the bag grid | 2.83 | €75.00 | €212.25 |
| Product detail template | 5.00 | €75.00 | €375.00 |
| Roastery photography edit | 0.67 | €75.00 | €50.25 |
A plan, in the order you decided.
The day's sequence is arranged by hand, because the order to tackle things in is a decision. A list that re-sorts itself under the hand that arranged it is not a plan. Drag it once and it stays; a task that arrives at eleven joins the end rather than jumping the queue.

Overdue you can act on
Waiting is not late
Capture from anywhere
Send the stationery proof #print !high >Lantern fri
⏎- #tag
- a tag, anywhere in the line
- !high
- priority
- >project
- which file it lands in
- fri · 3d · 2w
- a date, in words
A native Mac app, with widgets, a menu bar and a global hotkey
A real Mac app — SwiftUI, built against macOS 26, with desktop widgets, a menu bar popover, a global hotkey and full keyboard control. It works with no internet at all. Your work doesn't stop when the connection does.



Widgets on the desktop
The whole thing from the keyboard
Light, dark, or whatever the Mac is doing
- ⌥Space
- ⌘1 … ⌘7
- ⌘N / ⇧⌘N
- J / K
- S
- ⌘Z
Share through your own GitHub.
A private repository on your own GitHub account holds the workspace. Every change syncs as a commit in the person's own name — and there is no git anywhere: none on your Mac, none inside the app. nokko speaks to GitHub directly, and the commits happen on their own, one per change.
Your Mac
Studio iMac
Your GitHub
Private repo
Ema's Mac
Laptop
Nothing of ours sits between them. The one account in the path is yours, with GitHub.
A code, not a password
A conflict keeps both
Invited by username
Deleted isn't gone
Or your own server
The same sharing, over SFTP.
Any host with SFTP
A VPS, a NAS, a storage box or a spare Mac. Web hosting often forbids file storage, so check the terms first.
Keys in the Keychain
The first connection shows the server's fingerprint and asks. Keys are kept in your macOS Keychain, not in your files.
Deletes go to a trash
To the server's own 30-day trash and this Mac's Trash — never straight to nowhere.
The same conflict rule
Two edits to one file keep both versions, marked. Nothing discarded here either.
Who changed what, read from your own repository
Because every synced change is a commit in someone's name, the workspace carries its own record. The clock button in the sidebar opens it: who changed what, when — file by file, down to the minute — and every line clicks through to the document it describes.
In each person's name
Read, not kept
The audit trail you didn't set up
Client Work/Meridian Health/App Onboarding.md
Client Work/Halden Coffee/Storefront.md
Notices that arrive once
One notice log per Mac, behind a bell in the toolbar. The unread count clears the moment you open it — a record you consult, not a score you owe. Three kinds of notice exist, and each one reaches macOS notifications only if you switch it on.
Overdue, once
Double-claimed minutes
Teammate activity
Bring what you already have.
Export from ClickUp or Todoist and import the CSV; or copy tasks out of Things, Notion or Apple Notes and paste them straight in. Anything that can't be mapped is listed rather than quietly dropped.
tasks.csv — 4 spaces, 11 boards, 213 tasks
Client Work/
Halden Coffee/Storefront.md · 38 tasks
Meridian Health/App Onboarding.md · 64 tasks
…
ClickUp
Todoist
Anything else
The rest of what it does
Workspaces
Spaces & folders
People
Clients
Custom columns
Docs
Dependencies
Templates
Recurring tasks
Reminders
Task types
Undo everything
nokko next to the tools it replaces
| Capability | nokko | NotePlan | ClickUp + Toggl |
|---|---|---|---|
| Free to use | Read everything, forever | Trial only | Free plans, limited |
| One-time purchase available | Yes | No | No |
| Your files, on your disk | Yes | Yes | No |
| Works fully offline | Yes | Yes | No |
| Project management | Yes | Basic | Yes |
| Timeline / Gantt | Yes | No | Yes |
| Time tracking | Yes | No | Separate tool |
| Invoices from tracked hours | Yes | No | In their cloud |
| Native Mac app | Yes | Yes | No |
| Sync without a service in the middle | Yes | No | No |
| Share through your own GitHub | Yes | No | Their cloud |
| Per-person change history | Yes | No | Partial |
Swipe sideways for the other columns.
Every screen of the Mac app
Seventeen captures of the Mac app — the same ones used throughout this site, plus the surfaces there was no room to argue for. Nothing is drawn, retouched or composited.
Pick any one to see it full size.
Questions people ask first
What is nokko?
nokko is a native Mac app for project management, time tracking and invoicing, made for freelancers and small studios, with an iPhone app beside it. Every project is a plain Markdown file on your own disk; it works offline and has no account. The download is free on the App Store; reading is free and editing is a subscription or a one-time purchase covering both apps. It is not related to Noko, the time-tracking service.
What happens to my files if I stop using nokko?
Nothing. They are plain Markdown files in a folder you chose, and they stay there. If a subscription ends, the app goes back to reading mode and still opens, exports and prints everything. If nokko stopped existing, Obsidian or any text editor would still read every project, task and time entry.
Is there a Windows, Android or iPad version?
Not for Windows or Android. nokko is a Mac app with an iPhone app beside it, and an iPad version is planned for version 1.2, around 23 November 2026. The Mac app needs macOS 26 on Apple silicon, and the iPhone app needs iOS 26. Because the data is plain Markdown, the same files can be read on any system with a text editor.
Is there an iPhone app?
Yes. nokko for iPhone is on the App Store (iOS 26), free to download, and one subscription covers both apps. It shows Today, each project's standing and your hours; it checks off, reschedules and adds tasks, and runs the timer on the Lock Screen. It syncs with the Mac through your own GitHub, server or iCloud. Invoices, reports and the board, calendar and timeline stay on the Mac; there is no iPad version yet.
Do I need Obsidian to use nokko?
No. nokko is a complete Mac app that reads and writes the Markdown files itself. Because tasks use the Obsidian Tasks convention and custom fields use Dataview notation, the same files also open in Obsidian or any text editor, if you want them to. There is nothing else to install.
Does it work offline?
Yes, entirely. nokko's projects, time entries and invoices are Markdown files on your Mac, and there is no nokko server or account to reach. The only network use is sharing you switch on yourself, to your own GitHub repository, SFTP server or iCloud. On a plane or on bad hotel wifi it behaves identically.
Where is my data kept?
On your Mac, as plain Markdown files in a folder you choose. The app has no servers and no account — there is nowhere else for it to go. You can open, copy, move, back up or edit those files with anything, at any time, including when nokko isn't running.
How much does nokko cost?
nokko is free to download and read on Mac and iPhone. Editing is €6.99 a month or €49.99 a year after a 14-day free trial, or €129 once for Lifetime; the US store shows $5.99, $44.99 and $119. One purchase covers both apps and is billed through the App Store, so you manage or cancel it in your Apple Account.
What is reading mode?
The free state of the app. Every view, report, export and PDF works: you can open any folder of Markdown files and browse every project, task, time entry and invoice in it. What reading mode does not do is write. Creating and editing tasks, projects, time entries, invoices and shared workspaces needs a subscription or the Lifetime purchase.
What happens if I cancel?
nokko goes back to reading mode at the end of the period you paid for. Your files stay exactly where they were, as plain Markdown, and you can keep reading, exporting and printing them for as long as you like. Subscribe again and editing picks up where it left off.
Can I sync between multiple Macs?
Yes — two ways. Through a private repository on your own GitHub account, or through your own server over SFTP: a VPS, a NAS, a storage box or a spare Mac. Either way there is no nokko cloud and no nokko account — your files move between your machines and infrastructure you chose. If two machines edit the same file at once, both versions are kept.
Can it sync through GitHub?
Yes, GitHub is the primary way to share. A private repository on your own account holds the workspace, and every synced change becomes a commit in the person's name, so the history shows who changed what and when. There is no git on your Mac or in the app; sign-in is a short code typed on github.com, and no password or token passes through nokko.
Do I need a GitHub account?
Only for GitHub sharing, and the free tier is enough. Working locally needs no account of any kind, and sharing over SFTP needs only your server. nokko itself still has no accounts at all.
Is my data on GitHub private?
Repositories are created private, visible only to the people you invite. If you point nokko at a public repository instead, it warns you loudly and names exactly what would be exposed.
Do my teammates pay GitHub?
No. A free GitHub account is all a teammate needs — GitHub's free tier covers private repositories and the collaborators you invite to them.
Is this for a big team?
No, and that is deliberate: nokko has no roles, permissions or admin console and is not growing into them. A small studio sharing one workspace through its own GitHub repository or server works well, with everyone seeing every project and each person mostly driving their own files. A team that needs access control and approval chains has outgrown it.