{"slug": "show-hn-yourself-in-every-light", "title": "Show HN: Yourself, in Every Light", "summary": "Alma is a new open-source, local-first MCP server that gives AI agents a personal memory store controlled by the user. The project stores facts and preferences on the user's machine, requires human approval for writes, and aims to prevent vendor lock-in while keeping memory auditable and portable.", "body_md": "Alma gives AI agents a memory that belongs to you.\n\nIt is a local-first MCP server for the facts and preferences you keep repeating across new chats: your name, role, working style, answer preferences, current context, principles, values, and other parts of your self model.\n\nThe goal is simple: an agent should be able to understand you without trapping that understanding inside one vendor account, and without getting permanent write access to your personal context.\n\nAlma keeps the data on your machine, exposes only the parts you approve, and makes every durable change auditable.\n\nStatus: experimental hobby project. APIs and behavior may change.\n\nAI agents are becoming long-running collaborators, but their memory is still fragmented:\n\n- Each tool learns a separate version of you.\n- New chats often start from zero.\n- Vendor memory is hard to inspect, move, or share across tools.\n- Letting an agent write directly to long-term memory is too much trust.\n\nAlma is a small local layer between you and the agents you use. The agent can ask Alma what it is allowed to know, and Alma returns a scoped Reading instead of the full store.\n\nAlma stores a self model as facts called facets. A facet is a value for a specific\ndimension, such as `person.display_name`\n\nor a work-style preference. Facets carry\nstatus, confidence, source, and evidence.\n\nThe source of truth is an append-only event log. Current state is rebuilt from the log, which keeps changes inspectable and reversible by replay.\n\nAgents do not edit facts directly. They can observe weak signals, record evidence-backed behavior when explicitly granted, or propose a new facet for the person to approve. Durable writes require a human approval token.\n\nAlma treats the agent as untrusted and the local human as the authority.\n\n- Reads are scoped by grant and purpose.\n- The default agent surface is least privilege.\n- Sensitive layers and lens namespaces are opt-in.\n- Admin actions live in the CLI, Companion, or an explicit admin server mode.\n- Every Reading is audited.\n- Full export is admin-only.\n\nThe practical result: an agent can adapt to you, but it cannot quietly take over your memory.\n\nAgents talk to Alma over [MCP](https://modelcontextprotocol.io), using the official\nRust [ rmcp](https://crates.io/crates/rmcp) SDK over stdio.\n\nThe main read tool is `alma_get_reading`\n\n. Agents pass the user's question and Alma\nranks the relevant dimensions in the Reading focus. If an agent needs exact keys,\nit calls `list_dimensions`\n\nfirst instead of guessing.\n\nFor example, a question about your name should resolve to `person.display_name`\n\n,\nnot a made-up key like `identity.name`\n\n. If an agent asks for an unknown canonical\ndimension, Alma returns `UNKNOWN_DIMENSION`\n\nwith suggestions.\n\nFor writes, the normal path is propose and approve:\n\n- The agent calls\n`alma_propose_facet`\n\n. - Alma returns a confirmation question for the person.\n- The person approves from the CLI or Companion.\n- The agent redeems the one-time token with\n`alma_record_facet`\n\n.\n\nNo approval token, no durable write.\n\nAlma currently builds three local binaries:\n\n`alma-server`\n\n: the MCP server agents connect to.`alma`\n\n: the CLI for setup, grants, proposals, export, and reset.`alma-companion`\n\n: a local TUI for reviewing and managing your self model.\n\nAll three use the same store at `~/.alma/alma.db`\n\n. You can override it with\n`ALMA_DB`\n\n.\n\nThere are no packaged releases yet. Build from source with Cargo.\n\n```\ncd alma\ncargo build --release\n```\n\nThen run the guided setup:\n\n```\n./target/release/alma quickstart\n```\n\nOr connect a host manually:\n\n```\n./target/release/alma connect cursor --apply --global\n./target/release/alma connect claude --apply\n```\n\nReload the host and the `alma`\n\nMCP server should appear.\n\n`alma-companion`\n\nis the local UI for people who do not want to edit JSON. It opens\nthe same store as the server and CLI.\n\nUse it to:\n\n- Browse and confirm facets.\n- Preview the Reading an agent would receive.\n- Review grants, requests, and audit events.\n- Approve or deny proposed memories.\n\n```\nalma-companion\nALMA_SEED=./my-self.json alma-companion\n```\n\nYour self model should not be trapped in one app.\n\n`alma_export_bundle`\n\nexports the full event log as a compact JWS signed with\nEd25519. The public key is embedded in the header, so the bundle can be verified\nwithout a prior key exchange. Import replays the events into a fresh store, and\ntampering invalidates the signature.\n\nYou can erase the local store and start over.\n\n```\nalma delete                # asks for DELETE before removing local data\nalma delete --yes          # non-interactive\nalma delete --keep-key     # keep the signing key, wipe the store\n```\n\nDeletion is a human-only action. It is not exposed as an MCP tool.\n\nThe wire contract lives in the repo:\n\n: JSON Schemas for protocol artifacts.`schemas/2026-06/`\n\n: conformance cases for running implementations.`conformance/2026-06/`\n\nThe project uses the pinned Rust toolchain. `just`\n\nis optional but recommended for\nlocal checks.\n\n```\njust fmt-check\njust lint\njust test\njust conformance\njust coverage\njust check\n```\n\nCI runs build, tests, lint, conformance, coverage, and `cargo audit`\n\n. Release\nautomation is intentionally not enabled yet; builds are local-only.\n\nApache-2.0. See [LICENSE](/almakit/alma/blob/main/LICENSE).", "url": "https://wpnews.pro/news/show-hn-yourself-in-every-light", "canonical_source": "https://github.com/almakit/alma", "published_at": "2026-06-30 23:54:43+00:00", "updated_at": "2026-07-01 00:20:04.118237+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "ai-infrastructure"], "entities": ["Alma", "MCP", "Rust", "rmcp", "CLI", "TUI"], "alternates": {"html": "https://wpnews.pro/news/show-hn-yourself-in-every-light", "markdown": "https://wpnews.pro/news/show-hn-yourself-in-every-light.md", "text": "https://wpnews.pro/news/show-hn-yourself-in-every-light.txt", "jsonld": "https://wpnews.pro/news/show-hn-yourself-in-every-light.jsonld"}}