Use case
Navigate a large codebase without re-reading it every session.
On a 400k-line codebase, an agent spends the first several thousand tokens of every session re-discovering what it learned yesterday: where the payment logic lives, what calls what, which paths are off-limits. Then it edits a function without seeing that four other modules depend on it.
This is the case CTXone and AgentStateDeveloper (ASD) solve together. CTXone remembers what your team decided; ASD knows what the code actually does. An agent with both edits like someone who already knows the codebase.
Two kinds of context, one hub
- CTXone — remembered context. "The payment path is frozen until the audit clears." "We migrated off the legacy queue in Q1." Ranked, branchable, and attributable.
- ASD — structural context. Symbols, call graphs, effects, and ledger decisions, indexed and queryable in milliseconds through the same MCP connection.
What the agent does
recall("payment processing") # CTXone: what did we decide?
→ [pinned] payment path frozen until audit clears
code_search("charge_card") # ASD: where is it?
callers_of("payments.charge_card") # ASD: blast radius
→ 4 call sites: billing, retries, admin, webhook
why-did-we("freeze payment path") # CTXone: trace the decision
→ blame: security review, 2026-07-30, "SOC 2 evidence" The agent now knows where the code is, what depends on it, and why it's off-limits — before it changes a line.
Setup is one flag
# Index the repo once
asd init && asd index .
# Start the hub with ASD wired in
ctx serve --http --asd-repo .
# ctx bootstrap will even offer to set ASD up for you What changes
- Onboarding cost collapses. Structure is queried, not re-read. The agent asks ASD instead of paging whole files into context.
- Fewer blind edits.
callers_ofturns "I think this is safe" into a checked blast radius. - Decisions survive the code. Frozen paths, deprecations, and gotchas live in memory next to the symbols they govern.
Next: ASD integration guide · The partnership, in depth · All use cases