LTM: A JSON Protocol for Portable Agent Memory Across Models and Machines
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.
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
saveandresumeas 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
👀 See Also

ClawCut Proxy Released on GitHub to Optimize OpenClaw for Small LLMs
ClawCut is an experimental proxy that manipulates, injects JSON calls, and extracts JSON clutter from OpenClaw to reduce cognitive overload on small models (7B-8B) running on limited hardware.

OpenClaw's QMD Memory Search Fast Path Had Silent Bugs
OpenClaw's built-in memory search uses basic keyword matching, but users can switch to QMD for semantic search across workspace markdown files. A fast path through MCPorter was broken with three bugs causing every call to silently fail and fall back to slower CLI execution.

Claude Sessions: Lightweight Desktop App for Browsing Claude Code History
Claude Sessions is a new desktop application that lets developers browse their Claude Code session history locally. It reads from ~/.claude/projects, organizes sessions by project, handles large sessions up to 500k+ tokens without lag, and includes search functionality and keyboard navigation.

Ante: A Single-Binary Coding Agent That Runs Offline
Ante is a self-contained Rust binary that works like Claude Code or Codex but with zero runtime dependencies and full offline support. It scores 82.7% on Terminal-Bench 2.1 using DeepSeek V4 Flash.