
A2ahub
io.github.ydnikolaevPublished by GitHub account ydnikolaevv0.27.1Updated Oct 30, 2026
Reliable handoffs between autonomous agents, using a Git repository both sides can inspect.
Overview
Local stdio MCP server and CLI that lets agents hand off typed work through a shared Git repository both sides can inspect.
- What you can do
- Draft and submit typed artifacts such as questions, requirements, work requests, decisions, responses and handoffs, chained into one replayable history
- Read a computed inbox showing open work and whose move is next, derived from shared history
- Publish and pin immutable contract versions, materialize historical versions offline, and deliver against a pinned version with a verdict from its declared checks
- Validate drafts locally and again where they land, then land them as auditable Git commits
- Read the folded current state as a bounded dashboard and get notified when a move is yours
- When to use it
- For AI-first developers whose agents exchange work across a boundary — between companies, teams, or a client and a contractor — and who want a durable, inspectable record instead of chat messages. Useful when handoffs must be reproducible and neither side wants to open a system to the other.
- Requirements
- Runs as a local process on the user's machine (macOS, Linux or Windows builds; desktop only). Needs the local a2a CLI installed and a shared Git repository called a space — a GitHub repository where writes go through pull requests and CI, or a bare repository on local disk. No hosted service, account, API key or environment variable is declared.
Installation
In SourceWeft
- Open A2ahub in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
a2ahub
[Latest release] [CodeQL] [License] Reliable handoffs between autonomous agents, using a Git repository both sides can inspect.
Who this is for
AI-first developers whose systems hand work to each other — your agents and a partner's, two teams in one company, or a client and a contractor. The boundary changes; the problem does not.
Two agents can exchange work in chat, but chat is a poor system of record: requests get buried, contracts drift, nobody knows whose move is next, and a handoff that worked once is hard to reproduce.
A concrete case. Your agent needs a data export from a partner's agent, against an agreed shape. The request, its acceptance criteria, the payload, the verdict on whether it met them and the sign-off all land in one Git repository both sides can read — with neither company opening a system to the other.
Each system runs the local a2a CLI and connects to a shared Git repository
called a space: on GitHub, where writes go through pull requests and CI, or a
bare repository on your own disk, where a2a checks and lands each write. There
is no hosted a2ahub service, database, or public agent endpoint to keep alive.
What it gives you
- Typed artifacts instead of loose messages. Questions, requirements, work requests, decisions, responses and handoffs, each with the fields its kind needs, connected into one chain either side can replay in order.
- A computed inbox. Open work and whose move is next, derived from shared history rather than a private to-do list. Agents report what they are implementing separately from protocol completion, so a closed thread never means nobody is working — and a missing report stays unknown, not idle.
- Contracts you can pin and reproduce. Publish an immutable carried set, materialize any historical version exactly, offline, and deliver against a pinned version with a verdict derived from the contract's own declared checks.
- A safe write funnel. Drafts are validated locally, checked again where they land (CI on a pull request, or a local space's own land check), and merged as an auditable Git commit. Inbound text is data, never instructions.
- A refusal instead of a silent yes. An unrecognised field, an id it cannot place, a rule it cannot evaluate — each is named and refused rather than accepted and reported as success. An unknown answer is reported as unknown.
- Local surfaces, and one that reaches you. Work through the CLI or local stdio MCP tools, read the state as a bounded dashboard, and let a space tell you when a move is yours — on your machine, in your editor, or on Telegram.
Both machines can be offline at different times: Git holds the durable state.
How it works
- One agent drafts and submits a typed request or contract.
- The space validates ownership, schema, lifecycle, and contract rules.
- The other agent syncs, sees the next move, and responds through the same funnel.
- Both sides read the folded current state and the immutable history behind it.
Install
macOS and Linux:
The installer downloads the latest release and verifies its checksum. Windows archives and manual downloads are on the releases page.
Start a project
Run a2a for the current command list. Run a2a html -demo to explore the
dashboard without connecting a real space.
Release confidence
Release candidates are tested against a protected public GitHub space using two independent identities, at a depth chosen for what the release changes. Green proves that scope—not every state, and each release's notes say what was not.
Documentation
Project site · onboarding · command and MCP reference · security and release verification · release notes
Source: README.md at commit 0af9a67
Tools
0Version history
3- v0.27.1LatestOct 30, 2026
- v0.27.0Oct 29, 2026
- v0.26.3Sep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts