# Installation (/docs/getting-started/installation)



## Requirements [#requirements]

* **Node.js 20 or newer**
* An account or key for the backend you want to wrap (see [authentication](#authentication))

## Install from npm [#install-from-npm]

Each wrapper is its own package with its own CLI:

```bash
npm install -g a2a-copilot      # GitHub Copilot
npm install -g a2a-claude       # Claude
npm install -g a2a-codex        # OpenAI Codex
npm install -g a2a-opencode     # OpenCode
npm install -g a2a-antigravity  # Google Antigravity
```

Then start one with a config file:

```bash
a2a-copilot --config ./config.json
```

You can also run without installing, for example `npx a2a-copilot --config ./config.json`.

## Authentication [#authentication]

Credentials always come from the environment, never from `config.json`.

| Wrapper           | What it needs                                                                                                                                                                              |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `a2a-copilot`     | A GitHub account with Copilot access: run `gh auth login` or set `GITHUB_TOKEN`. With a custom BYOK provider such as a local Ollama, GitHub credentials are not required for that provider |
| `a2a-claude`      | `ANTHROPIC_API_KEY` (recommended). Bedrock and Vertex environment variables pass through to the SDK untouched                                                                              |
| `a2a-codex`       | `OPENAI_API_KEY`, or credentials from `codex login`. With subscription auth, also set `CODEX_MODEL`                                                                                        |
| `a2a-opencode`    | Whatever provider credentials your OpenCode configuration uses                                                                                                                             |
| `a2a-antigravity` | A Gemini API key, or Vertex/ADC. Run `a2a-antigravity setup` once to create the managed Python environment                                                                                 |

Wrappers that operate on a repository also need `WORKSPACE_DIR`: the directory the agent may read and change. For `a2a-codex` it must be a Git repository.

## Release channels [#release-channels]

| Channel    | Install                          | Use it for                                                                                             |
| ---------- | -------------------------------- | ------------------------------------------------------------------------------------------------------ |
| **Stable** | `npm install a2a-copilot`        | Production. Releases are reviewed and approved manually                                                |
| **Canary** | `npm install a2a-copilot@canary` | Trying a fix before a stable release. Published after every merge to `main` that passes CI; unreviewed |

## Build from source [#build-from-source]

The repository is an npm workspaces monorepo managed with Turborepo.

```bash
git clone https://github.com/shashikanth-gs/a2a-wrapper.git
cd a2a-wrapper
npm install

# Compile @a2a-wrapper/core (dist/ is git-ignored and is NOT produced by npm install)
npx turbo run build

# Run a wrapper in development
cd a2a-copilot
npm run dev -- --config agents/example/config.json
```

<Callout type="warn" title="The build step matters">
  Wrappers import `@a2a-wrapper/core` from its compiled `dist/`. If you pull new commits, re-run `npm install` and `npx turbo run build`, or you may hit errors such as a missing export.
</Callout>

## Next [#next]

<Cards>
  <Card title="Quick start" href="/docs/getting-started/quickstart" />

  <Card title="Configuration" href="/docs/guides/configuration" />
</Cards>
