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.dbis always searched, for facts that apply everywhere (your own preferences, say).
Manage links
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.