Repository navigation
Releases
SessionPad v0.2.1
SessionPad v0.2.1
Summary
SessionPad v0.2.1 adds automatic session switching. When the window you are attached to changes what it is showing, SessionPad now follows along and shows the matching pad on its own, without a manual re-attach.
This is a focused, additive release on top of v0.2.0. There are no data format changes, and the local-first, no-scraping foundation is unchanged.
What's New
- Automatic session switching on title change: while SessionPad is attached to a window, it watches that window's title and switches to the matching pad when the title changes.
- Windows Terminal: switching between tabs that have different titles (for example a renamed profile tab versus another) switches the pad automatically.
- VS Code, Cursor, and Windsurf: moving between files in the same project keeps the same pad (project-level matching); moving to a different project switches the pad.
- Notes are saved before switching, so moving between contexts never loses what you wrote. Returning to a previous context restores its pad.
How It Works
SessionPad already matches a pad to a window using the window title only. Previously this happened once, at attach time. Now the follow loop also re-reads the attached window's current title and, only when it changes, re-matches and loads the corresponding pad. Matching still uses the window title only; nothing inside the editor, terminal, or browser is read.
Switching is skipped while dragging to attach, while hidden to the tray, while the target window is minimized, and while SessionPad is not visible. A pad switch only occurs when the title actually changes, so unchanged tabs and steady titles do not cause repeated switching.
Known Limitations
- Two tabs or windows with the same title (for example two default "Windows PowerShell" tabs) cannot be told apart and will share one pad. Giving tabs distinct titles makes switching work.
- A title that changes constantly (for example a shell that puts the running command or path in the title) can cause the pad to switch more than intended. Stable, distinct titles work best.
- Matching uses the window title only. There is no VS Code workspace detection, Windows Terminal tab-id detection, or browser URL detection.
- Windows only. No installer or MSIX package yet. No cloud sync, login, telemetry, AI, or UI Automation.
- Attached-window following uses polling, not WinEvent hooks.
- Multi-monitor and DPI behavior should still be manually verified.
Privacy And Local-only Notes
Unchanged from v0.2.0. SessionPad stores only user-entered notes on the local machine.
- No login, cloud sync, telemetry, or AI.
- No screen scraping or terminal scraping.
- No automatic reading of editor, browser, terminal, or project contents. Only the window title is used for matching.
- Clipboard is only written when you click Copy. Clipboard is not read.
- Commands are not executed or pasted automatically.
How To Run
From source:
dotnet run --project src/SessionPad.App/SessionPad.App.csprojFrom the release package:
- Extract
SessionPad-v0.2.1.zip. - Run
SessionPad.App.exe.
The release package is framework-dependent and requires the .NET Desktop Runtime compatible with net10.0-windows.
To quit SessionPad fully, right-click the tray icon and choose Exit. Closing the window only hides it to the tray.
Storage Location
%APPDATA%\SessionPad\
settings.json
sessions.index.json
notes\
default.json
<sessionId>.json
Build And Publish Information
dotnet build
dotnet build -c Release
powershell -ExecutionPolicy Bypass -File scripts/publish-release.ps1Default publish output:
artifacts/SessionPad-v0.1
Release zip:
artifacts/SessionPad-v0.2.1.zip
Generated artifacts/, publish/, bin/, and obj/ outputs are ignored by Git and should not be committed.
SessionPad v0.2.0
SessionPad v0.2.0
Summary
SessionPad v0.2.0 is a major step up from the v0.1.x line. It improves how notes are matched to your work context and gives the app a complete visual redesign: a warm, compact sticky-note panel built to live beside whatever you are working on.
This release keeps the same local-first foundation. There is no installer, cloud sync, login, telemetry, AI, UI Automation, or app-specific deep integration. Your notes still never leave the machine.
Highlights
- A redesigned sticky-note interface with a calm off-white theme, a session color spine, underline tabs, quick-capture input, and light/dark themes.
- Smarter matching: rename a pad, pin a pad to an app, and one pad per project for VS Code-family editors.
- Each tab now has its own character: Key cards, Todo checklist, Command snippets, and Notes with inline editing.
Matching Improvements
- Rename session: give the current window's pad a custom name. The name is preserved even when you return to the same window.
- Pin to app: pin a pad to its application so it stays the same even when the window title changes (useful for browsers and terminals). Pinned pads match by application.
- Project-level matching for VS Code, Cursor, and Windsurf: switching files within the same project keeps the same pad, instead of creating a separate pad per file.
- Existing pads from earlier versions are carried over automatically; no notes are lost.
Interface Redesign
- Warm off-white panel with a subtle session color spine on the left edge and a light, soft depth.
- Light and dark themes with a toggle; the choice is remembered.
- Underline tabs for Key, Todo, Commands, and Notes, with only the active tab emphasized.
- Quick-capture input with a context-aware placeholder per tab; press Enter to save.
- Per-tab item styles:
- Key: highlighted detail cards.
- Todo: circular check with strikethrough when done, plus a done count.
- Commands: code-snippet cards with a copy action on hover.
- Notes: free-form cards that expand inline for full-text view, editing, and copy.
- Delete and copy actions appear quietly on hover instead of as large repeated buttons.
- Session rename, pin, local data controls, start-with-Windows, theme, and developer info are tucked into a settings panel, keeping the main view focused on notes.
Resident Utility Behavior
- Lives in the system tray; closing the window hides it instead of quitting.
- Single instance; launching again brings the existing window forward.
- Optional start with Windows, launching silently to the tray.
- Global hotkey
Ctrl+Alt+Nto bring the pad to the current window. - Smooth following of the attached window.
Privacy And Local-only Notes
SessionPad v0.2.0 stores only user-entered notes on the local machine.
- No login, cloud sync, telemetry, or AI.
- No screen scraping or terminal scraping.
- No automatic reading of editor, browser, terminal, or project contents.
- Clipboard is only written when you click Copy. Clipboard is not read.
- Commands are not executed or pasted automatically.
- Start with Windows writes only the executable path to the current-user startup registry key.
Known Limitations
- Windows only.
- No installer or MSIX package yet.
- No cloud sync, login, telemetry, AI, or UI Automation.
- No VS Code workspace detection, Windows Terminal tab detection, or browser URL detection (matching uses the window title only).
- Pinned pads match by application, so individual windows or tabs of the same app are not tracked separately.
- Project-level matching relies on the editor's window title and may not apply to heavily customized title formats; pinning is the fallback.
- Attached-window following uses polling, not WinEvent hooks.
- Multi-monitor and DPI behavior should still be manually verified.
How To Run
From source:
dotnet run --project src/SessionPad.App/SessionPad.App.csprojFrom the release package:
- Extract
SessionPad-v0.2.0.zip. - Run
SessionPad.App.exe.
The release package is framework-dependent and requires the .NET Desktop Runtime compatible with net10.0-windows.
To quit SessionPad fully, right-click the tray icon and choose Exit. Closing the window only hides it to the tray.
Storage Location
SessionPad stores local data under:
%APPDATA%\SessionPad
Expected files include:
%APPDATA%\SessionPad\
settings.json
sessions.index.json
notes\
default.json
<sessionId>.json
Runtime HWND values, detected window state, attach state, follow state, and drag status are not persisted.
Delete Local Data
Open the settings panel, find the Local Data section, click Delete All Local Data, and confirm. This removes SessionPad notes and session data from this device only.
Build And Publish Information
dotnet build
dotnet build -c Release
powershell -ExecutionPolicy Bypass -File scripts/publish-release.ps1Default publish output:
artifacts/SessionPad-v0.1
Release zip:
artifacts/SessionPad-v0.2.0.zip
Generated artifacts/, publish/, bin/, and obj/ outputs are ignored by Git and should not be committed.
SessionPad v0.1.2
SessionPad v0.1.2
Summary
SessionPad v0.1.2 adds manual session control on top of v0.1.1. You can now rename the pad for a window, and pin a pad to an app so it stays the same even when the window title changes (for example, when a browser navigates to a different page).
This release does not change how data is stored. It remains local-first, with no installer, cloud sync, login, telemetry, AI, UI Automation, or app-specific deep integrations.
New In v0.1.2
- Rename session: give the current window's pad a custom name. The name is kept even when you return to the same window, so automatic title-based naming no longer overwrites it.
- Pin to this app: pin the current pad to its app. While pinned, the pad is matched by application (process) and ignores the window title, so it stays the same across page changes, tabs, and other windows of that app.
- Unpin: clears the pin and returns to title-based matching.
Notes On Pinning
- Pinning matches by application, so all windows of a pinned app share one pad. Distinguishing individual windows or tabs of the same app is not possible from the window title alone, and SessionPad does not read app internals.
- Pinning is most useful for apps whose window title changes constantly, such as browsers and terminals, where title-based matching cannot restore a pad reliably.
Features
- Attach SessionPad to the current foreground window with
Ctrl+Alt+N. - Manually attach by dragging SessionPad near a valid external app window.
- Restore per-window notes using
processName + normalizedWindowTitle. - Rename the current session and keep the custom name across re-matches.
- Pin the current session to an app to match by process and ignore the window title.
- Follow the attached window when it moves or resizes.
- Hide SessionPad when the attached target is minimized.
- Restore and reposition SessionPad when the attached target is restored.
- Stay resident in the system tray; close the window to hide, use the tray Exit to quit.
- Optionally start with Windows and launch silently to the tray.
- Edit Pinned, Todo, Commands, and Notes sections.
- Check and uncheck TODO items.
- Copy user-entered command snippets with an explicit Copy button.
- Store notes as local JSON files.
- View the local data path from inside the app.
- Open the local data folder from inside the app or the tray menu.
- Delete all local SessionPad data with confirmation.
Privacy And Local-only Notes
SessionPad v0.1.2 stores only user-entered notes on the local machine.
- No login.
- No cloud sync.
- No telemetry.
- No AI features.
- No screen scraping.
- No terminal scraping.
- No automatic reading of editor, browser, terminal, or project contents.
- Clipboard is only written when the user clicks Copy on a command.
- Clipboard is not read.
- Commands are not executed or pasted automatically.
- Start with Windows writes only the SessionPad executable path to the current-user startup registry key. No user notes or data are written to the registry.
Known Limitations
- Windows only.
- No installer or MSIX package yet.
- No cloud sync.
- No login.
- No telemetry.
- No AI.
- No UI Automation.
- No VS Code workspace/project detection.
- No Windows Terminal tab detection.
- No browser URL/tab detection.
- No automatic foreground-change restore.
- Window identity is currently
processName + normalizedWindowTitle, except for pinned sessions, which match by process only. - Individual tabs or windows of the same app cannot be tracked separately from the window title alone.
- Attached-window following uses polling, not WinEvent hooks.
- Multi-monitor and DPI behavior should still be manually verified.
How To Run
From source:
dotnet run --project src/SessionPad.App/SessionPad.App.csprojFrom the release package:
- Extract
SessionPad-v0.1.2.zip. - Run
SessionPad.App.exe.
The release package is framework-dependent and requires the .NET Desktop Runtime compatible with net10.0-windows.
To quit SessionPad fully, right-click the tray icon and choose Exit. Closing the window only hides it to the tray.
Storage Location
SessionPad stores local data under:
%APPDATA%\SessionPad
Expected files include:
%APPDATA%\SessionPad\
sessions.index.json
notes\
default.json
<sessionId>.json
Runtime HWND values, detected window state, attach state, follow state, and drag status are not persisted.
Delete Local Data
Inside the app:
- Open SessionPad.
- Find the Local Data section.
- Click Delete All Local Data.
- Confirm the warning dialog.
This removes SessionPad notes and session data from this device only. The app resets to a safe default note and recreates local files on future edits.
Build And Publish Information
Debug build:
dotnet buildRelease build:
dotnet build -c ReleasePublish:
powershell -ExecutionPolicy Bypass -File scripts/publish-release.ps1Default publish output:
artifacts/SessionPad-v0.1
Release zip:
artifacts/SessionPad-v0.1.2.zip
Generated artifacts/, publish/, bin/, and obj/ outputs are ignored by Git and should not be committed.
SessionPad v0.1.1
SessionPad v0.1.1
Summary
SessionPad v0.1.1 builds on the v0.1.0 foundation. It turns SessionPad into a proper resident utility: it now lives in the system tray, runs as a single instance, can optionally start with Windows, and follows attached windows more smoothly.
This release does not change how notes are matched to windows or how data is stored. It remains local-first, with no installer, cloud sync, login, telemetry, AI, UI Automation, or app-specific deep integrations.
New In v0.1.1
- Single instance: launching SessionPad again brings the existing window forward instead of opening a second copy.
- System tray presence: SessionPad now lives in the notification area and keeps running in the background.
- Close-to-tray: closing the window (X or Alt+F4) hides SessionPad to the tray instead of quitting, so the hotkey keeps working.
- Tray menu: Open, Open data folder, and Exit. Exit fully quits the app.
- Start with Windows (optional): a toggle in the Local Data section. When enabled, SessionPad starts silently to the tray on login.
- Smoother window following: tighter polling so the pad tracks the attached window more closely.
- Fix: SessionPad no longer pops back up after being hidden to the tray while attached to a visible window.
Features
- Attach SessionPad to the current foreground window with
Ctrl+Alt+N. - Manually attach by dragging SessionPad near a valid external app window.
- Restore per-window notes using
processName + normalizedWindowTitle. - Follow the attached window when it moves or resizes.
- Hide SessionPad when the attached target is minimized.
- Restore and reposition SessionPad when the attached target is restored.
- Stay resident in the system tray; close the window to hide, use the tray Exit to quit.
- Optionally start with Windows and launch silently to the tray.
- Edit Pinned, Todo, Commands, and Notes sections.
- Check and uncheck TODO items.
- Copy user-entered command snippets with an explicit Copy button.
- Store notes as local JSON files.
- View the local data path from inside the app.
- Open the local data folder from inside the app or the tray menu.
- Delete all local SessionPad data with confirmation.
Privacy And Local-only Notes
SessionPad v0.1.1 stores only user-entered notes on the local machine.
- No login.
- No cloud sync.
- No telemetry.
- No AI features.
- No screen scraping.
- No terminal scraping.
- No automatic reading of editor, browser, terminal, or project contents.
- Clipboard is only written when the user clicks Copy on a command.
- Clipboard is not read.
- Commands are not executed or pasted automatically.
- Start with Windows writes only the SessionPad executable path to the current-user startup registry key. No user notes or data are written to the registry.
Known Limitations
- Windows only.
- No installer or MSIX package yet.
- No cloud sync.
- No login.
- No telemetry.
- No AI.
- No UI Automation.
- No VS Code workspace/project detection.
- No Windows Terminal tab detection.
- No browser URL/tab detection.
- No automatic foreground-change restore.
- Window identity is currently
processName + normalizedWindowTitle. - Attached-window following uses polling, not WinEvent hooks.
- Multi-monitor and DPI behavior should still be manually verified.
How To Run
From source:
dotnet run --project src/SessionPad.App/SessionPad.App.csprojFrom the release package:
- Extract
SessionPad-v0.1.1.zip. - Run
SessionPad.App.exe.
The release package is framework-dependent and requires the .NET Desktop Runtime compatible with net10.0-windows.
To quit SessionPad fully, right-click the tray icon and choose Exit. Closing the window only hides it to the tray.
Storage Location
SessionPad stores local data under:
%APPDATA%\SessionPad
Expected files include:
%APPDATA%\SessionPad\
sessions.index.json
notes\
default.json
<sessionId>.json
Runtime HWND values, detected window state, attach state, follow state, and drag status are not persisted.
Delete Local Data
Inside the app:
- Open SessionPad.
- Find the Local Data section.
- Click Delete All Local Data.
- Confirm the warning dialog.
This removes SessionPad notes and session data from this device only. The app resets to a safe default note and recreates local files on future edits.
Build And Publish Information
Debug build:
dotnet buildRelease build:
dotnet build -c ReleasePublish:
powershell -ExecutionPolicy Bypass -File scripts/publish-release.ps1Default publish output:
artifacts/SessionPad-v0.1
Release zip:
artifacts/SessionPad-v0.1.1.zip
Generated artifacts/, publish/, bin/, and obj/ outputs are ignored by Git and should not be committed.
SessionPad v0.1.0
SessionPad v0.1.0
Summary
SessionPad v0.1.0 is the first local Windows release candidate. It provides a lightweight note pad that can attach to app windows, follow their position, and restore notes by basic window identity.
This release is focused on local-first MVP behavior. It does not include an installer, cloud sync, login, telemetry, AI features, UI Automation, or app-specific deep integrations.
Features
- Attach SessionPad to the current foreground window with
Ctrl+Alt+N. - Manually attach by dragging SessionPad near a valid external app window.
- Restore per-window notes using
processName + normalizedWindowTitle. - Follow the attached window when it moves or resizes.
- Hide SessionPad when the attached target is minimized.
- Restore and reposition SessionPad when the attached target is restored.
- Edit Pinned, Todo, Commands, and Notes sections.
- Check and uncheck TODO items.
- Copy user-entered command snippets with an explicit Copy button.
- Store notes as local JSON files.
- View the local data path from inside the app.
- Open the local data folder from inside the app.
- Delete all local SessionPad data with confirmation.
Privacy And Local-only Notes
SessionPad v0.1.0 stores only user-entered notes on the local machine.
- No login.
- No cloud sync.
- No telemetry.
- No AI features.
- No screen scraping.
- No terminal scraping.
- No automatic reading of editor, browser, terminal, or project contents.
- Clipboard is only written when the user clicks Copy on a command.
- Clipboard is not read.
- Commands are not executed or pasted automatically.
Known Limitations
- Windows only.
- No installer or MSIX package yet.
- No cloud sync.
- No login.
- No telemetry.
- No AI.
- No UI Automation.
- No VS Code workspace/project detection.
- No Windows Terminal tab detection.
- No browser URL/tab detection.
- No automatic foreground-change restore.
- Window identity is currently
processName + normalizedWindowTitle. - Attached-window following uses polling, not WinEvent hooks.
- Multi-monitor and DPI behavior should still be manually verified.
How To Run
From source:
dotnet run --project src/SessionPad.App/SessionPad.App.csprojFrom the release package:
- Extract
SessionPad-v0.1.0.zip. - Run
SessionPad.App.exe.
The release package is framework-dependent and requires the .NET Desktop Runtime compatible with net10.0-windows.
Storage Location
SessionPad stores local data under:
%APPDATA%\SessionPad
Expected files include:
%APPDATA%\SessionPad\
sessions.index.json
notes\
default.json
<sessionId>.json
Runtime HWND values, detected window state, attach state, follow state, and drag status are not persisted.
Delete Local Data
Inside the app:
- Open SessionPad.
- Find the Local Data section.
- Click Delete All Local Data.
- Confirm the warning dialog.
This removes SessionPad notes and session data from this device only. The app resets to a safe default note and recreates local files on future edits.
Build And Publish Information
Debug build:
dotnet buildRelease build:
dotnet build -c ReleasePublish:
powershell -ExecutionPolicy Bypass -File scripts/publish-release.ps1Default publish output:
artifacts/SessionPad-v0.1
Release zip:
artifacts/SessionPad-v0.1.0.zip
Generated artifacts/, publish/, bin/, and obj/ outputs are ignored by Git and should not be committed.