From your save to your agent's answer

The short answer

You save a file. A daemon already watching your working tree sees the write, re-parses that one file, replaces the nodes it had produced and re-points the edges into them. The panel returns to synced, and the next question your agent asks returns the code you just wrote. Nothing about how you work changes, and no step in that chain waits for a scheduled scan.

See it sync
  1. 01

    You save a file

    Nothing about your workflow changes. You edit in your editor and press save, the way you did before CodeMesh was installed.

  2. 02

    The daemon notices

  3. 03

    That one file is re-parsed

  4. 04

    The graph is updated in place

  5. 05

    The panel says it landed

  6. 06

    Your agent asks, and gets the new answer

CodeMesh panel · openclawdaemon running
A recording, not the panel itself. Nothing here is clickable: install the extension to use it for real.

Why it is a daemon and not a build step

An index that refreshes on a schedule is wrong for exactly as long as the gap between refreshes, and the gap always lands on the file you are working in. A watcher on the working tree has the opposite property: the only moment the graph disagrees with your editor is the fraction of a second between the write and the re-parse.

It also decides what gets read. A build step is handed a commit, so it sees committed work and nothing else. The daemon is watching the tree you are actually editing, which is why uncommitted changes and staged work are visible to your agent, and why the data policy says so in as many words.

Technical note
Because the daemon syncs your working tree, uncommitted work is indexed: the contents of your working tree, staged changes, and stashes. That is the feature and the disclosure in one sentence. If a repository holds something you would not want in your graph, do not connect it.

What re-parsing one file means

Functions, classes and imports are extracted with their line spans, so the graph knows not just that a symbol exists but where to find it. When the file changes, the nodes that came from it are replaced and the edges pointing at them are re-pointed. The rest of the graph is untouched, which is why a save costs the same whether the repository has a thousand files or a hundred thousand.

The panel is where you watch this happen. It is the same view on the right, running.

CodeMesh panelrunning
The editor panel, running. This is the extension's own code, embedded.

What your agent sees

The point of all of it is the exchange below: a question, one structural call, the spans that answer it, and an answer. No repository crawl, and no reading of files that turn out to be irrelevant.

retry.ts - openclawCodeMesh attached
retry.tsdead.tsdefaults.ts
Agent
  1. you

    Where does the transport give up retrying, and what happens to the job when it does?

  2. codemesh

    code-context retry budget and exhaustion

  3. src/transport/retry.ts:34const MAX_ATTEMPTS = 5;
  4. src/transport/retry.ts:72if (attempt >= MAX_ATTEMPTS) return dead(job);
  5. src/queue/dead.ts:19export function dead(job: Job)
  6. agent

    retry.ts stops at MAX_ATTEMPTS, which is 5, and hands the job to dead() in src/queue/dead.ts. That moves it to the dead-letter queue rather than dropping it, so it stays inspectable.

Reading the repo258,115
Asking CodeMesh12,524
Fewer tokens95.1%
Illustrative session against openclaw, the public repository the benchmark ran on. Token figures are the benchmark's average per question, not a measurement of this exchange.

Does the daemon slow my machine down?

It watches for filesystem events rather than polling, and it re-parses only files that changed. The work per save is proportional to the file, not to the repository.

What happens while I am offline?

Changes are picked up when the daemon can reach the service again. Your editor and your agent do not block on sync; a query simply answers from the last state that landed.

Do I have to commit for my agent to see a change?

No. That is the difference between a watcher on your working tree and an index built from commits.

Can I see what my agent asked for?

Yes. The activity view lists tool calls with a preview of their arguments, for every member of your organisation, over the last 90 days.

Install it and watch your own repository sync

The panel above is the real client. Installing takes a file and a sign-in.

Install the extensionSee the Benchmark