Shared agent context
You record a decision or hand off work. Ambara turns that into project context, so the next agent, teammate, or session picks up where you left off.
The problem
People coordinate through chats, issues, local notes, meetings, and memory. Then they re-explain it all to each new agent session.
Decisions made in conversation, maybe written down, scattered across places agents never look.
Useful signals are in there somewhere, but good luck getting an agent to find the right ones at the right time.
You remember why you did it that way. Tomorrow you won't. The next agent definitely won't.
In practice
You finish working on something and save a handoff. The next time you (or anyone) starts related work, the agent already knows what happened.
Usage
No new UI. You just talk to your agent like you already do.
"We decided to standardize the terminology across all repos."
Recorded the terminology decision.
"Lab scripts are done, but the DNS issue on workstation is still open."
Saved the handoff.
Product promise
Just say what matters. "Save this handoff." "Record this decision."
Starts with project context and uses it when it matters.
Handles the filing, review, search, and privacy stuff in the background.
Cost of coordination
Project files give agents rules and preferences. But handoffs, decisions, and coordination signals change every day, and re-explaining them costs real time and tokens.
Without shared context, you typically spend a few extra turns re-explaining things each session. That can easily add up to $0.50-$2.00 in extra token cost plus several minutes of your time. Every session. Ambara replaces that with a compact context load and now reports the payload saved versus full eligible context.
Manual lookup = 10 minutes of a $200K/yr developer's time. Asking a colleague = 8 minutes across two people. Standup = 12 minutes amortized per coordination topic. Ambara keeps the savings visible with local value receipts, budget modes, and aggregate-only value ledgers.
Privacy architecture
This isn't a policy page. Ambara literally has no collector for chats, editor activity, read receipts, or presence. It can't track what it was never built to capture.
Solo builders
If you switch repos, restart sessions, or hand work between agents, you've got coordination state that should live outside the chat.
Save why a migration stalled and what to pick up next. No need to turn it into a whole document.
One agent leaves a handoff so the next one doesn't rediscover the same blocker or repeat the same search.
Context follows the work across repos instead of staying trapped in one checkout or session.
Solo workflow
You lose context too. The handoff might be from last night to this morning, from one repo to another, or from one agent to the next.
Architecture
Pure core library with pluggable transport. Files for reads, CLI or MCP for writes. Works with any agent.
Engineering shape
Policy, orchestration, data sources, and git ops each live in their own module with clear boundaries.
core/All the rules: schema, validation, indexing, search ranking, signal classification, content policy, write planning. Zero I/O.server.pyMCP tool handlers, sync lifecycle, and write orchestration.cli.pyCLI commands: startup, query, read, record, propose. Same core, different transport.git/Everything that touches the filesystem: clone, fetch, branch management, commits, and PR creation.core/ must never import from git/ or providers/ or perform I/O. Enforced by AST guard in the test suite.File adapter
A SessionStart hook runs ambara startup, writes project context to a file, and the agent reads it as normal startup context.
ambara startup--format md --output.ambara/context.mdproject context as markdown.ambara/context.md contains the current project context the agent should start with.
The project instruction tells the agent to read that file as part of its normal startup routine.
Any client that can read a file can use the same context, even without a dedicated integration.
Read path
Git is the source of truth. The server keeps only local state it can rebuild from scratch: a repo cache and an in-memory search index.
ensure_repo()cache path is remote hashfetch_all()main plus active refsload_index_from_repo()markdown + YAML frontmatterIndex + BM25rebuilt on syncWrite safety
Before anything gets written to git, a policy gate checks the title, body, and metadata. It can block the write, require review, add a warning, or let it through.
record() / propose()CLI, MCP, or importWritePolicy.evaluate()deterministic, offlineplan_record()type, level, visibility| Policy result | What it catches | What happens |
|---|---|---|
block | Private keys, API keys, live keys, URI credentials, secret assignments | The write stops. The user gets a safe message without the secret echoed back. |
require_review | Email, phone numbers, SSNs, confidentiality terms, personnel judgments | The content is routed to review instead of becoming shared guidance immediately. |
allow_with_warning | Risky phrasing, weak prompt-injection text, profanity | The write can continue, but it carries a warning label for reviewers. |
allow | No policy findings | The normal write plan continues: temporary handoff, lightweight PR, or review PR. |
Governance model
An entry isn't just a markdown file. The frontmatter tells the agent what kind of knowledge it is, how reviewed it is, whether it expires, and whether it's safe to show.
type: active level: L0 status: active projects: [auth-migration] expires_at: 2026-06-01T18:00:00Z visibility: internal
Cross-client
Every agent can read a file. Same context file, same CLI commands, works across clients.
SessionStart hook writes .ambara/context.md. CLAUDE.md tells the agent to read it.
Tested & validated
Same hook, same file. GEMINI.md gets the startup contract. Works through the file adapter.
Supported, not yet integration-tested
If it can read a file and run a shell command, it can use Ambara. No SDK, no plugin, no MCP required.
By design
Configured signals
Today, Ambara reads labeled GitHub PRs and Jira issues from configured sources. A future provider must follow the same rule: configured source, configured label or tag, normalized summary.
CoordinationSignalsummary, status, linksclassify_signals()guidance for agentsGet started
Install, onboard your project, and restart your agent. The next session starts with shared context.
# Install pip install ambara # Set up your project cd your-project ambara onboard # Ambara creates: # - Knowledge repo scaffold # - CLAUDE.md startup contract # - MCP server configuration # - Tool permissions # Verify everything works ambara doctor --team --check-startup # Restart your agent. It starts # with shared context automatically
Open source · Apache 2.0
Shared, reviewable agent context for solo builders and teams.
pip install ambara ambara onboard
github.com/ostinato-forge/ambara
Star the repo · File an issue · Open a PR · Apache 2.0