When I am working on a bug or matching a design, I often need a screenshot for the next few minutes. I also keep small reminders nearby. Those references tend to end up in folders, open windows, and notes that I have to find again.
I built Jemur to keep them on a little clothesline across the top of my Windows desktop.
The name is Indonesian: jemur means to hang things out to dry. The interaction takes inspiration from Tendedero on macOS. Jemur is an independent Windows implementation and shares no code with it.
Source on GitHub ยท Download the latest release
Update: Jemur 0.1.3
Jemur now includes Spanish, Brazilian Portuguese, Japanese and Malay alongside English and Indonesian. Native speakers are welcome to help refine the wording.
This update also fixes several keyboard and screen-reader-label problems: settings expose their titles and values, shortcut recorders have named states, Tab leaves recording, and Esc cancels without closing the panel. Library cards can be opened with Enter or Space, and their action buttons appear during keyboard focus. Note colors are now named menu choices.
Validation: 53 Windows tests, 29 portable tests and 17 download/release tests passed. The portable suite now covers settings defaults, corrupt and locked files, older settings and save/load round trips. Narrator speech and ARM64 device execution remain unverified. Accessibility findings.
Download 0.1.3: portable EXE or installer, x64 and ARM64.
A temporary place for a reference
A screenshot or a note becomes a card on the line. Click the card to bring it closer. When you are finished with it, drag it onto empty space to move it into Discarded. The retention period is configurable.
The line tucks away when idle, leaving the bottom edges of the cards visible. Moving to the top of the screen brings it back. I wanted references to remain easy to find while leaving room for the application I am actually using.
You can also drag a card into an application that accepts files. For screenshots that need explanation, Jemur includes an editor with a pen, highlighter, boxes, arrows, and undo/redo.
The new demo shows a Windows workspace with Notepad and File Explorer: write a reminder, capture a checklist, open the screenshot, and mark the part that needs attention. It uses sample data in an isolated session, with pauses shortened for the video.
Why I used WPF
Jemur is written in C# with WPF and targets .NET 10. That gives the project a Windows UI stack for its overlay windows, note editor, and control panel.
Some smaller pieces call Win32 directly: the notification-area icon, global shortcuts, and screen capture. The application stores screenshots and notes on the local computer, under %APPDATA%\Jemur by default.
The line needs motion when something changes, so cards swing as they arrive. Once they settle, the animation stops listening for rendering updates. Thumbnails are decoded at the size the UI needs. These choices matter for a utility that spends much of its time waiting in the background.
I have documented memory measurements and the method used. Those measurements describe a particular build and test setup; I would not treat one Task Manager number as a promise for every machine.
Shipping an EXE people can run
The 0.1.3 release includes a portable EXE and a per-user installer for both x64 and ARM64. Every package includes the .NET runtime.
The portable EXE runs directly. The installer adds a Start menu shortcut and an entry in Windows' installed-apps list. Uninstalling preserves the user's library and settings.
For the single-file builds, the publish command includes these options:
dotnet publish src/Jemur.csproj -c Release -r win-x64 --self-contained true \
-p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true \
-p:EnableCompressionInSingleFile=true -p:PublishReadyToRun=false
Bundling the runtime makes the download larger, but it removes a separate runtime-installation step. The repository contains the full build and packaging setup.
Releases run through Cloudflare
GitHub hosts the source and release assets. Cloudflare Workers Builds runs the pipeline.
On a push to main, the pipeline runs the Linux-compatible tests, compiles the Windows projects, and builds both architectures and their NSIS installers. It then deploys the download Worker and checks the size and SHA-256 of all four public EXE downloads.
For a new application version, the publisher creates the tag at the build's exact commit and starts with a draft release. It uploads the EXEs, manifest, and checksum file, verifies GitHub's reported sizes and digests, then publishes. A later build with the same application version leaves the existing release untouched.
Linux does not run the WPF test suite. I ran the Windows tests separately and checked the x64 installer, including reinstalling and uninstalling while retaining sample user data. ARM64 builds are available, but execution on an ARM64 Windows device still needs validation.
Try it and report the awkward bits
Jemur supports Windows 10 version 1809 or later and Windows 11. It includes English, Indonesian, Spanish, Brazilian Portuguese, Japanese and Malay; translations live in JSON files. The project uses the MIT license.
The default shortcuts include Alt+Shift+S for a screenshot, Alt+Shift+N for a note, and Alt+Shift+V to hang clipboard content. You can change them in Settings.
I would especially like reports about keyboard conflicts, display scaling, and multiple-monitor behavior. If the line gets in your way, tell me which application you were using and what you expected to happen. A Windows version and a short set of reproduction steps make the report much easier to investigate.

Top comments (0)