dsh-innersense
[!NOTE] 🧪 Experimental. An early prototype from the guhanfei-ai lab: the idea is serious, the code is a first cut. There is no stable release yet; APIs, data formats and behavior may change without notice, so it is not recommended for production. Ideas and issues are welcome.
InnerSense — interoception for DeepSeek Harness. dsh-worldsense senses the world outside; InnerSense senses you.
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:
| Axis | Question | Range |
|---|---|---|
| MEL | How much usable mental energy is available? | 0–200 |
| RRI | Did the real world observably move? | 0–100 |
| ROI | What did this return to me relative to what it cost? | unbounded |
| ARCTIC | Did this move me toward where I want to go? | -10..+10 |
| TSA | How much finite time did this consume? | minutes, nullable |
The right-side InnerSense 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. InnerSense deliberately keeps mental energy and reality feedback as separate dimensions so you can see when they diverge.
Install
dsh plugin --profile web add dsh-innersense
Or from a local checkout:
dsh plugin --profile web add link:/path/to/dsh-innersense
Or from a published tag:
dsh plugin --profile <profile> add <pkg>#v<version>
Tools
| Tool | Description |
|---|---|
introspect_record |
Store one event (only when the user explicitly asks to record). |
introspect_status |
Today's compact state block. |
introspect_today |
Today's aggregation and timeline. |
introspect_history |
Bounded multi-day query with filters and sorting. |
introspect_get |
One event with its verbatim raw text. |
introspect_update |
Correct a score when the user says it is wrong. |
introspect_delete |
Remove 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.sqlite3on your machine.
Right-side panel
The Introspect panel (toggle with the "内观" button) shows:
- Five metrics — latest MEL, RRI, ROI, ARCTIC, TSA with trend arrows and averages.
- MEL × RRI chart — dual-line time series with the energy-reality gap shaded between them.
- Recent events — click to expand full details (raw text, all metrics with reasons, tags).
- Live refresh — the panel updates automatically after each recorded event.
Supports dark mode and light mode (follows the DeepSeek Harness theme).
Data
| Item | Location |
|---|---|
| Database | $DSH_HOME/introspect/events.sqlite3 |
| Schema | PRAGMA user_version, single events table |
| Backup | Copy 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
No comments yet. Be the first to write one.