MDStickies is a Windows desktop sticky-note application with Markdown editing and rendering. Notes run as independent frameless windows and remain accessible from the system tray.
- Markdown source editing with rendered previews for headings, bold text, lists, code, blockquotes, links, and line breaks.
- Frameless notes that can be dragged and resized from every edge and corner.
- Always-on-top pinning and a lock-position mode.
- Yellow, green, blue, and pink note colors.
- System-tray operation with no taskbar button.
- Persistent notes and settings.
- Configurable note storage folder.
- Windows 10 or Windows 11
- Python 3.10 or newer
- PowerShell
Open PowerShell in this project folder and run:
python -m venv .venv
.venv\Scripts\Activate.ps1
python -m pip install -r requirements.txt
python main.pyIf PowerShell prevents script activation, use the virtual-environment interpreter directly:
.venv\Scripts\python.exe -m pip install -r requirements.txt
.venv\Scripts\python.exe main.pyThe application starts in the background. Look for the MDStickies icon in the Windows notification area, usually near the clock. Right-click the icon to access:
- Add sticky — create a new note.
- Unhide all stickies — show all saved notes.
- Hide all stickies — hide notes without deleting them.
- Recycle all stickies — permanently delete all notes after confirmation.
- Settings — configure note behavior and storage.
- Quit — save and close MDStickies.
Click the rendered note body to switch to the plain-text Markdown editor. Type or paste Markdown, then click outside the editor or move focus to another control. The Markdown is rendered back into the note automatically.
| Control | Action |
|---|---|
+ |
Create another sticky note. |
| Pin | Toggle always-on-top behavior. |
| Lock | Toggle whether the note can be dragged. |
| Palette | Cycle through yellow, green, blue, and pink backgrounds. |
| Recycle | Permanently delete the current note. |
Drag the note by its header. To resize it, move the pointer to any edge or corner until the resize cursor appears, then drag. A locked note ignores dragging and resizing.
Open Settings from the tray menu. The available options are:
- Dark mode — use a dark note canvas and light text.
- Click to position the cursor — enter Markdown editing when the note body is clicked and place the caret at the click location.
- Show pin-to-top button on notes — show or hide the pin control.
- Always pin new notes to top — make newly created notes stay above other windows.
- Show lock-position button on notes — show or hide the lock control.
- Allow notes of any length — allow unrestricted note text length.
Settings are saved automatically and applied to open notes.
By default, notes are stored at:
%USERPROFILE%\Documents\MDStickyNotes\notes.json
The folder is created automatically on first launch. Use Settings to choose another folder. When the folder is changed, the current notes file is copied to the new location before future saves use it.
Application settings are stored separately in:
%APPDATA%\MDStickies\config.json
If a GitHub release or local build provides MDStickies.exe, no Python installation is required. Download the executable, place it in a folder you can access, and double-click it. MDStickies will start in the system tray.
For a portable copy, extract MDStickies-portable.zip and run MDStickies.exe from the extracted folder. Notes are stored in the user storage folder, not beside the executable.
Build on Windows from PowerShell:
python -m venv .venv
.venv\Scripts\Activate.ps1
.\build.ps1The build script installs the declared dependencies, runs PyInstaller, and creates:
dist\MDStickies.exe
release\MDStickies-portable.zip
The packaged application is windowed and does not open a console window. Build output is local and should not be committed to the source repository.
Expand the hidden notification-area icons using the arrow near the Windows clock. If the process is running but the icon is still missing, restart MDStickies.
Skip activation and run the .venv\Scripts\python.exe commands shown above, or allow locally created scripts for your user account:
Set-ExecutionPolicy -Scope CurrentUser RemoteSignedCheck that %USERPROFILE%\Documents\MDStickyNotes\notes.json or the configured storage folder still exists and is writable.
No license has been specified yet. Add a license before distributing modified versions or accepting external contributions.