Thanks for your interest in contributing! This document explains how to get a dev environment running, the change workflow, and what we look for in a PR.
By participating, you agree to abide by our Code of Conduct.
- Bug reports — open an issue using the bug template. Include OS, Node version, Claude Code version, and reproduction steps.
- Feature requests — open an issue using the feature template. Describe the use case before the proposed solution.
- Pull requests — see below.
- Docs — typo fixes and clarifications are welcome and don't need a prior issue.
Requirements:
- Node.js >= 20
- Claude Code (latest)
- A MatterAI account for end-to-end testing
git clone https://github.com/MatterAIOrg/orbcode.git
cd orbcode
npm installLoad the plugin from your local checkout:
export ANTHROPIC_BASE_URL=http://127.0.0.1:7856
claude --plugin-dir "$(pwd)"Run /orb-setup inside the session to start the proxy and authenticate.
| Path | Purpose |
|---|---|
.claude-plugin/ |
Plugin and marketplace manifests |
scripts/orb-proxy.js |
Local HTTP proxy (port 7856) |
scripts/orb-mcp.js |
MCP server exposed to Claude Code |
scripts/orb-cli.js |
CLI used by slash commands |
scripts/session-start-hook.js |
Auto-starts the proxy on each session |
skills/ |
Slash command definitions |
agents/ |
Subagent definitions |
hooks/hooks.json |
Hook registrations |
src/indexer/ |
Codebase indexer |
- Fork the repo and create a topic branch from
main:git checkout -b fix/proxy-timeout. - Make your change. Keep PRs focused — one logical change per PR.
- Test locally end-to-end (see Testing below).
- Update
CHANGELOG.mdunder## [Unreleased]. - If your change is user-facing, update the README.
- Open a PR against
mainand fill out the template.
Use Conventional Commits where reasonable:
feat: add /orb-doctor commandfix(proxy): handle 429 with exponential backoffdocs: clarify headless setupchore: bump deps
- ES modules (
type: "module"). - No semicolons-only changes; preserve existing style in files you touch.
- Prefer small, well-named functions over comments.
Before opening a PR:
node scripts/orb-proxy.js— confirm the proxy boots without errors.- In a real Claude Code session loaded against your branch, run
/orb-setupthen/orb-statusand verify both succeed. - Exercise the path your change touches (login, indexer, MCP tool call, etc.).
When CI is added, all checks must pass before merge.
- Bump
versionin.claude-plugin/plugin.json,.claude-plugin/marketplace.json, andpackage.json. - Move
## [Unreleased]entries inCHANGELOG.mdunder a new## [x.y.z] - YYYY-MM-DDheading. - Commit:
chore(release): vX.Y.Z. - Tag and push:
git tag vX.Y.Z && git push origin main --tags. - Create a GitHub Release with the changelog body.
Do not open public issues for vulnerabilities. See SECURITY.md.
By contributing, you agree that your contributions will be licensed under the MIT License.