{"slug": "every-coding-agent-session-starts-by-rediscovering-your-repository", "title": "Every Coding Agent Session Starts by Rediscovering Your Repository", "summary": "A developer built Recall, a local CLI that derives structured context from a repository and stores it inside the repository itself, aiming to eliminate the need for coding agents to rediscover the repository's structure at the start of each session. Recall uses deterministic scans rather than AI models, producing Markdown context that can be consumed by tools like Claude Code, Codex, and Cursor. The tool is published as an npm CLI and requires Node.js 22+.", "body_md": "I've been using coding agents heavily across real projects.\n\nClaude Code. Codex. Cursor.\n\nThey are getting remarkably good at making changes.\n\nBut I kept noticing the same thing at the beginning of new sessions.\n\nThe agent starts exploring.\n\nIt reads package.json.\n\nIt looks for entry points.\n\nIt walks through directories.\n\nIt checks configuration.\n\nIt tries to understand conventions.\n\nIt finds the important files.\n\nThen the session ends.\n\nA new session starts later, and a surprising amount of that work happens again.\n\nThat bothered me.\n\nNot because repository exploration is useless — an agent should inspect the source before making important changes.\n\nThe problem is that there is a difference between:\n\nverifying the current source\n\nand:\n\nrediscovering the basic shape of the repository from zero.\n\nI wanted to see whether that second part could become persistent.\n\nSo I built Recall.\n\nWhat Recall is\n\nRecall is a local CLI that derives structured context from a repository and stores it inside the repository itself.\n\nIt isn't another coding agent.\n\nIt doesn't call an LLM to understand your codebase.\n\nIt doesn't require an AI API key.\n\nIt doesn't require a cloud account.\n\nThe basic idea is:\n\nrepository\n\n↓\n\ndeterministic scan\n\n↓\n\n.recall/\n\n↓\n\npersistent repository context\n\n↓\n\nClaude Code / Codex / Cursor / any Markdown-capable agent\n\nThe generated context can describe things Recall can derive from the repository, including:\n\narchitecture\n\nentry points\n\nproject conventions\n\nrelevant files\n\nrisks\n\nworkspace structure\n\nrepository state\n\nThe important word there is derive.\n\nI deliberately didn't want Recall inventing architectural explanations using another model.\n\nIf Recall says something about the repository, I want that information to be traceable back to repository evidence.\n\nWhy not just use CLAUDE.md or AGENTS.md?\n\nI use these files too.\n\nThey solve a different problem.\n\nA file like CLAUDE.md or AGENTS.md is excellent for things such as:\n\nUse pnpm.\n\nRun this command before committing.\n\nNever modify generated migrations manually.\n\nOur API errors follow this convention.\n\nThose are instructions and human knowledge.\n\nBut there is another category of context:\n\nWhere are the entry points?\n\nHow is this monorepo structured?\n\nWhich workspace owns this functionality?\n\nWhich files appear relevant to this task?\n\nHas the repository changed since this context was generated?\n\nMuch of that can be derived from the repository.\n\nI don't want to manually maintain it if a tool can reconstruct it deterministically.\n\nSo my mental model became:\n\nAGENTS.md / CLAUDE.md\n\n↓\n\nhuman intent + instructions\n\nRecall\n\n↓\n\nrepository-derived context\n\nSource code + tests\n\n↓\n\nultimate source of truth\n\nRecall isn't supposed to replace the source.\n\nIt's supposed to provide a better map to the source.\n\nThe first command\n\nRecall is published as an npm CLI.\n\nNode.js 22+ is currently required.\n\nnpx recall-context@latest init\n\nThat initializes Recall for the repository.\n\nYou can inspect its state with:\n\nnpx recall-context@latest status\n\nAnd generate task-focused context:\n\nnpx recall-context@latest context \\\n\n--task \"Understand the CLI release and packaging workflow\" \\\n\n--max-tokens 1200 \\\n\n--stdout\n\nThe result is Markdown, so there is no vendor-specific protocol required.\n\nYou can give it to Claude Code.\n\nOr Codex.\n\nOr Cursor.\n\nOr another tool capable of consuming Markdown.\n\nThat portability was intentional.\n\nTask-focused context\n\nGenerating a giant repository dump isn't particularly interesting.\n\nThe harder question is:\n\nWhat parts of this repository are likely to matter for the task I'm about to perform?\n\nRecall uses deterministic signals to rank relevant files.\n\nToday that includes things such as file paths, names, symbols, workspace relationships and a bounded import graph.\n\nThere are no embeddings involved.\n\nThere is no semantic model secretly deciding what your application means.\n\nThat has an obvious trade-off.\n\nThe ranking isn't magically intelligent.\n\nBut it is predictable, local and inspectable.\n\nFor this version of the project, I prefer that property.\n\nContext has an expiration problem\n\nPersistent context introduces another problem:\n\nstale context can be worse than no context.\n\nSuppose an agent receives a beautiful architectural summary generated three weeks ago.\n\nThe repository has changed since then.\n\nThe summary still looks authoritative.\n\nNow the context is actively misleading the agent.\n\nRecall therefore keeps a snapshot and exposes repository/context state through commands such as:\n\nnpx recall-context@latest status\n\nThe goal isn't to pretend generated context is permanently true.\n\nThe goal is to know when it should no longer be trusted without checking the repository again.\n\nThis area still has limitations. The current implementation is not a perfect semantic change detector, and I don't want to present it as one.\n\nWhich leads to something I've been trying to do differently with this project.\n\nWhat Recall does not prove\n\nI could put several attractive claims on the README:\n\nSaves tokens.\n\nMakes coding agents faster.\n\nImproves accuracy.\n\nReduces tool calls.\n\nI haven't proven any of them.\n\nSo I'm not claiming them.\n\nRecall currently proves something much narrower:\n\nI can deterministically derive reusable repository context, persist it, inspect it, and give it to different coding agents.\n\nWhether doing that materially improves a real agent workflow is an empirical question.\n\nAnd that's the question I'm interested in now.\n\nThere are already other approaches\n\nRepository context and agent memory are becoming an active area.\n\nSome approaches use persistent memory.\n\nSome use embeddings and semantic search.\n\nSome maintain module knowledge.\n\nOthers intercept file reads and replace raw files with structural summaries.\n\nThose are valid approaches.\n\nRecall is intentionally narrower.\n\nIts current constraints are:\n\nlocal\n\ndeterministic\n\nrepository-derived\n\ninspectable\n\nagent-agnostic\n\nno AI provider required\n\nI don't know yet whether those constraints are enough to make it useful.\n\nBut they make the experiment interesting to me.\n\nThe limitations are real\n\nRecall is early.\n\nSome important limitations today:\n\nThe import graph isn't a full semantic program analysis system.\n\nTask ranking is deterministic rather than semantic.\n\nThe current ecosystem support is primarily focused on JavaScript/TypeScript and related Node.js frameworks.\n\nToken estimation is approximate rather than based on each model's tokenizer.\n\nThere is no native MCP integration.\n\nThere is no editor plugin.\n\nThere is no cloud memory layer.\n\nAnd I'm deliberately not building those things yet.\n\nI'm stopping feature development\n\nThis is probably the most important decision I've made around Recall.\n\nNormally this is where I would start adding:\n\nMCP.\n\nEditor integrations.\n\nMore languages.\n\nEmbeddings.\n\nTeam synchronization.\n\nA dashboard.\n\nAnd six weeks later I would have a much larger product without knowing whether the original idea mattered.\n\nI'm not doing that this time.\n\nVersion 0.2.0 is released.\n\nThe next phase is validation.\n\nI want to measure real coding tasks with and without Recall and look at things like:\n\ntime to first correct edit\n\nrepository exploration time\n\ntool calls before the first correct edit\n\ncontext/token usage\n\ncorrectness\n\nwhether someone voluntarily uses Recall again\n\nThat last metric may be the most important one.\n\nIf somebody tries Recall once and never reaches for it again, it doesn't matter how sophisticated I make the scanner.\n\nTry it on a real repository\n\nIf you regularly use coding agents on non-trivial JavaScript or TypeScript repositories, that's the environment I'm most interested in testing.\n\nStart with:\n\nnpx recall-context@latest init\n\nThen try:\n\nnpx recall-context@latest context \\\n\n--task \"Describe the task you're about to give your coding agent\" \\\n\n--stdout\n\nThe project is open source:\n\nGitHub:\n\n[https://github.com/sabahattink/Recall](https://github.com/sabahattink/Recall)\n\nI'm particularly interested in failures.\n\nIf the generated context points you toward the wrong files, misses something important, becomes stale incorrectly, or simply doesn't improve your workflow, that's more useful to me right now than another feature request.\n\nBecause the question isn't:\n\nHow much can I add to Recall?\n\nIt's:\n\nIs persistent, deterministic repository context useful enough that you want it again in your next coding-agent session?\n\nThat's what I'm trying to find out.", "url": "https://wpnews.pro/news/every-coding-agent-session-starts-by-rediscovering-your-repository", "canonical_source": "https://dev.to/sabahattink/every-coding-agent-session-starts-by-rediscovering-your-repository-2i9e", "published_at": "2026-08-11 05:29:15+00:00", "updated_at": "2026-08-11 06:16:37.300675+00:00", "lang": "en", "topics": ["developer-tools", "ai-agents", "ai-tools"], "entities": ["Recall", "Claude Code", "Codex", "Cursor", "npm"], "alternates": {"html": "https://wpnews.pro/news/every-coding-agent-session-starts-by-rediscovering-your-repository", "markdown": "https://wpnews.pro/news/every-coding-agent-session-starts-by-rediscovering-your-repository.md", "text": "https://wpnews.pro/news/every-coding-agent-session-starts-by-rediscovering-your-repository.txt", "jsonld": "https://wpnews.pro/news/every-coding-agent-session-starts-by-rediscovering-your-repository.jsonld"}}