all.sourceAllSource

Prime 0.21.4: text-only embeds, sync, and a Memory tab

A downstream integrator filed issue #186 last week with a clean diagnosis: prime_context accepted plain text and embedded it server-side via the bundled fastembed model, but prime_embed and prime_recall insisted on a precomputed vector. An MCP agent — with no access to an embedding model — was therefore locked out of the two tools that actually populate and query the vector index. The shape of the problem was an API asymmetry, not a missing capability.

Fixing that opened up the next obvious gap: even with a working memory, you couldn't see it from anywhere except inside the conversation. We wanted users on www.all-source.xyz to watch Claude write to memory in real time.

Both ship in 0.21.4.

1. prime_embed and prime_recall accept text

Pass text alone and the server embeds it in-process via fastembed — same AllMiniLML6V2 model, 384 dims, no external embedding API. Pass vector if you already have one from a different model and Prime won't re-embed.

// MCP — Claude calling its own memory
{ "name": "prime_embed",
  "arguments": {
    "id": "node:concept:abc",
    "text": "agents need persistent memory"
  }
}
 
{ "name": "prime_recall",
  "arguments": {
    "text": "what do I know about memory?",
    "depth": 1,
    "top_k": 5
  }
}

The embedder is lazy-init via OnceLock: graph-only callers pay nothing, and the first text-embedding call in a process downloads AllMiniLML6V2 (~25 MB) into the fastembed cache. Subsequent embeddings take ~1–3 ms.

The same text field is now valid on the HTTP endpoints /api/v1/prime/vectors and /api/v1/prime/vectors/search, so non-MCP clients get the same affordance.

2. Sync local Prime to your tenant Core

prime-mcp learned two flags:

allsource-prime \
  --data-dir ~/.prime/memory \
  --sync-to https://api.all-source.xyz \
  --api-key <your tenant API key>

When both are set, a background loop drains prime.* events newer than a persisted cursor (<data_dir>/.prime_sync_cursor.json) and POSTs each to <remote>/api/v1/events with Bearer auth. The tenant is derived from the API key — same shape chronis uses.

Design tradeoffs worth naming:

  • Push-only. Prime runs on your laptop; the remote can't reach it. One-direction sync is the only thing that actually works without NAT traversal, and it's the right shape for "show me what my agent is learning."
  • Restart-resumable. The cursor file means restarts pick up where they left off instead of replaying the whole history.
  • Outage-tolerant. Remote down? The loop logs and retries on the next tick. Your local Prime keeps working.
  • No-op when off. Flag absent ⇒ zero background work. We didn't add a "you should be syncing" nag.

Mismatched flags (one of the pair without the other) hard-error at startup. Silent half-configurations are worse than loud failures.

3. Memory tab

www.all-source.xyz/dashboard/memory is the new tenant-panel view: live counts of nodes, edges, vectors; a nodes_by_type breakdown; and a recent-activity feed. All of it is derived from the prime.* events your sync loop is shipping. Same audit trail your Core already has — no separate database to babysit.

If you haven't enabled sync yet, the tab walks you through the install with copy-paste commands and links to /prime and the API keys page.

Install in 30 seconds

cargo install allsource-prime
# allsource-prime 0.21.4

Claude Desktop (~/.claude/claude_desktop_config.json):

{
  "mcpServers": {
    "prime": {
      "command": "allsource-prime",
      "args": [
        "--data-dir", "~/.prime/memory",
        "--auto-inject",
        "--sync-to", "https://api.all-source.xyz",
        "--api-key", "<your tenant API key>"
      ]
    }
  }
}

Claude Code:

claude mcp add prime allsource-prime \
  --data-dir ~/.prime/memory \
  --auto-inject \
  --sync-to https://api.all-source.xyz \
  --api-key <your tenant API key>

Restart your client, ask Claude about something that doesn't exist yet, watch the Memory tab populate.

Links

Immutable event sourcing with time-travel queries, 43 MCP tools, and x402 agent payments. Free tier — no credit card required.

Give your AI agents perfect memory

No credit card required. 10K events/month free.