uac unified agent context

Docs

Across projects

Reuse one project's memory in another — read-only and one-way.

Sometimes a convention lives in one repo but applies to another. Cross-project links let a project read another’s memory, without merging the two.

How it works

Each project keeps its own .agents/memory.db. A machine-global registry (~/.agents/registry.toml) maps project names to their databases. A link is declared in the reading project’s .agents/config.toml:

[links]
read = ["shared-infra"]

Then that project’s memory_search also reads shared-infra’s store. Every result is labelled with its origin project, so an agent knows a fact came from elsewhere and can weigh it accordingly.

The rules

  • Read-only and one-way. Reading project B never modifies project A, and A doesn’t know B exists. To share both directions, both declare the link.
  • Always attributed. Foreign memories are tagged with their source project — because a fact from a different stack might not apply here.
  • Global store, too. A ~/.agents/global.db is always searched, for facts that apply everywhere (your own preferences, say).
uac link add shared-infra    # this project now reads shared-infra's memory
uac link ls
uac link rm shared-infra

Writes always go to the current project (or the global store) — never to a linked one.