What happened to Graft?
Graft was renamed Trail-code. The banner at the top of the README reads: “Graft is now Trail-code. Graft lives on as the graft map, and every graft command still works. What’s new is learnings.” README
Nothing was removed. The code map Graft built is now called the graft map, one of Trail-code’s two parts. The old addresses redirect: graft.nanonets.ai goes to trailhq.com/graft and then to trailhq.com/trail-code graft.nanonets.ai, and github.com/nanonets/graft goes to github.com/trailhq/Trail-Code. github.com
| Item | Before | Now | Does the old one still work? |
|---|---|---|---|
| Trail-code (product name) | graft | Trail-code | Graft lives on inside it as the graft mapREADME |
| npm package | @nanonets/graft | @trailhq/trail-code | Yes; both at 0.23.0 on Oct 16, 2026, and both get every releaseCHANGELOG |
| CLI command | graft | trail | Yes; graft upgrade adds trail next to graft |
| GitHub repo | github.com/nanonets/graft | github.com/trailhq/Trail-Code | Redirects to the new repo |
| Website | graft.nanonets.ai | trailhq.com/trail-code | Redirects through trailhq.com/graft |
| Code map | the graft code map | the graft map, one of two parts | Yes; repos set up by graft move to trail on their own |
Facts in this table were checked against the sources listed at the end of this page, between and .
To upgrade an existing install, run graft upgrade, which adds the trail command next to graft. Each repo that Graft set up moves over the first time you open Claude Code in it README. The old npm package is not marked deprecated; its README carries the rename banner instead npm. Some trailhq.com pages, the footer link and an October blog post still say Graft, so you will see both names for a while trailhq.com. The homepage’s older Graft block also says “no telemetry”, while Trail-code sends anonymous usage stats unless you opt out (details below) trailhq.com.
What is Trail-code used for now?
Trail-code gives coding agents a map of your code and what your team has learned about it. The trailhq.com page names Claude Code, Codex, Cursor, Kiro and “any agent that reads files” trailhq.com; the README adds Gemini CLI, GitHub Copilot, Windsurf and others, and says Claude Code “gets the deepest setup”. README
Both of its parts run on your machine. The first is the graft map: trail init parses the repo with tree-sitter into a map of every file, function and caller. The README describes it as “linked markdown nodes your agent opens and greps like any other file”, built with no model, no embeddings and no API key. It says the map sits in graft/, but the newer 0.23.0 changelog moves it to .trail/cache/, kept out of git, and we go by the changelog. CHANGELOG
The second part is learnings. When a session works something out, or you correct how something is done, the agent saves a short Markdown file in .trail/learnings/. Learnings about the code are committed with the code, and learnings about you stay on your machine.
Teammates get learnings through git, with no server: “commit .trail/, and every clone has them.” Because a learning is a file in the pull request, it is reviewed like the code it describes. The agent never edits an existing learning. When it goes against one, it says why in the commit and saves a new one, and trail check flags the conflict before the PR. trail init leaves your CLAUDE.md alone. README
The README reports one benchmark: with the graft map, Claude Sonnet 5 solved 33 of 50 SWE-bench Verified issues, against 27 without it. README
Is Trail-code open source?
Yes. The CLI is free and MIT licensed README, and the code is on GitHub at trailhq/Trail-Code, where the repo had 10,503 stars on Oct 21, 2026. GitHub API
Install is two commands: npm install -g @trailhq/trail-code, then trail init. No sign-in or API key is needed for the map, the hooks, learnings or trail check; a key only adds the written summaries from trail build --deep. README
On telemetry, the Trail-code page says “anonymous usage stats, opt-out”, and TELEMETRY.md says anything not listed in that file is not sent. You can turn it off with trail telemetry disable or DO_NOT_TRACK=1, and CI environments switch it off on their own. TELEMETRY.md
The README marks the shared team workspace and the Skills and Guardrails learning kinds as “soon”. README GitHub Releases is empty, and the latest git tag (v0.21.1) trails npm (0.23.0), so the changelog is the release record. Trail-code is built for coding agents working in a repo; it does not remember end users across chat sessions.
How is Trail-code different from Zep-style agent memory?
Zep keeps a user’s conversations and business data as episodes in a temporal context graph, run as a managed service or in your own cloud. getzep.com Trail-code keeps repo knowledge as Markdown files in git.
In Zep’s agent memory, each user owns a context graph and threads group that user’s conversations. help.getzep.com That suits assistants that must remember customers. Zep also links an agent plugin for Claude Code, Codex and Cursor, kept in a separate repository. github.com
On open source, Zep’s FAQ says Community Edition, the version you could host yourself, “is deprecated and no longer supported” help.getzep.com, and the getzep/zep repo says it “is not Zep’s product or service”. github.com Review works differently too. Zep’s human approval applies to Agent Skills, where the default is auto help.getzep.com, while a Trail-code learning goes through the same pull request review as code.
Which open source memory tools should developers compare?
Start with what your agent needs to remember. For a coding agent, that is the codebase and the team’s decisions about it; for an assistant, it is users and conversations.
| Tool | License (as stated) | Coding-agent fit | What it stores | What to check |
|---|---|---|---|---|
| Trail-code | MIT | Built for it: Claude Code, Codex, Cursor, Kiro and any agent that reads files | A code map plus learnings as Markdown files in the repo, shared through git | Team workspace and the Skills and Guardrails kinds are marked soon; not for end-user chat memoryREADME |
| Graphiti | Apache-2.0 | Reference MCP server for assistants such as Claude Desktop and Cursor; the README says it is not a production deployment | Temporal context graphs where facts have validity windows and trace back to source episodes | Self-hosted on Neo4j, FalkorDB or Amazon Neptune; governance is listed as self-managedhelp.getzep.com |
| Cognee | Apache-2.0 | First-party integrations for Claude Code and Cursor, plus an MCP server | A knowledge graph of entities and relationships; code as a graph of symbols and dependencies | Postgres as a graph store is a demo, with the production version licensed; SOC 2 is in progressgithub.com |
| mem0 | Apache-2.0 | Skills that teach Claude Code, Codex, Cursor and others how to build with mem0 | Memories extracted from messages, scoped by user, agent and run | Open source retrieval has no graph memory; published scores reflect the managed platformgithub.com |
| Letta | Apache-2.0 | Letta Code is itself a stateful agent harness | Agent memory in MemFS, a git repository that belongs to the agent | letta-ai/letta now points to letta-code; Letta Cloud is the defaultgithub.com |
| Zep | Apache-2.0 for the getzep/zep repo of examples, integrations and tools, which Zep says is not its product | Agent plugin for Claude Code, Codex and Cursor (separate repo) | User context graphs and threads in Zep Cloud | Community Edition is deprecated; Graphiti is the open source parthelp.getzep.com |
Facts in this table were checked against the sources listed at the end of this page, between and .
Graphiti tracks how facts change over time and keeps lineage from each fact to its source, which suits agents working on data that shifts github.com. Cognee turns documents, code and conversations into a graph you can host yourself, and can import memory from mem0, Letta, Zep or Graphiti github.com. Letta builds agents that rewrite their own memory, with every change tracked in git github.com. mem0 handles user, session and agent memory, and comes as a library, a self-hosted server or a cloud service github.com.
How does Trail-code relate to Trail?
Trail-code is the open source, code-focused piece of Trail. Trail itself turns docs, Notion, Slack and SOPs into governed business rules that any AI agent can follow, with every answer cited back to its source. trailhq.com
Trail’s Context Graph page says Graft, its open source context layer, “applies the same mechanism to code”. trailhq.com Both put review before use. In Trail, your team approves a rule before agents can reach it trailhq.com, and in Trail-code, a learning is approved in the pull request. Trail’s CLAUDE.md page describes a step that reads commits and PR history and proposes rules for you to approve trailhq.com. Outside code, the same approve-then-use pattern governs agent memory for enterprise processes, such as 3-way match exceptions in accounts payable.
You do not need Trail to use Trail-code. The README says the map, hooks, learnings and trail check all work on your machine. It adds that a Trail workspace (coming soon) is only for a team page across repos. No learning goes to Trail until you set one up README.
Frequently asked questions
something like Zep but open source?
Zep Community Edition, the self-hosted version, is deprecated, and Zep names Graphiti (Apache-2.0) as the open source framework that powers Zep Cloud. Graphiti builds temporal context graphs that you host and govern yourself. If the memory you need is for coding agents working in a repo, Trail-code (MIT) keeps it as Markdown files in git instead of a graph service.
Is Graft the same thing as Trail-code?
Yes. The README says Trail-code is graft's new name, and graft lives on inside it as the graft map. What is new is learnings: decisions and preferences your agents save as files in the repo.
Is Trail-code open source?
Yes. The CLI is free and open source under the MIT license, on GitHub at trailhq/Trail-Code and on npm as @trailhq/trail-code. It needs no sign-in and no API key for the map, hooks, learnings or trail check.
Do old graft commands and the @nanonets/graft package still work?
Yes. The README says every graft command still works, and graft upgrade adds the trail command next to it. Both npm packages were at version 0.23.0 on Oct 16, 2026, and the changelog says both keep getting every release.
Which languages and Node.js version does Trail-code need?
The README lists 23 languages plus Vue single-file components, parsed with tree-sitter. Full call and import resolution covers TypeScript, JavaScript, Python, Go, Java, Kotlin, PHP, Swift and R, and a file in an unlisted language is skipped. The npm package declares Node.js 20 or later.
Sources checked
Show 29 sources
- Trail-code: the self-learning context layer for coding agents
- Trail-code README
- Trail-code CHANGELOG
- Trail-code TELEMETRY.md
- trailhq/Trail-Code on GitHub (API)
- Old graft repo (redirects to trailhq/Trail-Code)
- Old graft site (redirects to trailhq.com/trail-code)
- @trailhq/trail-code on npm
- @nanonets/graft on npm
- Trail homepage
- Trail Context Graph
- Trail: CLAUDE.md
- Zep homepage
- Zep docs index
- Trail Context Graph: how it works
- Zep FAQ
- getzep/zep README
- Zep agent memory
- Zep Agent Skills: learning and admission
- Graphiti README
- Zep vs Graphiti
- Cognee homepage
- Cognee README
- Cognee for the enterprise
- mem0 README
- How Mem0 works
- letta-ai/letta README
- letta-ai/letta-code README
- Letta MemFS