Table of Contents
A Windows GUI shell that runs on top of your desktop and shows a 2D dependency graph of running processes. Use it as a temporal activity map: add blocks for app instances, attach real windows, connect related blocks with edges, and refocus or launch apps from one place.
- Click on the canvas to add a new block.
- Click a block to open the app launcher: launch a new app or attach an existing window (from the list of visible windows) to that block.
- Focus button on attached blocks brings that window to the front.
- Capture (camera icon) captures a window thumbnail; the block shows a clipped preview with a fade at the bottom.
- Drag blocks to arrange them; connect blocks by dragging from the bottom handle of one to the top of another to show correlation (e.g. Cursor + terminal + browser tab group).
- Map is saved automatically every 8 seconds to
%APPDATA%\activity-map-shell\activity-map.json5.
- App shell —
- Windows helpers — PowerShell scripts for process/window list and focus; PowerShell + .NET
Graphics.CopyFromScreenfor thumbnails - Config — JSON5 in the user data directory
- Windows 10/11 (process list, focus, and thumbnail capture are Windows-specific).
- Node 18+ and pnpm.
pnpm install
pnpm run devStarts Vite (renderer) and Electron. If Electron opens before the app is ready, refresh the window.
Production:
pnpm run build
pnpm start- App list: Electron has no API for the Windows shell's app list. The app uses a PowerShell script that enumerates Start Menu and Desktop shortcuts (
.lnk→ target path) plus common executables and PATH-resolved names, which is the practical equivalent.
Add blocks on the canvas, attach windows, connect related apps, and use Focus/Capture on blocks. Layout persists automatically under AppData.
Electron supports one window per display. On launch the app creates one window per monitor (companion windows), each maximized on its own display. Each window shows the same activity map as a viewport (window position drives the visible slice of the canvas).
The Screen button is in the center of the top bar. Its label is Main Screen on the primary monitor and Screen 2, Screen 3, etc. on others. The panel shows the spatial layout of monitors (2D position and bounds). You can set which display is "main" (used for the Root node position).
Windows does not let third-party apps register a "reserved" region that other apps avoid when maximizing. This app uses a fixed top bar inside its own window for navigation and dragging; it does not reserve screen space for other apps.
Fork the project, create a feature branch, commit, push, and open a pull request.
For per-person profile links, prefer all-contributors.
See CHANGELOG.md for the project history.
Ryan Johnson — @amdphreak
Project Link: https://github.com/Desktop-Tooling/activity-map-shell
Site: https://ryanjohnson.dev