{
  "markdown": "# a2ahub\n\n[![Latest release](https://img.shields.io/github/v/release/ydnikolaev/a2ahub?label=release)](https://github.com/ydnikolaev/a2ahub/releases/latest)\n[![CodeQL](https://github.com/ydnikolaev/a2ahub/actions/workflows/codeql.yml/badge.svg)](https://github.com/ydnikolaev/a2ahub/actions/workflows/codeql.yml)\n[![License](https://img.shields.io/github/license/ydnikolaev/a2ahub)](LICENSE)\n**Reliable handoffs between autonomous agents, using a Git repository both\nsides can inspect.**\n\n## Who this is for\n\nAI-first developers whose systems hand work to each other — your agents and a\npartner's, two teams in one company, or a client and a contractor. The boundary\nchanges; the problem does not.\n\nTwo agents can exchange work in chat, but chat is a poor system of record:\nrequests get buried, contracts drift, nobody knows whose move is next, and a\nhandoff that worked once is hard to reproduce.\n\n**A concrete case.** Your agent needs a data export from a partner's agent,\nagainst an agreed shape. The request, its acceptance criteria, the payload, the\nverdict on whether it met them and the sign-off all land in one Git repository\nboth sides can read — with neither company opening a system to the other.\n\nEach system runs the local `a2a` CLI and connects to a GitHub repository called\na *space*. Changes go through pull requests and the space's validation gate.\nThere is no hosted a2ahub service, database, or public agent endpoint to keep\nalive.\n\n## What it gives you\n\n- **Typed artifacts instead of loose messages.** Questions, requirements, work\n  requests, decisions, responses and handoffs, each with the fields its kind\n  needs, connected into one chain either side can replay in order.\n- **A computed inbox.** Open work and whose move is next, derived from shared\n  history rather than a private to-do list. Agents report what they are\n  implementing separately from protocol completion, so a closed thread never\n  means nobody is working — and a missing report stays unknown, not idle.\n- **Contracts you can pin and reproduce.** Publish an immutable carried set,\n  materialize any historical version exactly, offline, and deliver against a\n  pinned version with a verdict derived from the contract's own declared checks.\n- **A safe write funnel.** Drafts are validated locally, submitted as pull\n  requests, checked again in CI, and merged as an auditable Git commit. Inbound\n  artifact text is treated as data, never as instructions.\n- **A refusal instead of a silent yes.** An unrecognised field, an id it cannot\n  place, a rule it cannot evaluate — each is named and refused rather than\n  accepted and reported as success. An unknown answer is reported as unknown.\n- **Local surfaces, and one that reaches you.** Work through the CLI or local\n  stdio MCP tools, read the state as a bounded dashboard, and let a space tell\n  you when a move is yours — on your machine, in your editor, or on Telegram.\n\nBoth machines can be offline at different times: Git holds the durable state.\n\n## How it works\n\n1. One agent drafts and submits a typed request or contract.\n2. The space validates ownership, schema, lifecycle, and contract rules.\n3. The other agent syncs, sees the next move, and responds through the same\n   funnel.\n4. Both sides read the folded current state and the immutable history behind it.\n\n## Install\n\nmacOS and Linux:\n\n```sh\ncurl -fsSL https://raw.githubusercontent.com/ydnikolaev/a2ahub/main/scripts/install.sh | sh\n```\n\nThe installer downloads the latest release and verifies its checksum. Windows\narchives and manual downloads are on the\n[releases page](https://github.com/ydnikolaev/a2ahub/releases/latest).\n\n## Start a project\n\n```sh\na2a init\na2a connect <owner/space-repo>\na2a new question\na2a submit <artifact>\na2a inbox\n```\n\nRun `a2a` for the current command list. Run `a2a html -demo` to explore the\ndashboard without connecting a real space.\n\n## Release confidence\n\nRelease candidates are tested against a protected public GitHub space using two\nindependent identities, at a depth chosen for what the release changes. Green\nproves that scope—not every state, and each release's notes say what was not.\n\n## Documentation\n\n[Project site](https://a2ahub.dev/) ·\n[onboarding](skill/a2ahub/onboarding.md) ·\n[command and MCP reference](skill/a2ahub/reference/commands.md) ·\n[security and release verification](SECURITY.md) ·\n[release notes](releasenotes/)\n\nApache-2.0 licensed. See [LICENSE](LICENSE) and [NOTICE](NOTICE).\n",
  "bytes": 4453,
  "sha": "d234de22db5b0d1176c29e1a82ffb534d89b1e53f246f5b55c8b09e816742a76",
  "repo_slug": "ydnikolaev/a2ahub",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_ydnikolaev_a2ahub_37c4e284/readme"
}