Thanks for helping. This page gets you from a fresh clone to a merged pull request.
- Browse
good first issuefor something you can finish in a few hours, orhacktoberfestfor the full Hacktoberfest list. - Comment on the issue that you're taking it. If nobody has pushed anything after a week, the issue is open again.
- Something not listed? Open an issue first and describe the change, so we can agree on the shape before you write it.
You need bun (never npm) and Postgres 16+ with pgvector. The README's Get started section has the commands. Each package installs on its own; there are no workspaces.
Most UI and backend work needs no sandbox or model key: the tests run against a throwaway database and fakes. A real agent run needs a sandbox provider key (Daytona is the easiest) and a model key; see the setup guide.
Run what CI runs:
bun run typecheck # from the repo root, covers every package
cd backend && bun run test # uses its own throwaway database
cd frontend && bun run test && bun run lint- Keep a pull request to one change. Small pull requests get reviewed fast.
- Add or update a test for the behaviour you changed.
- Match the code around you. Read
AGENTS.mdand, for UI work,frontend/AGENTS.mdfirst. - User-visible text: plain words, no em dashes.
- Commit subjects in the imperative ("Add the Discord transport"), no
type(scope):prefixes.
| You want to add | Start from |
|---|---|
| A messaging channel (Discord, Telegram, Teams) | backend/src/connectors/: the Transport and Renderer contracts in types.ts, with email/ as the worked example |
| A sandbox provider | packages/sandbox-contract and the provider packages next to it; packages/conformance is the acceptance suite |
| A UI component | frontend/components/base/, the shared kit; compose it rather than writing a new one |
| Docs | docs-site/ |
AI help is fine. Blind AI output is not.
- Understand every line you submit, run it yourself, and show it working in the app with your own screenshots or recording.
- Pull requests that look generated and untested are closed without a reply and labeled
spam, so they don't count for Hacktoberfest. Signs we look for: no proof from a real run, code that ignores this repo's patterns or reinvents helpers that already exist, unrelated files changed, a description that only restates the issue, and failing checks nobody looked at. - One pull request per issue, by the person who claimed it. Pull requests on issues someone else has taken, or several near-identical pull requests for the same bounty, count as farming.
- Bounties are paid only for the verified outcome the issue describes, never for a write-up, a plan, or an unfinished attempt.
- Answer review questions in your own words. If you can't explain your change, we can't merge it.
Merged, approved or hacktoberfest-accepted pull requests count. Pull requests that only
reformat, rename or add noise get the spam label and do not count.
UseAgent is AGPL-3.0. By opening a pull request you agree to the Contributor License Agreement: you keep ownership of your work and grant the maintainers the rights to ship it, including under commercial terms.