Thank you for your interest in contributing to AgentAnycast! This document provides guidelines for contributing to any repository under the @AgentAnycast organization.
Please read and follow our Code of Conduct.
AgentAnycast is organized as multiple repositories. Choose the one that matches your contribution:
| I want to... | Repository | Language | Setup |
|---|---|---|---|
| Fix/improve the P2P daemon | agentanycast-node | Go 1.25+ | make build && make test |
| Fix/improve the Python SDK | agentanycast-python | Python 3.10+ | pip install -e ".[dev]" && pytest |
| Fix/improve the TypeScript SDK | agentanycast-ts | TypeScript | npm install && npm test |
| Fix/improve Protobuf definitions | agentanycast-proto | Protobuf | buf lint && buf generate |
| Fix/improve the Relay server | agentanycast-relay | Go 1.25+ | go build ./cmd/relay && go test ./... |
| Improve docs or report bugs | agentanycast | Markdown | — |
Each sub-repository has its own CONTRIBUTING.md with language-specific guidelines. Check there for detailed build, test, and style instructions.
The main branch is protected across all repositories. All changes must go through a pull request.
- Check existing issues — Look for open issues or discussions before starting work.
- Open an issue first — For non-trivial changes, open an issue in the main repo to discuss your approach.
- Fork & branch — Fork the relevant repository and create a feature branch from
main:Use a descriptive branch name with a prefix:git checkout -b feat/my-feature
feat/,fix/,docs/,test/,chore/. - Make changes — Follow the coding standards for that repository.
- Test — Ensure all existing tests pass and add tests for new functionality.
- Submit a PR — Open a pull request against
mainwith a clear description of your changes.
- CI must pass — Every repository has automated checks (lint, test, build) that must all pass before merging. See each repository's README for the specific checks.
- Squash merge — All PRs are squash-merged to keep the
mainbranch history clean and linear. Write a clear PR title — it becomes the commit message. - Keep PRs focused — One logical change per PR. If you're fixing a bug and also want to refactor nearby code, submit separate PRs.
All repositories under the AgentAnycast organization require a Contributor License Agreement (CLA). A CLA bot will automatically ask you to sign the CLA when you open your first pull request. You only need to sign once — it covers all repositories in the organization.
The CLA ensures the project maintainers can continue to distribute, relicense, and offer all components under their current or future license terms. You can read the full CLA at CLA.md.
Use Conventional Commits:
feat: add agent discovery via DHT
fix: handle reconnection after relay timeout
docs: update getting started guide
test: add NAT traversal integration tests
refactor: extract task state machine into separate module
Some changes span multiple repositories (e.g., adding a new RPC method):
- Start with
agentanycast-proto— define the new interface - Update
agentanycast-node— implement the server side - Update
agentanycast-pythonand/oragentanycast-ts— implement the client side
Open linked PRs in each repository and reference them in your descriptions.
Please do NOT open a public issue for security vulnerabilities. See SECURITY.md for responsible disclosure instructions.
- Open a Discussion for general questions
- Join the conversation in existing issues