{"adoption": {"forks": 45, "observed_at": "2026-08-28T04:03:18.337597+00:00", "stars": 1035}, "canonical_url": "https://ross.abutalabs.com/products/drjonac-pensieve", "card": {"archived": false, "artifact_type": "application", "description": "Observe how memory shapes an answer.  Pensieve is an interactive system for visualizing, interpreting, and managing how Large Language Models (LLMs) “remember” a user. It bridges the gap between model-level mechanisms and user-level understanding, making AI memory observable, explainable, and partially controllable.", "domain": ["artificial-intelligence", "large-language-models", "privacy", "data-visualization", "developer-tools"], "enriched": true, "function": ["data-visualization", "analytics", "security", "privacy", "developer-tools"], "health_score": 77, "homepage": null, "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["DrJonaC/Pensieve"], "name": "DrJonaC/Pensieve", "platform": ["self-hosted", "cross-platform"], "pushed_at": "2026-07-28T22:06:43+00:00", "repo": "DrJonaC/Pensieve", "stars": 1035, "tags": ["ai-memory", "memory-governance", "llm-memory", "nextjs", "dashboard", "explainability", "local-first", "memory-management", "web-server", "nodejs"], "topics": [], "urls": [], "use_cases": ["see what an AI assistant remembers about me", "inspect and manage LLM memory records", "hide or soften sensitive memories stored by AI", "audit how AI memory shapes responses", "generate a report of AI memory governance decisions", "control what personal context persists across chat sessions"], "what_it_is": "Pensieve is a local-first dashboard for visualizing, interpreting, and governing the structured memory that LLMs keep about users. It exposes memory state, enables reversible governance actions (pin, soften, hide, restore), and compiles decisions into reports, manifests, and verifiable provider receipts.", "when_to_avoid": ["you need to modify model weights or fine-tune memory formation itself", "you want a fully automated memory manager without human review", "you need a production-grade enterprise governance platform rather than a research preview"], "when_to_choose": ["you use LLM tools with persistent memory and want visibility and control over it", "you need explainable, reversible governance of AI memory state", "you want a local-first, self-hosted memory dashboard with verifiable write-back"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/drjonac-pensieve", "repo": "DrJonaC/Pensieve", "role": "main", "score": 57}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.337597+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:04:44.466394+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d05d992a0a92d0f82b59406386d2093c838ff2b4f5957d70da8a567dc6edf7c7", "fetched_at": "2026-08-28T04:03:18.337597+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DrJonaC/Pensieve"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.337597+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:04:44.466394+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d05d992a0a92d0f82b59406386d2093c838ff2b4f5957d70da8a567dc6edf7c7", "fetched_at": "2026-08-28T04:03:18.337597+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DrJonaC/Pensieve"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:04:44.466394+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d05d992a0a92d0f82b59406386d2093c838ff2b4f5957d70da8a567dc6edf7c7", "fetched_at": "2026-08-28T04:03:18.337597+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DrJonaC/Pensieve"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.337597+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.337597+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.337597+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:04:44.466394+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d05d992a0a92d0f82b59406386d2093c838ff2b4f5957d70da8a567dc6edf7c7", "fetched_at": "2026-08-28T04:03:18.337597+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DrJonaC/Pensieve"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.337597+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.337597+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:04:44.466394+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d05d992a0a92d0f82b59406386d2093c838ff2b4f5957d70da8a567dc6edf7c7", "fetched_at": "2026-08-28T04:03:18.337597+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DrJonaC/Pensieve"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.337597+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.337597+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.337597+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:04:44.466394+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d05d992a0a92d0f82b59406386d2093c838ff2b4f5957d70da8a567dc6edf7c7", "fetched_at": "2026-08-28T04:03:18.337597+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DrJonaC/Pensieve"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.337597+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.337597+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:04:44.466394+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d05d992a0a92d0f82b59406386d2093c838ff2b4f5957d70da8a567dc6edf7c7", "fetched_at": "2026-08-28T04:03:18.337597+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DrJonaC/Pensieve"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:04:44.466394+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d05d992a0a92d0f82b59406386d2093c838ff2b4f5957d70da8a567dc6edf7c7", "fetched_at": "2026-08-28T04:03:18.337597+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DrJonaC/Pensieve"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:04:44.466394+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d05d992a0a92d0f82b59406386d2093c838ff2b4f5957d70da8a567dc6edf7c7", "fetched_at": "2026-08-28T04:03:18.337597+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DrJonaC/Pensieve"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:04:44.466394+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d05d992a0a92d0f82b59406386d2093c838ff2b4f5957d70da8a567dc6edf7c7", "fetched_at": "2026-08-28T04:03:18.337597+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DrJonaC/Pensieve"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 94, "longevity": 10, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "young"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 142, "days_push": 36, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 57, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}