Bundle
@sharelights/dsh-typing-insight
DSH input recorder & analyzer: local text capture (keyboard + UIA), daily/weekly stats, topic analysis and report export for daily reports. Privacy-first: local-only, password fields excluded, sensitive data redacted.
- Source
- SYeShare
- License
- MIT
- Updated
- Updated 3 days ago
Readme
# typing-insight — DSH typing analytics & app usage tracker Local-first input recorder, daily/weekly statistics, topic analysis and app usage tracking for **DeepSeek Harness Desktop** (Windows x64). Chinese documentation: [README.zh-CN.md](./README.zh-CN.md). ## Privacy first (read before install) - Global keyboard hook for key counts; committed text is read via UI Automation from focused controls. - Password fields are **fail-closed**: never recorded (keys and text both blocked). Unknown controls are treated as passwords. - Sensitive data (phone / ID / bank card / email) is masked **before** it touches disk. - **Plaintext storage**: data lives in local SQLite files without disk encryption (encryption is a documented, unimplemented feature). The protection is content-level masking, not full-disk security. Do not enable on shared machines. - No network requests at runtime; no window titles, mouse coordinates, screenshots or clipboard content are captured. - **First run requires explicit authorization**: the plugin starts paused; enable capture from the settings panel after reviewing the scope list. - WeChat 4.1.x (MMUI closed rendering): **keys only, no text capture**. Full details: [PRIVACY.md](./PRIVACY.md) · [SECURITY.md](./SECURITY.md) · [RELEASE.md](./RELEASE.md) · [THIRD_PARTY_NOTICES.md](./THIRD_PARTY_NOTICES.md). ## Install ``` dsh plugin add @sharelights/dsh-typing-insight@next ``` (RC channel: the `next` dist-tag. For local tarball installs: `dsh plugin add ./sharelights-dsh-typing-insight-1.0.0-rc.1.tgz`.) Then open Settings → 输入记录与统计 (Typing Insight): review the recording scope, click 开始采集 (Start capture). Uninstall: remove the dependency from the DSH profile's package.json and restart DSH Desktop. **Uninstalling does not delete recorded data** — clear it first (`/typing clear`) or delete `%USERPROFILE%\.dsh\data\typing-insight\`. ## Commands (10 tools) | Command | Purpose | | --- | --- | | /typing status | capture state, hook/UIA health, today counts, DB size | | /typing today [date] | daily stats: units/keys/active time/speed/app & hourly distribution | | /typing report [week-offset] | weekly trend, top apps, keywords, summary | | /typing analyze [date\|all] | keywords, topic clusters (≤5), local extractive summary | | /typing export date [md\|json\|csv] | daily report export with SHA-256 | | /typing usage [date] | per-app foreground / foreground-active / strong-interaction minutes + gaps | | /typing pause / resume | pause / resume capture | | /typing clear [date] | delete recorded data (confirmation required, unrecoverable) | | /typing config | get/set config (scope, retention, hotkey, analysis) | ## Capture behavior & compatibility | App type | Keys | Text | | --- | --- | --- | | Chromium / UIA apps (Chrome, Edge, ChatGPT, DingTalk, DSH Desktop…) | ✓ | ✓ | | Standard Win32 edit controls (Notepad…) | ✓ | ✓ | | IMM32 fallback channel | ✓ | partial | | **WeChat 4.1.x (MMUI closed renderer)** | ✓ | **✗** (keys-only, badge shown in panel) | | Password fields | ✗ | ✗ | | Fullscreen-exclusive apps (games) | ✓ (keys-only, capture_mode=2) | ✗ | Software usage time is tracked with three metrics side by side: foreground / **foreground-active** (default core metric; foreground and not AFK — an estimate, not actual work output) / strong-interaction. AFK default 180s (60/180/300 configurable), unknown gaps are never attributed to any app. ## Limitations & known issues - SQLite is not encrypted (FR-022 not implemented). - Helper exe is **not Authenticode-signed** yet — this release is rc/beta only (not `latest`). SHA-256 is published in RELEASE.md. - Extractive local summary (generative model summary not implemented). - See SECURITY.md and RELEASE.md §7/§9 for the full lists. ## Development - `npm test` — full regression (10 suites; add `--with-e2e` for the focus-stealing E2E). - `npm run verify:release` — package hygiene gate (runs automatically on `npm pack` via prepack). - `npm pack --dry-run --json` — inspect the publish tarball. - Helper source: `native/uia/Program.cs` (.NET Framework 4.8, compiled with csc; the prebuilt exe ships in the package). ## License MIT © 2026 sushare. See [LICENSE](./LICENSE).
Install
dsh plugin --profile web add github:SYeShare/dsh-typing-insight
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install sharelights-dsh-typing-insight from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.