Documentation Index
Fetch the complete documentation index at: https://docs.yourhq.ai/llms.txt
Use this file to discover all available pages before exploring further.
Contributing to HQ
Thanks for wanting to help. This doc covers the contribution flow — code, templates, docs, and bug reports.Quick links
Ways to contribute
- Agent templates — add a new starting point for a role/persona (see below)
- Bug fixes — check existing issues, open a PR
- UI improvements — Next.js + Tailwind + shadcn; changes go in
apps/ui/ - Gateway plugins — openclaw plugins or integrations (MCP, CDP, custom)
- Documentation — if something confused you, a doc PR will save the next person
- Translations — not shipped yet, but we’ll accept i18n contributions when the framework is in
Before you start
For small changes (typos, obvious bugs, template tweaks): open a PR directly. For bigger changes: open an issue first so we can discuss approach. We don’t want you to spend days on a PR that doesn’t match the project direction.Development setup
Prerequisites:- Docker + Docker Compose
- Node.js 24+ (for UI development)
- A Supabase project for testing
apps/ui/ and the UI reloads automatically. Edit gateway/entrypoint.sh or gateway/daemons/* and restart the relevant service:
Running just the UI
If you’re only working on the UI:HQ_CONFIG_DIR to a local directory with compatible projects.json and secrets.json files. You won’t have a gateway in this setup, so gateway-dependent pages will error; that’s expected.
Running just the gateway
Useful when iterating on the agent runtime without touching the UI:Adding an agent template
- Copy an existing template as a starting point:
- Edit
templates/my-new-role/agent.jsonto match the role (name, description, team, model, etc.) - Customize the identity files:
IDENTITY.md— personality, voice, domain knowledgeSOUL.md— core beliefs and goalsUSER.md— the owner profile templateMEMORY.md— starting memories
- Add role-specific skills in
skills/ - Test: create an agent from this template in the UI, verify it behaves as expected
- Rebuild the templates index:
- Open a PR with the new template + the updated generated index
PR checklist
Before opening a PR:-
docker compose -f docker-compose.yml -f docker-compose.dev.yml upstill boots the stack -
npx tsc --noEmitpasses (zero TS errors) inapps/ui/ -
npm run lintpasses inapps/ui/(warnings OK, errors fail CI) - For gateway changes:
shellcheck gateway/entrypoint.sh gateway/scripts/*.shpasses - You haven’t committed secrets,
.env, or*.pemfiles - Commit messages describe why, not just what
main. CI runs automatically. A maintainer will review within a few days.
Code style
- UI: ESLint + Prettier config in
apps/ui/. Runnpm run lint -- --fixbefore committing. - Python: PEP 8, no specific linter pinned yet. Keep to what’s in
gateway/daemons/*.py. - Shell: shellcheck-clean. Use
set -euo pipefailin new scripts. - TypeScript: strict mode. No
anyunless there’s a reason; then a comment explaining. - Commits: conventional-commits style preferred but not required. One PR = one logical change.
Architecture decisions
Before proposing big architectural changes, read:- Architecture — current system design
- Roadmap — shipped areas and planned work
- Recent issues labeled
design
What “accepted” means
Once merged tomain:
- Docker images get rebuilt and published to GHCR automatically
- Users who track
:latestpick up the change on their nextdocker compose pull - Pinned users (
v0.1.0etc.) don’t see it until we cut the next release
Code of conduct
Be kind. See the code of conduct.License
By contributing, you agree that your contributions are licensed under the Apache License 2.0 (see LICENSE).Questions
- General: Discussions
- Bug reports: Issues
- Security:
[email protected]— don’t use issues