Open-source project
snownico0722/PaperTodo avatar
snownico0722/PaperTodo

PaperTodo: a WPF sticky-note app for Windows that keeps papers on the desktop

A minimalist Windows desktop sticky note tool. It puts a few quiet, usable, and unobtrusive sheets of paper on your desktop. Native WPF, with support for to-dos and Markdown.——极简 Windows 桌面便签工具。让桌面上有几张安静、可用、不会打扰人的纸。WPF 原生,支持待办与 Markdown。

2,378 stars122 forksC#NOASSERTION

At a glance

What is it?
PaperTodo is a native WPF sticky-note tool for Windows x64 with two paper types, edge capsules, and a preview plugin system. It is easy to adopt, but the v4 line is beta and the documentation is thin on upgrades and rollback.
Who is it for?
Adopt PaperTodo if you work on Windows x64, want todo and Markdown papers that live directly on the desktop, and are comfortable running a .NET 10 WPF app whose v4 line is still labelled beta. Do not adopt it if you need Linux or macOS support, a sync service, or an enterprise project-management model; the README describes none of those.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly C#, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 17, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What PaperTodo solves, and who it is for

Most note apps ask you to open a window before you can write anything. PaperTodo inverts that. Each paper is an independent window that lives directly on the desktop, and the README states that everything saves automatically, so the path from wanting to write something to writing it is short. The project targets Windows x64 and is built with WPF on .NET 10, with no Web wrapper. That choice is the whole pitch: fast startup and low resource use, in the project's words.

The intended user is someone who captures small things all day and does not want a management console in the way. The README is explicit that PaperTodo deliberately avoids complex project-management models. There are no boards, no sprints, no assignees. If your notes need a hierarchy deeper than a few papers on a desktop, this is the wrong shape of tool, and the project says so itself.

Two paper types, capsules, and how the desktop model works

A paper is either a Todo Paper or a Note Paper. The Todo Paper is a checklist with drag-and-drop ordering, continuous swipe multi-selection, and smart splitting of multi-line paste; completed items can be cleared automatically or moved to the bottom. The Note Paper handles Markdown and visual notes with three levels of real-time rendering and supports pasting or dropping local images.

The desktop model is where the design gets interesting. Pressing Ctrl+W or clicking the top-right button collapses a paper into a compact capsule that docks to a screen edge. Hovering that capsule opens a lightweight preview card. For todos you can scroll, check, and uncheck visible tasks inside the card without opening the full window; for notes the card renders the Markdown layout and image placeholders. The README describes pointer-intent prediction that keeps transitions smooth when the pointer moves across adjacent capsules. A master capsule can collapse the whole queue, and dragging it adjusts the queue's starting height.

A newer layer is the plugin system, marked as a preview. A paper can be switched into a clock, a focus Pomodoro timer, or a review pool. Plugins can collapse into their own capsules, supply edge-hover cards and top-bar actions, and the README says their data is stored independently. Installation is drop-in: place a plugin folder in plugins/ and PaperTodo recognizes it. The repository also contains PaperTodo.Plugin.Abstractions/ and plugin-samples/, which is consistent with the plugin development manual the README links to.

The performance claims deserve a caveat. The README describes tuning for 120Hz, 144Hz and 165Hz+ displays, incremental parsing so long notes stay responsive, and adaptation for multi-monitor setups with mixed scaling factors. Those are design intentions from the project's own documentation, not measurements I can confirm.

Installing PaperTodo and writing a first paper

PaperTodo is distributed through GitHub releases; the README does not include a package-manager command, so the release page is the place to get it. The badges state the platform is Windows x64 and the runtime is .NET 10, so confirm that runtime is installed before launching. The recent releases listed for the project are v4.0.0-beta1, v3.31, and v3.3. If you want the stable line, take v3.31; if you want the plugin preview, take the beta.

There is no documented command-line interface for creating notes, so the first real use happens in the UI. After launch you get a paper on the desktop. The README's common-operations table gives the one shortcut worth learning immediately: Ctrl+W collapses or hides the paper, and middle-clicking the top bar does the same. With collapse enabled, the paper becomes a capsule docked to a screen edge. Hover it and a preview card opens; click the card background to return to the full paper.

Two features are driven by text you type rather than by commands. The README states that putting `!p` or `!power` on the first line of a note turns it into a script runner, and that when collapsed it becomes a lightning capsule which executes the script when clicked. The scripts are PowerShell, so treat any note you convert this way as code, not text. Separately, the README says you can use a custom font by placing `papertodo.ttf` in the application, and that the labs MCP interface is enabled by starting PaperTodo with `--mcp`.

Where PaperTodo gets in the way

The first limitation is platform. The badges say Windows x64, the UI is WPF, and nothing in the README suggests a Linux or macOS build. If your team is mixed-platform, this is a personal tool, not a shared one.

The second is the release channel. v4.0.0-beta1 is a beta, and the plugin system, the local MCP interface, third-party window tethering, scheduled reminders, and the idle-behaviour features are all labelled preview or labs in the README. The README does not document rollback, and it does not describe a migration path between major versions. Data lives in data.json and note-assets.lmdb in the application directory with automatic snapshot backups before writes, but a snapshot is not the same as a tested downgrade procedure. If you write notes you cannot afford to lose, that gap matters.

The third is the MCP interface. Starting PaperTodo with `--mcp` exposes a standard MCP service so external assistants can read, write, and manage todos and notes. The README frames this as authorized assistants, but it does not describe authentication, scoping, or what a connected assistant can reach. Until that is documented, enabling it is a decision you make on trust rather than on specification.

Finally, the data model is deliberately shallow. Papers are independent windows with no cross-paper relations. If you need to link tasks into projects or query across notes, the README offers nothing, and that is a design position rather than an unfinished feature.

PaperTodo compared with Obsidian and Windows Sticky Notes

The closest mainstream alternative is Obsidian. Obsidian is a vault-based Markdown editor: notes are files in a folder, links between notes are first-class, and the ecosystem is built on plugins that extend a single application window. PaperTodo takes the opposite approach. There is no vault and no linking graph; each paper is its own window on the desktop, and the plugin system extends what a paper can be (a clock, a timer, a review pool) rather than what a document can reference. Obsidian is better if your notes need to reference each other. PaperTodo is better if your notes need to be visible without being opened.

Windows Sticky Notes is the other obvious comparison, since it ships with the operating system. Sticky Notes is a single application with a notes list, and it syncs through a Microsoft account. PaperTodo keeps data local in the application directory and runs fully offline according to the README, which is a different trade: you give up sync and get control of the files. PaperTodo also goes further on interaction, with capsules, hover previews, and script notes, none of which Sticky Notes offers.

Maintenance, licensing, and what an upgrade costs

The repository is not archived, and the last push was on 2026-09-17, the same day as the v4.0.0-beta1 release two days after v3.31. That cadence suggests the project is being worked on now, but it also means the v4 branch is moving. Pinning to v3.31 is the conservative choice for daily use.

The licence file is LICENSE.md, and the repository's licence is reported as NOASSERTION, which means GitHub could not map it to a known licence identifier. The README does not state licensing terms in the text, and the repository also carries THIRD-PARTY-NOTICES.md and a vendor/ directory, so third-party components are bundled. Before shipping PaperTodo inside a company image, read LICENSE.md and THIRD-PARTY-NOTICES.md directly rather than relying on the repository's licence label. That is a check, not legal advice.

Upgrade cost is mostly about data. Because data.json and note-assets.lmdb live in the application directory, replacing that directory replaces your notes. The README mentions snapshot backups before writes but does not document an export or import command, so back up the application directory yourself before moving between v3.31 and the v4 beta.

Editorial conclusion

Adopt PaperTodo if you work on Windows x64, want todo and Markdown papers that live directly on the desktop, and are comfortable running a .NET 10 WPF app whose v4 line is still labelled beta. Do not adopt it if you need Linux or macOS support, a sync service, or an enterprise project-management model; the README describes none of those. Before installing, verify three things: that the .NET 10 desktop runtime is present, where data.json and note-assets.lmdb will be written relative to the application directory, and whether the release you pick is v3.31 or the v4.0.0-beta1 build. The README does not document rollback, so choose the release channel before you start writing notes you care about.

Frequently asked questions

How do I install PaperTodo?

PaperTodo is distributed through GitHub releases rather than a package manager, and the badges state it targets Windows x64 on .NET 10, so install that runtime first. Then pick a release: v3.31 for the stable line or v4.0.0-beta1 for the plugin preview.

Where does PaperTodo store my notes?

The README states that data and images stay in the application directory, in data.json and note-assets.lmdb, with automatic snapshot backups before writes and full offline operation. There is no documented export command, so back up that directory before changing versions.

Does PaperTodo run on macOS or Linux?

The README lists the platform as Windows x64 and the UI as WPF, and it describes no build for other operating systems. Treat it as a Windows-only tool.

What is the difference between a Todo Paper and a Note Paper in PaperTodo?

A Todo Paper is a checklist with drag-and-drop ordering, swipe multi-selection, and multi-line paste splitting, with completed items cleared or moved to the bottom. A Note Paper handles Markdown and visual notes with three levels of real-time rendering and supports pasting or dropping local images.

Can PaperTodo run scripts from a note?

Yes. The README states that putting `!p` or `!power` on the first line of a note turns it into a script runner, and that when collapsed it becomes a lightning capsule which executes the script when clicked. The scripts are PowerShell.

Official sources

  1. Issues
  2. README
  3. Releases
  4. snownico0722/PaperTodo on GitHub
Community notes

Community notes