github re-analysis due

sdsrss/claude-mem-lite

github

Persistent long-term memory for Claude Code via MCP — captures coding decisions, bugfixes, and context across sessions. Hybrid FTS5 + TF-IDF search with episode batching. Single SQLite DB, no external services. Alternative to claude-mem with 600x lower cost.

maintainer
sdsrss
license
MIT
first seen
2026-06-01
last seen
2026-06-13
releases · 30d
35
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 20 tools
transport stdio counts 20 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • mem_browse

    claude-mem-lite browse

  • mem_compress

    claude-mem-lite compress --preview

  • mem_defer

    Mark work for a future session (v2.70+). First-class carry-forward signal, surfaced in SessionStart ### Deferred Work block.

  • mem_defer_drop

    Drop a deferred item without fixing it; requires a reason for the audit trail.

  • mem_defer_list

    List open deferred items for the current project.

  • mem_delete

    claude-mem-lite delete <id>

  • mem_export

    claude-mem-lite export

  • mem_fts_check

    claude-mem-lite fts-check [--rebuild]

  • mem_get

    Retrieve full details for specific observation IDs (includes importance and related_ids).

  • mem_maintain

    claude-mem-lite maintain --action scan

  • mem_optimize

    claude-mem-lite optimize --action preview

  • mem_recall

    Recall observations related to a file. Use before editing to surface past bugfixes and context.

  • mem_recent

    Show most recent observations, ordered by time. Quick snapshot of latest activity.

  • mem_registry

    claude-mem-lite registry <action>

  • mem_save

    Manually save a memory/observation. Accepts closes_deferred array for transactional closure of deferred work.

  • mem_search

    FTS5 full-text search with BM25 ranking. Filters by type, project, date range, importance level.

  • mem_stats

    claude-mem-lite stats

  • mem_timeline

    Browse observations chronologically around an anchor point.

  • mem_update

    claude-mem-lite update <id>

  • mem_use

    _MCP only_

skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 609ed47 · analyzer v17 · 14h ago

skills & prompt files 2

code evidence vv2.98.0 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

filesystem 47

  • fs sdsrss-claude-mem-lite-609ed47/adopt-cli.mjs :12 import { existsSync, readdirSync, statSync, mkdirSync, writeFileSync, unlinkSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/experiment/analyze-results.mjs :11 import { readFileSync } from 'node:fs';
  • fs sdsrss-claude-mem-lite-609ed47/experiment/lib/real-deps.mjs :9 import { mkdtempSync, rmSync, mkdirSync, writeFileSync } from 'node:fs';
  • fs sdsrss-claude-mem-lite-609ed47/experiment/run-experiment.mjs :14 import { readdirSync, readFileSync, writeFileSync, appendFileSync } from 'node:fs';
  • fs sdsrss-claude-mem-lite-609ed47/haiku-client.mjs :9 import { readFileSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/hook-context.mjs :5 import { existsSync, readFileSync, writeFileSync, renameSync, unlinkSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/hook-episode.mjs :5 import { readFileSync, writeFileSync, unlinkSync, readdirSync, openSync, closeSync, writeSync, renameSync, statSync, constants as fsConstants } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/hook-llm.mjs :5 import { existsSync, readFileSync, unlinkSync, readdirSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/hook-optimize.mjs :5 import { readFileSync, writeFileSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/hook-semaphore.mjs :5 import { readFileSync, unlinkSync, readdirSync, openSync, closeSync, writeSync, constants as fsConstants } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/hook-shared.mjs :7 import { existsSync, readFileSync, writeFileSync, mkdirSync, renameSync, readdirSync, statSync, unlinkSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/hook-update.mjs :6 import { readFileSync, writeFileSync, copyFileSync, cpSync, readdirSync, existsSync, lstatSync, mkdirSync, rmSync, renameSync, chmodSync } from 'node:fs';
  • fs sdsrss-claude-mem-lite-609ed47/hook.mjs :23 import { readFileSync, writeFileSync, unlinkSync, readdirSync, renameSync, statSync, existsSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/install.mjs :5 import { readFileSync, writeFileSync, existsSync, rmSync, mkdirSync, copyFileSync, cpSync, renameSync, symlinkSync, unlinkSync, readdirSync, statSync, lstatSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/lib/citation-tracker.mjs :13 import { readFileSync, existsSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/lib/cite-back-hint.mjs :15 import { readFileSync, existsSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/lib/doctor-benchmark.mjs :12 import { readFileSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/lib/doctor-drift.mjs :11 import { existsSync, lstatSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/lib/err-sampler.mjs :18 import { appendFileSync, mkdirSync, existsSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/lib/hook-telemetry.mjs :21 import { appendFileSync, mkdirSync, existsSync, readdirSync, readFileSync, statSync, unlinkSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/lib/import-jsonl.mjs :17 import { readFileSync, statSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/lib/metrics.mjs :19 import { appendFileSync, existsSync, mkdirSync, readdirSync, readFileSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/lib/plan-reader.mjs :8 import { readdirSync, statSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/lib/summary-extractor.mjs :12 import { readFileSync, existsSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/lib/task-reader.mjs :28 import { readdirSync, readFileSync, statSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/lib/tmp-fixture-sweep.mjs :15 import { readdirSync, statSync, rmSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/lib/upgrade-banner.mjs :7 import { writeFileSync, existsSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/mem-cli.mjs :29 import { readFileSync, existsSync, readdirSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/memdir.mjs :12 import { readFileSync, writeFileSync, existsSync, renameSync, unlinkSync, mkdirSync, readdirSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/plugin-cache-guard.mjs :15 import { readFileSync, writeFileSync, readdirSync, existsSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/registry-importer.mjs :9 import { mkdirSync, writeFileSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/registry-scanner.mjs :5 import { existsSync, readdirSync, readFileSync, statSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/registry.mjs :5 import { existsSync, mkdirSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/resource-discovery.mjs :4 import { existsSync, readdirSync, statSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/schema.mjs :8 import { existsSync, mkdirSync, readdirSync, renameSync, rmSync, chmodSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/scripts/convert-commands.mjs :5 import { readdirSync, readFileSync, writeFileSync, mkdirSync, rmSync, existsSync, statSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/scripts/extract-repos.mjs :8 import { readdirSync, readFileSync, statSync, existsSync, mkdirSync, copyFileSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/scripts/hook-launcher.mjs :21 import { existsSync, mkdirSync, writeFileSync, statSync } from 'node:fs';
  • fs sdsrss-claude-mem-lite-609ed47/scripts/index-managed.mjs :7 import { readFileSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/scripts/launch-preflight.mjs :14 import { existsSync, readFileSync } from 'node:fs';
  • fs sdsrss-claude-mem-lite-609ed47/scripts/launch.mjs :5 import { existsSync, lstatSync } from 'node:fs';
  • fs sdsrss-claude-mem-lite-609ed47/scripts/p0-forward-probe.mjs :8 import { readdirSync, statSync, createReadStream, copyFileSync, unlinkSync } from 'node:fs';
  • fs sdsrss-claude-mem-lite-609ed47/scripts/pre-skill-bridge.js :6 import { existsSync, readFileSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/scripts/pre-tool-recall.js :7 import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/scripts/prompt-search-utils.mjs :4 import { readFileSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/scripts/user-prompt-search.js :10 import { writeFileSync, readFileSync, existsSync, renameSync } from 'fs';
  • fs sdsrss-claude-mem-lite-609ed47/server.mjs :57 import { rmSync, existsSync, readFileSync, appendFileSync, mkdirSync } from 'fs';

shell / exec 10

  • shell sdsrss-claude-mem-lite-609ed47/experiment/lib/real-deps.mjs :8 import { spawnSync, execFileSync } from 'node:child_process';
  • shell sdsrss-claude-mem-lite-609ed47/haiku-client.mjs :8 import { execFileSync } from 'child_process';
  • shell sdsrss-claude-mem-lite-609ed47/hook-shared.mjs :4 import { execFileSync, spawn } from 'child_process';
  • shell sdsrss-claude-mem-lite-609ed47/hook-update.mjs :5 import { execSync, execFileSync } from 'node:child_process';
  • shell sdsrss-claude-mem-lite-609ed47/install.mjs :4 import { execSync, execFileSync } from 'child_process';
  • shell sdsrss-claude-mem-lite-609ed47/lib/binding-probe.mjs :9 import { execSync } from 'node:child_process';
  • shell sdsrss-claude-mem-lite-609ed47/lib/git-state.mjs :5 import { execFileSync } from 'child_process';
  • shell sdsrss-claude-mem-lite-609ed47/scripts/hook-launcher.mjs :22 import { spawnSync } from 'node:child_process';
  • shell sdsrss-claude-mem-lite-609ed47/scripts/launch.mjs :4 import { execSync } from 'node:child_process';
  • shell sdsrss-claude-mem-lite-609ed47/utils.mjs :6 import { execSync } from 'child_process';

network 5

  • net sdsrss-claude-mem-lite-609ed47/haiku-client.mjs :275 const res = await fetch('https://api.anthropic.com/v1/messages', {
  • net sdsrss-claude-mem-lite-609ed47/hook-update.mjs :232 const res = await fetch(url, { signal: controller.signal, headers });
  • net sdsrss-claude-mem-lite-609ed47/hook.mjs :1160 // background worker so SessionStart never blocks on a GitHub fetch (was an
  • net sdsrss-claude-mem-lite-609ed47/mem-cli.mjs :680 // Window fetch (access-count bump + project auto-scope) shared with MCP.
  • net sdsrss-claude-mem-lite-609ed47/server.mjs :522 // Window fetch (access-count bump + project auto-scope) shared with CLI.

secrets 2

  • secrets sdsrss-claude-mem-lite-609ed47/haiku-client.mjs :81 if (process.env.ANTHROPIC_API_KEY) _mode = 'api';
  • secrets sdsrss-claude-mem-lite-609ed47/registry-github.mjs :51 const token = process.env.GITHUB_TOKEN;

database 6

  • db sdsrss-claude-mem-lite-609ed47/experiment/lib/seed-db.mjs :6 import Database from 'better-sqlite3';
  • db sdsrss-claude-mem-lite-609ed47/registry.mjs :4 import Database from 'better-sqlite3';
  • db sdsrss-claude-mem-lite-609ed47/schema.mjs :5 import Database from 'better-sqlite3';
  • db sdsrss-claude-mem-lite-609ed47/scripts/index-managed.mjs :6 import Database from 'better-sqlite3';
  • db sdsrss-claude-mem-lite-609ed47/scripts/p0-forward-probe.mjs :7 import Database from 'better-sqlite3';
  • db sdsrss-claude-mem-lite-609ed47/scripts/user-prompt-search.js :12 import Database from 'better-sqlite3';

declared dependencies 9

  • @modelcontextprotocol/sdk@^1.26.0
  • better-sqlite3@^12.6.2
  • zod@^4.3.6
  • @eslint/js@^10.0.1
  • @vitest/coverage-v8@^4.0.18
  • eslint@^10.0.0
  • fast-check@^4.5.3
  • knip@^6.12.1
  • vitest@^4.0.18