Windows tray app for bookmarking folders with quick-action buttons (Explorer, Terminal, Claude, Visual Studio, Redeploy). Features: - Tabs containing columns of bookmarks - Per-row launcher buttons configurable from a header settings panel - Optional auto-start on Windows login - In-app confirm dialogs for destructive actions - Dark theme, frameless tray-anchored popup, pinnable
2.9 KiB
2.9 KiB
Folder Bookmark Tray — initial brief
A Windows system tray app for bookmarking folder paths with quick-action buttons. Spawned as a sibling of claude-usage-tray (E:\Personal Repo\PersonalProjects\ClaudeTracker) and intended to look and feel similar.
What it does
A persistent tray icon. Left-click → popup window listing the user's saved folders. Each saved folder is a row with:
- An alias (display name) + the underlying path
- A row of quick-action buttons, e.g.:
- Explorer — open the folder in File Explorer
- Terminal — open a new Windows Terminal / cmd in that directory
- VS Code —
code <path> - Claude —
cmd /K claudestarted in that directory (mirrorslaunchClaudein ClaudeTracker) - Copy path — copy the path string to the clipboard
- An edit/remove affordance
Right-click tray menu mirrors the action set: each saved folder appears as a submenu with the same actions, plus "Browse for folder…" and "Manage…".
Look and feel
Match claude-usage-tray:
- Electron + React + Vite stack (see its
package.json,electron/main.js,vite.config.mjs) - Frameless, non-resizable popup, tray-anchored (~360px wide), dark theme
- Pin-to-keep-open toggle that persists window position (see
popupWindow.on('moved', ...)debounce in ClaudeTracker) - Saved-paths persistence via
app.getPath('userData')/config.json— same pattern ClaudeTracker uses forsavedPaths - IPC architecture:
contextBridgeinpreload.jsexposingwindow.bookmarks(or similar), main-process handlers for folder picker, launcher, clipboard, etc. - NSIS installer via
electron-builder
Reference reading (do this before planning)
Skim these in E:\Personal Repo\PersonalProjects\ClaudeTracker\ to match conventions:
README.md— project layout summarypackage.json— scripts (dev,build,dist), electron-builder configelectron/main.js— tray creation, popup window, context-menu structure,launchClaude,pickFolder,add-saved-path/remove-saved-pathIPC handlers, config read/write helperselectron/preload.js— contextBridge surfacesrc/styles/index.css— color tokens, popup chrome, button styles (dark theme baseline)src/components/— popup layout, list-row composition (especially how ChatList renders detail rows with action buttons)
Non-goals (v1)
- macOS / Linux support
- Cloud sync of bookmarks
- Tagging / folder grouping
- Drag-to-reorder (nice-to-have, not required v1)
What I want from you next
Produce a step-by-step plan that:
- Confirms the directory layout (mirroring ClaudeTracker's structure)
- Lists the IPC surface with handler signatures
- Describes the config schema (saved bookmarks shape)
- Outlines components and their props
- Calls out anything you want to deviate from ClaudeTracker's patterns and why
Don't write code yet — plan first.