← Back to home@guhanfei-ai

dsh-introspect

Local-first self-observability for DeepSeek Harness — events, personal metrics and reality feedback.

Stars
0
Language
JavaScript
Created
Sep 16, 2026
Updated
Sep 17, 2026

Introduction

dsh-introspect

Local-first self-observability for DeepSeek Harness.

Observe your events, energy, time, value, direction and reality feedback — locally.

Observe the world. Introspect the self.


What it does

Records real events into a local SQLite database and projects them onto five observation axes:

AxisQuestionRange
MELHow much usable mental energy is available?0–200
RRIDid the real world observably move?0–100
ROIWhat did this return to me relative to what it cost?unbounded
ARCTICDid this move me toward where I want to go?-10..+10
TSAHow much finite time did this consume?minutes, nullable

The right-side Introspect panel shows all five, a MEL × RRI time series, and recent events.

Why MEL × RRI? High internal energy does not necessarily imply high external progress. dsh-introspect deliberately keeps mental energy and reality feedback as separate dimensions so you can see when they diverge.


Install

dsh plugin --profile web add link:/path/to/dsh-introspect

Or from a published tag:

dsh plugin --profile <profile> add <pkg>#v<version>

Tools

ToolDescription
introspect_recordStore one event (only when the user explicitly asks to record).
introspect_statusToday's compact state block.
introspect_todayToday's aggregation and timeline.
introspect_historyBounded multi-day query with filters and sorting.
introspect_getOne event with its verbatim raw text.
introspect_updateCorrect a score when the user says it is wrong.
introspect_deleteRemove one event (requires explicit user confirmation).

How it works

You describe what happened
    ↓
DeepSeek Harness model understands the event
    ↓
introspect_record stores it in local SQLite
    ↓
Introspect panel refreshes automatically
  • The plugin itself never calls any LLM.
  • Events are recorded only when you explicitly ask ("记录一下", "记一笔", "/self ...").
  • All data stays in $DSH_HOME/introspect/events.sqlite3 on your machine.

Right-side panel

The Introspect panel (toggle with the "内观" button) shows:

  1. Five metrics — latest MEL, RRI, ROI, ARCTIC, TSA with trend arrows and averages.
  2. MEL × RRI chart — dual-line time series with the energy-reality gap shaded between them.
  3. Recent events — click to expand full details (raw text, all metrics with reasons, tags).
  4. Live refresh — the panel updates automatically after each recorded event.

Supports dark mode and light mode (follows the DeepSeek Harness theme).


Data

ItemLocation
Database$DSH_HOME/introspect/events.sqlite3
SchemaPRAGMA user_version, single events table
BackupCopy the .sqlite3 file; it's a standard SQLite database

Override with dbPath in the plugin config (cordis.patch.yml).


Privacy

  • No cloud account. No registration, no login, no remote identity.
  • No upload. The plugin does not send its database or any event data to any external service.
  • No external AI calls. The plugin calls no LLM API directly.
  • No telemetry. No analytics, no usage tracking.
  • No auto-capture. Only explicitly requested events are stored.

If the DeepSeek Harness session uses a remote AI provider, the conversation content (including event descriptions) may transit that provider's infrastructure. The plugin controls only its own local storage.

See docs/PRIVACY.md for the full statement.


Development

npm install
npm run build:client   # build client.js from src/client/ fragments
npm test               # run all tests
npm run verify         # build + syntax check + test

Tests cover: SQLite initialization, migration, CRUD, unicode, null metrics, timezone boundaries, tool validation, approval hooks, API trust fence, client pure functions, chart geometry, and secret/hygiene scans.


Metrics documentation

See docs/METRICS.md for the full definition of each axis, their ranges, bands, aggregation rules, and limitations.


Architecture

See docs/ARCHITECTURE.md.


License

MIT