One-Line Summary: Memory portability — whether the artifacts you've built up in one harness work in another — is partial in 2026: configuration files (CLAUDE.md, AGENTS.md, .cursorrules) are convergent enough to copy-with-edits; vector stores and trajectory stores are mostly per-harness; adapters are model-specific; expect a portability gradient, not a clean abstraction.

Prerequisites: Harness-owned memory, settings and configuration files, cross-session memory strategies

What Is Memory Portability?

When you decide to switch harnesses (Claude Code → Cursor, or Claude Code + ruflo → OpenHands), what comes with you? The answer depends on the layer:

  • Configuration / declared memory: Mostly portable with rewrites. CLAUDE.md and AGENTS.md are conceptually identical; mostly text-substitution converts. .cursorrules is similar but format differences (Cursor's is more rule-list-shaped) require some restructuring.
  • Sub-agent / role definitions: Format-portable but tooling-specific. Claude Code sub-agents in markdown convert mechanically; the tool list doesn't because tool names differ. Adapters and middleware needed.
  • Slash commands: Mostly portable (markdown templates), again with tool-name remapping.
  • Hooks: Per-harness, not portable. The hook events differ (Claude Code's 7 vs ruflo's 27 vs Cursor's none).
  • Vector stores: Theoretically portable (it's just embeddings + metadata), in practice locked because each harness has its own retrieval logic.
  • Trajectory stores (ReasoningBank): Per-harness; not standardized.
  • Adapters (micro-LoRA): Per-base-model. A Claude-Sonnet adapter doesn't work with GPT-4 or Gemini.

In short: declarative artifacts port well; runtime substrates port poorly.

How Portability Is Made Real

A pragmatic strategy:

  1. Keep memory in the most portable form possible: Markdown configuration files (CLAUDE.md style) are the universal lowest-common-denominator. When in doubt, write memory there.
  2. Use MCP for tools: MCP-defined tools are portable across harnesses. Tool work invested in MCP is the most durable.
  3. Treat per-harness primitives as ephemeral: Hooks, sub-agents, plugins — useful, but assume rewrite when changing harnesses.
  4. Vector stores via portable backends: If the vector store is Postgres+pgvector or Qdrant rather than the harness's proprietary AgentDB, the data layer is portable; only the integration glue isn't.
  5. Don't over-invest in non-portable layers until the harness has proven itself.

Why It Matters

Switching costs are real. They are also the thing harnesses compete on — a harness that locks you in by making non-portable substrates the easy path is competing for retention. Understanding portability lets you push back: prefer the portable form when your team's switching probability is non-negligible.

The flip side: if you've decided on a harness, embrace the non-portable layers. The whole point of picking a harness is to use its differentiated capabilities; refusing to use anything proprietary is its own form of underinvestment.

Key Technical Details

  • MCP servers are the most portable tool layer in 2026: A github MCP works in Claude Code, Cursor, ruflo, Continue, Zed identically.
  • AGENTS.md as a near-standard: OpenAI-led harnesses use AGENTS.md; Anthropic-led use CLAUDE.md. The two are converging in spirit if not name; many teams now ship both.
  • .cursorrules and CLAUDE.md differ in tone: CLAUDE.md is prose; .cursorrules is bullet-list rules. Conversion is mostly mechanical.
  • Sub-agent definitions can target a tool registry that's portable: If your sub-agents only use MCP tools, the definitions are nearly portable.
  • Vector embedding is the bottleneck: An embedding chosen for retrieval in one harness may not match what another harness expects. Re-embedding may be needed.
  • Trajectory replay across harnesses is essentially impossible: The action space (tool list) and execution semantics differ.

How Harnesses & Frameworks Implement This

LayerPortable todayPortable with effortPer-harness
CLAUDE.md / AGENTS.md / .cursorrules✅ (with edits)
MCP servers and tools
Sub-agent definitions
Slash commands
Hooks
Vector store contents✅ (if backend is portable)
Trajectory stores
Plugins
Adapters / LoRA✅ (per base model)

Connections to Other Concepts

  • mcp-as-the-universal-tool-bus.md — The strongest portability win.
  • settings-and-configuration-files.md — The portable surface.
  • cross-session-memory-strategies.md — The within-harness analogue.
  • choosing-your-harness-stack.md — Switching cost is part of the decision.

Further Reading

  • "AGENTS.md" community proposals on GitHub — convergence efforts.