WorkMirror is a Windows system tray resident local review tool: automatically collects your work "traces" (windows, code changes, browser history), organizes them into traceable work sessions, and generates daily/weekly reports and skill evolution.
What You Get
Daily/weekly reviews: Every conclusion can be clicked to see evidence coverage and details.
Skill tree and capability evolution: Growth sources can be traced back to contributing work sessions.
Works offline: Rule-based summaries and reviews work without AI Key.
No need to contact the author when you see "blank page/no data": The status page tells you where the gap is and what to do next.
Privacy & Local-first
Data is stored in local SQLite by default (./data/workmirror.db), no cloud sync or account system.
Local HTTP only listens on 127.0.0.1, port randomly assigned.
When AI is enabled, only the minimum necessary desensitized text is sent for generating summaries and suggestions.
How It Runs (v0.2)
workmirror.exe (Windows 10/11 system tray resident)
Built-in local HTTP Server (random port, only listens on 127.0.0.1)
Built-in Web UI (React/Vite SPA, prioritizes loading from frontend/dist/ in the same directory, otherwise falls back to embedded resources)
Port discovery: Written to ./data/http_base_url.txt
How It Works (Brief)
Collection → Generate work sessions (segmentation/aggregation/summary) → Aggregate to skills and reviews → Each conclusion can be clicked to view evidence chain.
What's Not Included
Cloud sync/account system/team collaboration
macOS/Linux (at this stage)
Complex goal management (TODO/OKR/habits)
How It Works (Advanced)
The diagrams below show how WorkMirror runs locally and the evidence → work sessions → reviews/skills pipeline.
Runtime Component Diagram
Fig: Single-process local architecture (only listens on 127.0.0.1), UI and API served from same origin.
Evidence Chain Pipeline Diagram
Fig: Sessions are the authoritative input; offline rules work by default, AI as optional enhancement; failure paths exposed via status and diagnostic actions.Developers: Directory Structure (Go / React)
cmd/workmirror-agent/: Windows Agent entry (tray, collectors, HTTP API/UI)
internal/server/: Local HTTP Server (JSON API + SSE + static UI)
internal/service/: Session/Skill/review business logic
internal/repository/: SQLite data access and migration gate (schema_version)
frontend/: Frontend source (during development, use VITE_API_TARGET to point to local Agent)
Pipeline Explanation
Upper-level skills/reviews don't count directly from raw data, but uniformly use sessions as input, ensuring "same numbers, same evidence chain".
Self-troubleshooting
When data is empty/unreliable, first locate the gap from the status page (collection/segmentation/analysis/config), and follow the prompts: add watch paths, rebuild sessions for a day, export diagnostic package, etc.
Recommended Reading
Quick Start
WorkMirror is a Windows system tray resident Agent + local Web UI. The goal is to let new users complete the loop in 10 minutes: configure watch paths → see today's sessions → click to view evidence.
1. Get the Program
Recommended to download from GitHub Releases; or build from source (requires Go 1.25.4, Windows only).
go build -trimpath -ldflags "-H=windowsgui -s -w" -o .\workmirror.exe .\cmd\workmirror-agent\
Note: The above command builds as GUI subsystem, no foreground console window will pop up when running.
2. Initialization
After first run, WorkMirror minimizes to system tray. Right-click the icon and select "Open Panel".
Default database: ./data/workmirror.db (relative to executable directory)
Local HTTP: Only listens on 127.0.0.1, randomly assigned port
Port discovery: Written to ./data/http_base_url.txt on startup
Recommended "portable distribution": One workmirror.exe + config/ and data/ in the same directory.
3. Configure Watch Directories
To enable Diff Collector, add your Git project directories (watch paths) in the settings page:
C:\Users\Dev\Projects\Go-Backend
Optional: Enable browser collection (auto-detect Chrome/Edge History path), and keep privacy desensitization enabled by default.
Local API (Advanced)
Local HTTP only listens on 127.0.0.1, port randomly assigned (see ./data/http_base_url.txt).
Status & Observability (P0)
GET /api/status: Summary snapshot of collection/pipeline/AI/recent errors
GET /api/events: SSE (data changes/config changes events)
Maintenance Actions
POST /api/maintenance/sessions/rebuild: Rebuild sessions by date
POST /api/maintenance/sessions/enrich: Enrich semantics by date (when AI enabled)
GET /api/diagnostics/export: Export desensitized diagnostic package (zip)
FAQ
Do I need internet?
No. Without AI Key configured, WorkMirror generates session summaries and reviews using rule-based approach; with AI configured, external providers are only called when semantic summaries/suggestions are needed.
Why is the page empty/no data?
First check /status (or status page entry) for collection health and recent errors.
Browser collection depends on local History file path; check auto-detection results in settings and specify manually if needed.
Does it support macOS/Linux/mobile?
Currently only Windows 10/11 is supported, with no cloud sync or account system.
How to export diagnostic info?
Use "Export Diagnostic Package" on the status page, or access /api/diagnostics/export to download desensitized zip.
Privacy Policy
Last updated: December 2025
WorkMirror follows Local-first & Privacy by default: local storage by default, desensitization by default, offline-capable by default.
Data Storage
Collected data (window events, Diff, browser history, etc.) is written to local SQLite database (default ./data/workmirror.db). Local HTTP only listens on 127.0.0.1, not exposed to LAN/public network.
Default Desensitization
Desensitization is enabled by default: URLs have query/fragment cleared, keeping only domain and "path exists" fact; window/browser titles have sensitive fragments replaced by rules. You can adjust privacy.patterns in config.
AI Processing
Without any Key configured, no external AI is called. With AI enabled, desensitized minimum necessary text is sent to your configured provider (e.g., DeepSeek / SiliconFlow) only when semantic summaries/suggestions are needed.
Settings & Privacy
Config file is YAML: default path ./config/config.yaml (auto-generated on first startup). Refer to template ./config/config.yaml.example.
Recommended to inject Key via environment variables (avoid writing to disk/committing to repo), e.g., DEEPSEEK_API_KEY, SILICONFLOW_API_KEY.
Terms of Service
WorkMirror is open-source software (MIT License), provided "as is" without any warranty of fitness or defect-free. Any data and consequences generated from your local use are your own responsibility.
This project does not provide cloud services or account system; local HTTP service is only for local UI and local integration.