Piia Engram

A user-owned local identity and long-term knowledge layer shared across AI coding tools.

Stars
★ 162
Last updated
1d ago
License
AGPL-3.0
Primary language
Python

At a glance

How it runs
CLIMCP serverSelf-hosted service
Works with
Universal · cross-platformCodex · Claude CodeChatGPT (Partial support)
Cost
Free, no paid service needed
Setup effort
Low · running in minutes
You'll need
Python 3.10+An MCP-compatible client for direct integrationShell / CLILocal filesystemMCP Server
Typical use
A developer alternating among Claude Code, Codex, and Cursor who wants every client to read the same coding preferences and lessons.
Not a fit if
  • Teams requiring encryption of every local memory file
  • Organizations requiring cryptographically authenticated caller isolation
  • Users seeking task-session history rather than personal identity knowledge
Source review
88/100 · Good

What does this agent do, and when should you use it?

Piia Engram is a local-first AI work identity layer for developers, not a general agent session-memory database. It stores identity, preferences, quality standards, project snapshots, lessons, decisions, and operational playbooks as JSON and Markdown under `~/.engram/`. A Python CLI and MCP stdio server expose retrieval, writeback, review, import/export, and session-recovery operations to clients such as Claude Code, Codex, and Cursor; ChatGPT, Gemini, and Kimi can use an exported Markdown identity card instead. Identity and knowledge operations make no network calls by default, while hybrid search, remote SSE deployment, encryption, governance, and telemetry are optional. It is a strong fit for developers who move between coding assistants and want inspectable, portable context, provided they accept the documented plaintext defaults and caller-identity limitations.

After installation, engram setup detects the Python environment and supported AI tools, asks where to keep the store, and—after confirmation—backs up and updates MCP configuration files. MCP clients can call get_user_context to load approved identity and knowledge, retrieve lessons, decisions, and playbooks through search_knowledge, get_relevant_knowledge, or get_recall, and write new material through add_lesson, add_decision, add_playbook, or the unified memory_store endpoint. save_project_snapshot, get_recent_context, and get_resume_brief support project and cross-session continuity; wrap_up_session records session outcomes and can create reviewable playbook drafts when it detects a multi-step workflow. High-risk material waits for review, low- and medium-risk writes remain auditable and reversible, and ENGRAM_APPROVAL=strict can gate every write. engram preview --as automation shows what a caller would receive, engram doctor diagnoses the installation, and export_engram, import_engram, and get_identity_card handle full backups, preview-first imports, and Markdown output for non-MCP tools. Search is keyword-based by default; installing the vector extra and setting ENGRAM_SEARCH=hybrid adds FTS5 plus semantic retrieval, including cross-language recall.

  1. A developer alternating among Claude Code, Codex, and Cursor who wants every client to read the same coding preferences and lessons.
  2. An engineer opening many fresh chats who wants get_user_context or get_resume_brief to reduce repeated onboarding.
  3. A system architect preserving decisions, rejected alternatives, and rationale for retrieval across later projects.
  4. A team repeating release or deployment procedures that wants sessions converted into reviewable playbook drafts with recorded outcomes.
  5. A privacy-conscious individual who wants memory in inspectable, editable, backup-friendly local files.
  6. A user bringing the same work identity into ChatGPT, Gemini, or Kimi through an exported Markdown card when MCP is unavailable.

How do you install or deploy this agent?

Python 3.10+ is required. Install the package and run its interactive setup:

pip install piia-engram
engram setup

The wizard lists the client configuration files it intends to modify and writes the MCP connection only after confirmation, backing up each external file first. For CI or another non-interactive environment, apply the external configuration directly:

engram setup --apply-external-config

Restart the configured AI client and verify the installation:

engram doctor

Optional semantic vector retrieval requires the extra package:

pip install "piia-engram[vector]"

Then set ENGRAM_SEARCH=hybrid in the MCP environment. The default identity and knowledge path requires neither a network connection nor an API key.

How do you use this agent?

For Codex, add this to ~/.codex/mcp.json:

{
  "mcpServers": {
    "piia-engram": {
      "command": "python",
      "args": ["-m", "piia_engram.mcp_server"]
    }
  }
}

Claude Code can register the stdio MCP server directly:

claude mcp add piia-engram -- piia-engram-mcp

After restarting the client, call get_user_context to obtain approved identity and knowledge. During work, use search_knowledge for relevant lessons and decisions, write through memory_store or add_lesson, add_decision, and add_playbook, then call wrap_up_session when finishing. Preview the exact automation-facing context and check continuity from the terminal:

engram preview --as automation
engram continuity

To expose the advanced tool surface, add the environment setting to the MCP configuration:

{
  "mcpServers": {
    "piia-engram": {
      "command": "python",
      "args": ["-m", "piia_engram.mcp_server"],
      "env": {
        "ENGRAM_TOOLS": "all"
      }
    }
  }
}

For a client without MCP support, use get_identity_card and paste the generated Markdown into the conversation; that fallback is not automatic synchronization.

What are this agent's strengths and limitations?

Pros
  • One local store serves multiple MCP coding clients, reducing dependence on any single product's native memory.
  • JSON and Markdown records are directly inspectable, editable, portable, and backed by a Memory Lens preview of caller-visible context.
  • Lessons, decisions, and playbooks have structured review, history, relation, merge, and cross-project inheritance workflows.
  • Identity and knowledge operations make zero network calls by default; remote telemetry and feedback require separate opt-in.
  • The CLI includes health checks, configuration repair, backup-before-write setup, and dry-run import planning.
  • It supports MCP over stdio, a documented self-hosted SSE mode, and a Markdown fallback for clients without MCP.
Limitations
  • Local JSON and Markdown are plaintext by default; AES-256-GCM covers supported profile fields rather than the entire store.
  • Any process with read access to ~/.engram/ can read the data, and restricted_fields is not a true ACL.
  • MCP does not provide reliable tool identity, so governance relies on environment variables rather than cryptographic authentication.
  • Client evidence varies: Claude Code and Codex have a partial cross-tool proof, Cursor has a read/search evidence path, and several clients are only expected to work.
  • Hybrid search adds a vector dependency, while remote operation requires a token, HTTPS reverse proxy, and CORS configuration.
  • The supplied documentation disagrees on tool counts: some sections say 19 core or 59 total, while the enumerated table and FAQ say 18 core plus 40 advanced.

How does this agent compare with similar options?

Compared with Claude Memory, Piia Engram keeps its records in user-controlled local files and targets multiple MCP tools instead of the Claude ecosystem alone. Compared with CLAUDE.md or .cursorrules, it preserves personal preferences, lessons, and decisions across repositories; repository rule files remain the better place for project-specific build steps and conventions. Mem0, Zep, and Letta focus on task or session memory for agents, whereas Piia Engram focuses on the person behind those tasks and their enduring work standards. The official @modelcontextprotocol/server-memory provides a generic entity-relation knowledge graph, while Piia Engram adds structures specifically for developer identity, quality standards, lessons, decisions, and governed review.

Key facts side by side with the most closely related agents.

Agent Source review Form / cost Stars Updated Language Full support on
Piia Engram This agent 88 · Good CLIFree ★ 162 1d ago Python Codex · Claude Code
Remnic Agent Memory 85 · Good CLIFree + model costs ★ 210 6d ago TypeScript ChatGPT · Codex · Claude Code · OpenAI API
Obsidian Mind 79 · Good CLIFree ★ 4.7k 23d ago TypeScript Codex · Claude Code
Emulo 78 · Good Agent plugin / skillFree + model costs ★ 292 today HTML Codex · Claude Code

How does FollowAgents rate this agent?

FollowAgents source review · FARS-2.1
Good
88/ 100 5-point scale 4.4 / 5
Trust 27/29
Reliability 11/14
Adaptability 16/18
Convention 15/18
Effectiveness 12/13
Verifiability 7/8
Why each dimension lost points
Trust27 / 29 · 4.7/5

Core identity and knowledge operations are documented as local and network-free by default, while telemetry, remote telemetry, feedback, web reading, and expanded capabilities require separate enablement. External configuration targets are listed before confirmation, high-risk knowledge awaits review, and strict mode can gate every write. Data locations, plaintext defaults, limited field encryption, disclosure controls, audit logs, endpoints, and telemetry payload exclusions are described concretely; configuration writes are backed up and repair commands separate preview from application. Dependency security loses a point because CI generates an SBOM and invokes pip-audit, but the audit ends with “|| true” and therefore cannot block a vulnerable build, while most dependencies have only lower bounds. Source and operation provenance are partly covered, but package authorship is the generic “Engram Contributors”; with unknown publisher identity, specific stewardship and complete attribution of stored knowledge are not established.

Reliability11 / 14 · 3.9/5

The README, package metadata, and CI are broadly consistent about versioning, supported Python versions, core dependencies, and public-claim guards. CI covers four Python versions and Linux, macOS, and Windows, with a separate job for security, UI, and reader extras. Deductions apply to dependency availability and failure reporting: optional vector search requires an approximately 230–280MB model download, and remote/vector surfaces are expressly deferred from extras CI. Doctor/status commands, installation hints, and fallback launch paths exist, but the supplied material does not show structured runtime errors, recovery guidance, or their implementation across major failure paths.

Adaptability16 / 18 · 4.4/5

The intended developer audience, cross-tool switching, frequent fresh sessions, and several professional scenarios are clearly described. Boundaries distinguish core from advanced tools, default from optional networking, MCP from Markdown fallback, and validated clients from those merely expected to work. Environment fit covers Python 3.10–3.13, Linux/macOS/Windows, and multiple client configurations. Trigger precision is reduced because automatic extraction, startup loading, risk classification, and capability groups are described without the full tool schemas, trigger rules, conflict precedence, or false-trigger controls in the supplied source.

Convention15 / 18 · 4.2/5

The README has strong navigation, quick installation, configuration examples, wizard steps, diagnostic commands, usage examples, FAQ links, client evidence levels, and explicit limitations. AGPL-3.0-or-later metadata agrees with the complete AGPL text. Naming loses a point because piia-engram, piia-engram-mcp, and the deprecated engram alias coexist; the migration direction is documented but still creates instability. Version 4.21.0 and release-consistency gates are shown, but no actual CHANGELOG entries or migration history are supplied, so changelog evidence is thin. A security mailbox and response targets identify one maintenance channel, but generic authorship and unknown publisher identity leave long-term ownership and backup stewardship unclear.

Effectiveness12 / 13 · 4.6/5

Outputs are usable through JSON, Markdown identity cards, MCP responses, HTML previews, status pages, and metadata-only continuity reports, with visible editing, auditing, filtering, and export paths. Compared with single-client native memory, the independent, inspectable, cross-client layer offers a concrete marginal capability. Cost-benefit loses a point because static evidence cannot establish real-world recall quality or time saved; advanced vector search has a substantial download footprint, and users must maintain local data, approvals, client configuration, and optional secrets.

Verifiability7 / 8 · 4.4/5

A public-facts manifest, claim-drift checks, trust-claim checks, capability witnesses, synthetic demonstrations, memory evaluations, and release gates give major claims explicit static trace paths. The README also separates synthetic regression evidence, client evidence levels, and the need for live model-compliance testing. Cross-source corroboration loses a point because many referenced documents, implementation files, and test assertions are absent from the supplied material, and the CI vulnerability audit is non-blocking. Fact/inference separation is otherwise strong: labels such as “partial,” “pending,” and “expected to work” are used, and static consistency checks are explicitly distinguished from third-party security audits.

Risks and how to mitigate them
  • This assessment uses only the supplied static files. Installation, tests, demonstrations, benchmarks, and security scans were not executed, and linked documentation or implementation was not independently inspected.
  • Identity and knowledge files are plaintext JSON/Markdown by default. Optional AES-256-GCM covers only supported sensitive profile fields, not the whole store; users on shared devices, backups, or synchronized folders should add disk- or directory-level protection.
  • The CI pip-audit command uses “|| true,” so discovered dependency vulnerabilities do not fail that job. Run an independently blocking audit and review complete pinning or constraint practices before deployment.
  • engram setup --apply-external-config bypasses interactive confirmation. Automation should verify target configuration files and resulting backups in advance.
  • Remote telemetry, feedback, and read_web_content are disabled by default or explicitly invoked, but enabling them creates outbound network effects; inspect configured endpoint variables and preview payloads.
  • The publisher is not verified by the FollowAgents enterprise registry, and package authorship is generic. Identity and long-term maintenance responsibility are therefore unknown; this is not evidence of maliciousness.
  • AGPL-3.0-or-later can impose source-availability obligations for modification, distribution, and network-service deployment; perform a license-compliance review before adoption.
Evidence confidence: Low Reviewed Sep 25, 2026 Reviewed revision 44763ab22d7d
See the full review method →

FAQ

Does it require a paid model or cloud account?
No. It is AGPL-3.0 software with no subscription requirement for personal local use, and its identity and knowledge tools do not require a model API key.
Is the local data encrypted by default?
No. The default store is plaintext JSON and Markdown. Installing piia-engram[secure] and setting ENGRAM_SECRET enables AES-256-GCM for supported profile fields, not full-store encryption.
Will setup silently change my Codex or Cursor configuration?
engram setup displays the target files and waits for confirmation, creating backups before writing; declining leaves them unchanged. engram setup --apply-external-config intentionally skips that prompt.
What should I do if MCP disconnects after an upgrade?
Run piia-engram doctor --fix and restart the affected AI client. The command checks known MCP configurations and repairs stale entries or broken paths.
Can ChatGPT connect directly to the same live memory?
The documented ChatGPT path is a Markdown fallback: generate a card with get_identity_card and paste it into the chat. It is not the same live local connection offered to MCP clients.
View on GitHub ↗ Install ↓

Compare agents like this one

The same FARS review applied across the shortlist this agent qualifies for.

Related agents