git-a2a

io.github.neprel由 GitHub 帳號 neprel 發布v1.7.1更新於 Oct 24, 2026

Git module dependencies and owning-agent routing for coding agents

概覽

AI 產生的概覽

為編碼代理管理 Git 元件相依性,並回報每個相依性由哪個代理負責。

可以做什麼
git-a2a 是跨平台的元件相依性管理器,以本機 MCP 伺服器形式提供。它會把元件儲存庫解析到某個特定提交,透過 npm、Python、Go、Cargo 或 Git 子模組等平台轉接器接入,並記錄負責代理的 Agent Card 參照。六個領域指令涵蓋 init、add、pull、remove、list 與 whose,其中 list 和 whose 支援 JSON 輸出。它不傳送訊息、不管理工作、不執行代理,也不代管 Agent Card。
適用情境
當編碼代理需要把第三方元件儲存庫接入專案,並在之後查出某個相依性由哪個代理負責時使用。它適合多語言專案:多個套件管理器必須綁定到同一個已解析提交,而且相依性更新應透過固定的轉接器選擇來拉取。
執行需求
以桌面本機程序執行;未宣告驗證、環境變數或標頭。可透過 npm、OCI 映像或 mcpb 套件安裝,也可透過 Go、Homebrew、Scoop、PyPI、Nix 或發行封存檔安裝。需要 Git 以及對元件儲存庫的網路存取;示範需要 Docker 與 Compose。
安裝前請注意
add 與 pull 會把相依性宣告、鎖定檔和實際程式碼寫入專案,remove 會刪除所選相依性的整合與本機檔案。轉接器與管理器選擇是持久的,之後 PATH 變更不會悄悄切換。Agent Card 參照指向外部代理;介面與驗證以該卡片為準,而非資訊清單。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 git-a2a,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

git-a2a

[built with HINT] [release] [CI] [npm] [PyPI] [Homebrew]

Connect a Git component together with the agent responsible for it.

git-a2a is a cross-platform component dependency manager. A component repository publishes code, one A2A Agent Card reference for its owner, and optionally a readable surface such as API documentation, examples, or source. A consumer connects the code through its own platform's adapter and records the exact commit, adapter, and package-manager variant.

git-a2a does not send messages, manage tasks, run agents, or host Agent Cards. Use the usable Agent Card reference shown by git a2a whose NAME with an external A2A client: an HTTPS URL or a local copy of a repository-relative card from the applied commit.

Quick start

Run the binary directly as git-a2a, or install it on PATH and use Git's equivalent git a2a form:

sh
git a2a initgit a2a add https://github.com/acme/lib-utils.git --name lib-utilsgit a2a listgit a2a whose lib-utilsgit a2a pull lib-utilsgit a2a remove lib-utils

Version 2.1.0 introduces whose NAME and removes the positional argument from list. Scripts using list NAME --json must use list --json and select the alias from the array.

There are exactly six domain commands:

CommandResult
initCreates a minimal schema 2 a2amodule.yml without overwriting an existing manifest.
add SOURCEResolves one commit, chooses applicable adapters, connects the component, and records its owner and surface.
pull [NAME]Updates one or every dependency through the adapters and variants chosen by add; with no dependencies it reports No dependencies. and succeeds without mutation.
remove NAMERemoves only the selected dependency's owned integration and local materialization.
listReports every direct dependency, commit, adapter, Agent Card, surface, and local problem; --json returns the existing array format.
whose NAMEReports one dependency's responsible agent, usable Agent Card reference, optional local surface, and recoverable metadata problems; --json returns one object.

pull is adapter lifecycle, not a wrapper around git pull. All bindings of a polyglot component use the same resolved commit. Adapter and manager selection is durable: a later change to PATH or consumer marker files cannot silently switch it.

End-to-end demo

The ACME app walkthrough demonstrates the complete loop: connect a component, discover its responsible agent, send a request through A2A, let the owner change the library, run git-a2a pull, and observe the new result. The app repository and library repository must be cloned next to each other. Docker with Compose is the only runtime requirement:

sh
git clone https://github.com/neprel/git-a2a-demo-acme-lib.gitgit clone https://github.com/neprel/git-a2a-demo-acme-app.gitcd git-a2a-demo-acme-app./demo/run.sh
# Short npm-only profileDEMO_PROFILE=npm ./demo/run.sh

The demo uses deterministic agents without LLM API keys, real A2A transport, the published git-a2a 2.0.0, and temporary local Git remotes. The separate demo client performs A2A communication; git-a2a manages dependency code and metadata. The agents exist only for the local run and are not permanently available public services. See the verified transcript for the recorded full-profile result.

Component contract

a2amodule.yml uses schema 2:

yaml
schema: 2component:  id: lib-utils  description: Shared parsing and validation utilities.  repository: https://github.com/acme/lib-utils.git  exports:    - adapter: npm      name: "@acme/lib-utils"    - adapter: pypi      name: acme-lib-utils  surface: docs/publicagent:  name: lib-utils-owner  card: https://agents.acme.example/lib-utils/.well-known/agent-card.json

The Agent Card remains the authority for the agent's interfaces, skills, and authentication. The manifest deliberately does not duplicate them. init may create an incomplete local manifest without agent; a repository consumed by add or pull must declare agent.card.

The optional component.surface is published data from the same applied commit and is materialized under .git-a2a/surfaces/NAME. If no surface is declared, no repository content is implicitly published. Surface is not an installation mechanism and is not a submodule.

See the manifest reference, authoring guide, consumer guide, and schema 1 migration guide.

Adapter matrix

Every existing platform integration is retained. Native adapters apply dependencies through the platform's own manager, updating declarations, native locks, and installed or resolved state; build-system adapters compose with one submodule checkout rather than copying source into a second tree.

ModeAdapters
Native Git dependencynpm (npm, Yarn, pnpm, Bun), Python (uv, Poetry, PDM, PEP 621/pip), Go, Cargo, SwiftPM, Pub, Bundler, Composer, Mix, Cabal/Stack, Zig, Clojure, Nix
Submodule + build integrationCMake, Gradle, MSBuild, Maven, Meson
Submodule onlyFallback when no integration applies or the native manager cannot represent the source

Git submodule is an ordinary adapter with the same add/pull/remove/inspect lifecycle. Native lockfiles remain owned by their package managers. See Works with for the detailed matrix and boundaries.

Installation

These existing installation channels are preserved. Commands track the latest stable release; pin a version in CI.

ChannelCommand
Gogo install github.com/neprel/git-a2a/v2/cmd/git-a2a@latest
Go zero-installgo run github.com/neprel/git-a2a/v2/cmd/git-a2a@latest --version
macOS/Linux installercurl -fsSL https://git-a2a.com/install.sh | bash
Windows installerirm https://git-a2a.com/install.ps1 | iex
Homebrewbrew install neprel/tap/git-a2a
Scoopscoop bucket add git-a2a https://github.com/neprel/scoop-bucket; scoop install git-a2a
npmnpx git-a2a@latest --version
PyPI with uvuvx git-a2a --version
PyPI with pipxpipx run git-a2a --version
Containerdocker run --pull=always --rm ghcr.io/neprel/git-a2a:latest --version
Nix flakenix run github:neprel/git-a2a -- --version

Linux .deb, .rpm, and .apk packages are attached to GitHub Releases. Release archives cover Darwin, Linux, and Windows on amd64/arm64 and include checksums and SBOMs. The standalone installers verify checksums and support version pinning, destination selection, and dry-run. Package-manager installs are updated with that package manager; the binary has no self-updater.

Maintainer and provenance details are in the release guide.

Documentation

The portable Agent Skill teaches a coding agent this six-command workflow. It does not configure an MCP server or agent harness.

Specification as source

Repository decisions and invariants live in .hint files beside the artifacts they govern. hint <path> returns the knowledge governing a path, and hint check <path...> validates the linked research records. The repository and CI use HINT 2.0.1. See HINT for the tool and format.

License: MIT.

來源:README.md,提交 ce1bd69

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v1.7.1最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分