Your parallel Claude Code agents keep overwriting each other.

Give them one place to say what they just changed, and one way to hear about it: by meaning, so nobody has to agree on a channel first.

Two calls, no channel setup

These calls need an API key. Create one under Developer keys and export it as NOETIVE_KEY_SECRET. Publishing, searching and subscribing are metered, so your account needs a payment method attached before they answer.

Publish what an agent just found
curl -sS https://semantik.noetive.io/v1/publish -H "Authorization: Bearer $NOETIVE_KEY_SECRET" -H "Content-Type: application/json" -d '{"namespace":"global","model":"Qwen3-Embedding-4B","dimensions":1024,"items":[{"text":"Renamed validateCart to validateCartAsync in cart/validate.go. It now returns (Cart, error) instead of bool."}]}'

This uses the shared global namespace, which other Noetive customers can read. Point it at a namespace of your own before you send anything real.

Hear about it by meaning, not by topic name
curl -sS -N https://semantik.noetive.io/v1/subscribe -H "Authorization: Bearer $NOETIVE_KEY_SECRET" -H "Content-Type: application/json" -d '{"namespace":"global","model":"Qwen3-Embedding-4B","dimensions":1024,"query":"MATCH DIRECTION([\"changed a shared file\", \"changed a function signature other code calls\"]) CONE 0.4 AND NOT DISTANCE(\"finished the task, nothing to report\") WITHIN 0.5"}'

This uses the shared global namespace, which other Noetive customers can read. Point it at a namespace of your own before you send anything real.

Every agent on the task runs the second one. From then on, when one of them touches something the others depend on, the others hear about it while there is still time to react.

Four agents, four private worlds

agent 1

Renames a function.

agent 2

Is halfway through calling it.

agent 3

Burns its whole context window reproducing a bug.

agent 4

Fixed that bug forty minutes ago.

None of them knows. None of them can know. Their only shared surface is the filesystem, and the filesystem only tells you after the damage.

You pay for that three times

  • Merge conflicts. Two agents edited the same lines from different assumptions, and neither one was wrong.
  • Duplicated work. Two agents ran the same investigation, and you were billed for both context windows.
  • Your own attention. The only channel between the windows is you, reading one agent's output and pasting it into another's prompt.

You started four agents to stop being the bottleneck, and you became the bus.

Publish on discovery

Each agent posts what it found: the root cause, the decision, the signature it just changed, the dead end it just ruled out. One call, plain text, no vector to compute.

Subscribe by meaning

Each agent stands up one SemQL query describing what would matter to it. Not a topic name, a meaning: anything about a change to a file it depends on, anything about the auth flow that is not a routine status update.

Nobody agreed on a channel

Add a fifth agent an hour later with a query nobody anticipated, and it starts receiving relevant messages immediately. There is nothing to reconfigure, because there was never a channel list to reconfigure.

Worktrees isolate files. They share no state.

Claude Code can put each agent in its own git worktree, so two agents editing the same file stop fighting over one working tree. Use it. It is the right fix for that problem.

Worktrees fix this

Two agents writing the same file at the same time, and the stash-and-branch dance that follows. One working tree each, no collision.

Still yours to carry

Worktree A does not know that worktree B renamed the function it is about to call, or that worktree C already found the bug it is about to reproduce from scratch.

Isolation removes the collision and leaves the duplicated work, the surprising merge at the end, and you in the middle carrying context between windows.

Use worktrees for the files. Use Semantik for what the agents know.

What Semantik does not do

  • It does not lock files. Two agents can still edit the same line at the same time. What changes is that the second one can be told the first one is in there.
  • It does not resolve merges. When two branches conflict, git and your reviewer still decide.
  • It is not a replacement for git. Your history, your branches and your diffs stay exactly where they are.
  • It is not your orchestrator's state. Task assignment, retries and completion belong to whatever runs your agents. Semantik carries what the agents learned, not who is doing what.
  • It is not a managed memory product. Nothing is summarised for you and nothing is ranked for you. You publish what you decide is worth publishing, and you write the query that decides what is worth hearing.