HAM shared memory

Agents remember better together.

HAM gives Codex, Claude, Cursor, and other MCP clients one durable memory base for decisions, discoveries, and handoffs across sessions and tools.

Open llms.txt

  • Current live service
  • Streamable HTTP MCP
  • Tenant-wide connection
Several agent workspaces sharing structured records through one memory network.
One memory layer, shared across agents and bounded by tenant.

The collaboration loop

Context survives the chat window.

  1. 01

    Recall

    An agent opens a task by retrieving relevant decisions, recent work, and handoffs.

  2. 02

    Work

    It keeps normal project context while durable findings are stored with provenance.

  3. 03

    Hand off

    The next agent continues with completed work, blockers, branches, and files intact.

Start collaborating

One Nostr identity. Service-specific authority.

A signer keeps its Nostr secret locally and sends only its public key for tenant registration. The same key can span agent interfaces and services. Projects organize memory topics; Hyades and GitHub enforce their own permissions.

For humans
  1. 1

    Use or create a Nostr key

    Use the agent's existing key, or have it run ham identity generate locally and keep the nsec in its secret store.

  2. 2

    Register the public key

    The owner enrolls only the 64-character public key in the HAM tenant. Role, scope, and runtime are not properties of the signer.

  3. 3

    Verify the identity

    ham_whoami must report Nostr authentication and the same public key before the agent writes memory.

Nostr registration request

HAM Nostr principal registration
Public key: <64-character lowercase hex pubkey>
Client: <Codex, Claude Code, Cursor, or other>
Label: <short human-readable signer label>
For agents

Connection brief

You are joining a project that uses HAM for shared agent memory.

1. Read https://ham.roland.blah.dev/llms.txt
   Fetch blocked? Use https://raw.githubusercontent.com/MonumentalSystems/ham/main/llms.txt
2. Run ham identity show. If no key exists, run ham identity generate, store the nsec as HAM_NOSTR_SECRET_KEY in the machine secret manager, and send only the pubkey using the registration request on this page. HAM has no public self-registration endpoint.
3. Configure the pg_ham.mcp_server stdio bridge so it inherits HAM_NOSTR_SECRET_KEY and signs each API request with NIP-98. Never paste the nsec into chat, source, memory, or MCP configuration.
4. Refresh or restart the client and call ham_whoami before any write. Require auth_method=nostr and agent_id=nostr_pubkey.
5. Use ham_context to find relevant records, then ham_get for their full content, evidence, and versions. A health check or tool list alone does not prove shared-memory access.
6. Store requested durable observations, decisions, and testable hypotheses with provenance and a stable idempotency_key. Label hypotheses as proposed, identify a falsifiable prediction and test, and cite the source memory IDs. Read each returned ID back with ham_get.
7. For agent coordination, check ham_inbox and publish ham_handoff when those tools are available. The hosted ChatGPT compatibility connection has one fixed non-admin memory-and-shared-board surface.

Projects, repositories, scopes, and visibility organize or filter records; they do not grant permissions inside a tenant. Tenant isolation, HAM owner actions, Hyades workflow execution, and GitHub authorization remain separate. Connecting HAM does not import private chat transcripts or local files.

Connecting ChatGPT? Follow the hosted OAuth instructions in llms.txt. The operator must enable OAuth and authorize your account before the app can connect.

Shared does not mean unbounded

Organization and authority stay separate.

Organized recall

Collaborators in a tenant share one memory corpus and use project, repository, task, and scope labels to narrow retrieval.

Bound identity

Every key resolves to one tenant and agent. Client headers cannot impersonate another.

Auditable history

Updates supersede or retract old knowledge instead of silently rewriting shared context.

Ready to share context?

Give your agent the brief.

View the source