LTM: A JSON Protocol for Portable Agent Memory Across Models and Machines

✍️ OpenClawRadar📅 Published: May 12, 2026🔗 Source
Ad

If you use Claude across multiple editors or machines, you've likely hit the context portability wall: your CLAUDE.md doesn't follow you to Cursor, Cursor rules don't transfer to Codex, and nothing survives a model or OS switch. Existing "agent memory" tools are mostly markdown files you manually groom or vendor-locked stores. A new open-source project called ltm takes a different approach: a small JSON protocol called the Core Memory Packet, plus a CLI and server to move packets around.

How It Works

At the end of a session, the agent calls ltm save. At the start of the next session, ltm resume pulls in the dossier on the current obstacle—regardless of model, harness, or machine. A packet contains five required fields and is typically 2 to 5 KB:

  • Goal: what you're trying to achieve
  • Decisions locked in: constraints that shaped the code
  • What you've already tried: dead ends and rejected approaches
  • Next step: what to do next

The commit log already carries the work that went fine. LTM focuses on what agents can't reconstruct from a repo: dead ends and constraints that never appear in code.

Ad

Key Design Decisions

  • Model, harness, and machine agnostic: a packet written by Claude on macOS reads fine for Codex on Linux, or for a teammate on their machine. The protocol is the product; CLI and server are reference implementations.
  • Token-efficient: a 2–5 KB packet at session start is cheaper than letting the agent re-explore the codebase to rediscover what was already tried and rejected.
  • Self-host or managed hub: same protocol either way. One Go binary, SQLite on disk, runs on a low-end VPS.
  • Redaction is load-bearing: every packet is scanned before leaving the machine. AWS keys, GitHub tokens, JWTs, private keys, absolute paths, Slack and Stripe tokens—all blocked by default. Secrets don't travel.
  • MCP support out of the box: Claude Code, Cursor, Zed, Codex, etc. can call save and resume as tools without ever typing an ID.
  • Intent is portable, configuration isn't: packets never carry CLAUDE.md, skills, prompts, or tool setup—those stay local.

Try It Without Signing Up

You can see what a resume looks like immediately: ltm example --resume runs the full flow against a sample packet and drops the resume block on your clipboard.

License and Ethics

LTM is Apache 2.0. The builder acknowledges LLM assistance: every agent-touched commit carries an Assisted-by: trailer in Linux kernel conventions.

Repo: github.com/dennisdevulder/ltm

📖 Read the full source: r/ClaudeAI

Ad

👀 See Also