uac unified agent context

Docs

Configuration

Every setting in .agents/config.toml.

Per-project settings live in .agents/config.toml, created by uac init.

[project]
name = "my-service"

[memory]
scope = "project"        # "project" | "global" — where this project's writes land
max_results = 5

[links]
read = ["shared-infra"]  # read-only, one-way cross-project memory

[claude]
# appended to the generated CLAUDE.md under a "Claude-specific" heading
extra = """
- Use /self-review before creating PRs
"""

[hooks]
inject_context_on_start = true   # SessionStart injects project_context
flush_memory_on_end     = true   # Stop nudges the agent to memory_write
claude_auto_memory      = "ours" # "ours" | "native" — see below

[mcp]
transport = "stdio"      # "stdio" | "http"
port = 8765              # http only

Notable settings

[memory] scopeglobal sends this project’s writes to the shared ~/.agents/global.db instead of the project store.

[hooks] claude_auto_memory — Claude Code ships its own Auto Memory. Running it and uac’s Stop nudge can double-write. Set this to "native" to leave Claude’s side to its own memory (Codex is unaffected).

[mcp] transporthttp runs one long-lived streamable-HTTP server across sessions. Note that UAC_SOURCE-based attribution assumes one stdio server per agent, so it doesn’t apply under a shared HTTP server.

Machine-global files

PathWhat
~/.agents/registry.tomlmaps project name → its memory.db (for links)
~/.agents/global.dbmemories with scope = "global", searched everywhere

Environment

  • UAC_SOURCE — set per agent by the MCP registration (claude-code / codex) so writes are attributed. You don’t set this by hand.
  • UAC_HOME — overrides ~/.agents (used by the test suite).