惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LangChain Blog
B
Blog RSS Feed
阮一峰的网络日志
阮一峰的网络日志
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
H
Help Net Security
MyScale Blog
MyScale Blog
WordPress大学
WordPress大学
Microsoft Azure Blog
Microsoft Azure Blog
GbyAI
GbyAI
小众软件
小众软件
大猫的无限游戏
大猫的无限游戏
Martin Fowler
Martin Fowler
Vercel News
Vercel News
S
SegmentFault 最新的问题
M
MIT News - Artificial intelligence
Microsoft Security Blog
Microsoft Security Blog
G
Google Developers Blog
Last Week in AI
Last Week in AI
Hugging Face - Blog
Hugging Face - Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 【当耐特】
Google DeepMind News
Google DeepMind News
Engineering at Meta
Engineering at Meta
云风的 BLOG
云风的 BLOG

Show HN

Show HN: AI agents for UK GDAD PCF roles and their skills The Two Pillars: Mixer Mode and Meta-Software in the Reorganization of Software Work After AI GitHub - JaiCode08/teleport-env What 1,000+ Harness Experiments Taught Me About Self-Improving Agents Show HN: Liiists, a Markdown-first, iOS and CLI list app SwiperTab – Get this Extension for 🦊 Firefox (en-US) GitHub - kouhxp/fftext: Summarize, explain, fact-check, or translate any text, URL, or file. No GPU. No cloud. One command GitHub - sweetpad-dev/sweetpad: Develop Swift/iOS projects using VSCode GitHub - dogmaticdev/IRON: IRON a.k.a. Intermediate Representation Object Notation is a Interpreter/Database that is used to create Programming Languages. GitHub - sjhalani7/vaen: Package your AI coding harness into a portable .agent file, and share it across repos, teams, & the community without ever having to copy-paste instructions, skills, MCP config, or secrets. Show HN: Gandalf the Grader Show HN: Citadeld – replay any CI failure locally from a single file GitHub - tdortman/cuSBF: High-Performance GPU Super Bloom Filter coral-ai/claude-code-token-xray at main · Coral-Bricks-AI/coral-ai GitHub - ulyssestenn/funes: Funes is a Git-based framework for LLM-managed knowledge work: an AI Librarian ingests raw sources, builds an interlinked Markdown knowledge base, and uses it to produce cited reports, analyses, and other outputs. GitHub - ThatXliner/gah: Git Add Hunk, built for agents to use GitHub - harmont-dev/harmont-cli: Command-line client for the Harmont CI platform GitHub - brooksmcmillin/mcp-authflow: OAuth 2.0 Authorization Server framework for MCP servers GitHub - javaid-codes/audit-supply-chain-agents GitHub - amorey/gochan: A small library of common channel architectures for Go, inspired by Rust GitHub - arifozgun/OpenGem: Free, Open-Source AI API Gateway with Gemini, OpenAI & Anthropic Compatibility in 1 file GitHub - Pranesh950/BioPetals: 🌸 Run BIOxAI models at home, BitTorrent-style. Fine-tuning and inference up to 10x faster than offloading GitHub - cnguyen14/bounty-doctor: Diagnose a GitHub bounty issue before you waste hours: detects honeypot scam repos, AI-bot attempt swarms, and stale contests. Show HN: CoreMCP – MCP Server for On-Prem DBs Show HN: KittyHTML – Render HTML/CSS as an inline image in your terminal GitHub - bingud/filemat: Web-based file manager Show HN: TruthLens – Free multi-signal deepfake image detector GitHub - apexlocal-jz/claude-usage-tray: Windows system-tray app showing your Claude Code rate-limit usage at a glance. Zero deps, ~300 lines of PowerShell. Cross-IDE (works regardless of VS Code, Cursor, plain terminal). Release v0.1.2.1 · kouhxp/yapsnap GitHub - noopolis/moltnet: Self-hostable chat network for AI agents. Pre-built bridges for Claude Code, Codex, and the Claws. Rooms, DMs, history. No Slack bots, no Matrix, no glue code.
GitHub - almakit/alma: Your self, in every light - a loca...
0set0set · 2026-06-24 · via Show HN

Alma gives AI agents a memory that belongs to you.

It 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.

The 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.

Alma keeps the data on your machine, exposes only the parts you approve, and makes every durable change auditable.

Status: experimental hobby project. APIs and behavior may change.

Why Alma

AI agents are becoming long-running collaborators, but their memory is still fragmented:

  • Each tool learns a separate version of you.
  • New chats often start from zero.
  • Vendor memory is hard to inspect, move, or share across tools.
  • Letting an agent write directly to long-term memory is too much trust.

Alma 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.

The model

Alma stores a self model as facts called facets. A facet is a value for a specific dimension, such as person.display_name or a work-style preference. Facets carry status, confidence, source, and evidence.

The source of truth is an append-only event log. Current state is rebuilt from the log, which keeps changes inspectable and reversible by replay.

Agents 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.

Consent by default

Alma treats the agent as untrusted and the local human as the authority.

  • Reads are scoped by grant and purpose.
  • The default agent surface is least privilege.
  • Sensitive layers and lens namespaces are opt-in.
  • Admin actions live in the CLI, Companion, or an explicit admin server mode.
  • Every Reading is audited.
  • Full export is admin-only.

The practical result: an agent can adapt to you, but it cannot quietly take over your memory.

How agents use it

Agents talk to Alma over MCP, using the official Rust rmcp SDK over stdio.

The main read tool is alma_get_reading. Agents pass the user's question and Alma ranks the relevant dimensions in the Reading focus. If an agent needs exact keys, it calls list_dimensions first instead of guessing.

For example, a question about your name should resolve to person.display_name, not a made-up key like identity.name. If an agent asks for an unknown canonical dimension, Alma returns UNKNOWN_DIMENSION with suggestions.

For writes, the normal path is propose and approve:

  1. The agent calls alma_propose_facet.
  2. Alma returns a confirmation question for the person.
  3. The person approves from the CLI or Companion.
  4. The agent redeems the one-time token with alma_record_facet.

No approval token, no durable write.

What ships today

Alma currently builds three local binaries:

  • alma-server: the MCP server agents connect to.
  • alma: the CLI for setup, grants, proposals, export, and reset.
  • alma-companion: a local TUI for reviewing and managing your self model.

All three use the same store at ~/.alma/alma.db. You can override it with ALMA_DB.

There are no packaged releases yet. Build from source with Cargo.

cd alma
cargo build --release

Then run the guided setup:

./target/release/alma quickstart

Or connect a host manually:

./target/release/alma connect cursor --apply --global
./target/release/alma connect claude --apply

Reload the host and the alma MCP server should appear.

Companion

alma-companion is the local UI for people who do not want to edit JSON. It opens the same store as the server and CLI.

Use it to:

  • Browse and confirm facets.
  • Preview the Reading an agent would receive.
  • Review grants, requests, and audit events.
  • Approve or deny proposed memories.
alma-companion
ALMA_SEED=./my-self.json alma-companion

Portability

Your self model should not be trapped in one app.

alma_export_bundle exports the full event log as a compact JWS signed with Ed25519. The public key is embedded in the header, so the bundle can be verified without a prior key exchange. Import replays the events into a fresh store, and tampering invalidates the signature.

Reset

You can erase the local store and start over.

alma delete                # asks for DELETE before removing local data
alma delete --yes          # non-interactive
alma delete --keep-key     # keep the signing key, wipe the store

Deletion is a human-only action. It is not exposed as an MCP tool.

Protocol

The wire contract lives in the repo:

Development

The project uses the pinned Rust toolchain. just is optional but recommended for local checks.

just fmt-check
just lint
just test
just conformance
just coverage
just check

CI runs build, tests, lint, conformance, coverage, and cargo audit. Release automation is intentionally not enabled yet; builds are local-only.

License

Apache-2.0. See LICENSE.