Skip to content

How to Contribute

Spawnfile is fully open source under the MIT license. Contributions and discussion are welcome on GitHub.

  • Spec improvements — propose changes to the Spawnfile specification
  • Runtime adapters — add support for new autonomous agent runtimes
  • Compiler features — improve the compilation pipeline
  • Fixtures — add test cases and example projects
  • Documentation — improve guides, references, and research notes
  • Bug reports — file issues for anything that doesn’t work as expected
  1. Fork the repository
  2. Clone your fork
  3. Install dependencies: npm install
  4. Run checks: npm run typecheck, npm test, and npm run coverage
  5. Make your changes
  6. Submit a pull request

Run the checks that match the change:

Terminal window
npm run typecheck
npm test
npm run coverage
npm run build

For runtime or container changes, also run the relevant E2E scripts:

Terminal window
npm run test:e2e:docker-auth
npm run test:e2e:moltnet-team-chat
npm run test:e2e:operational-smoke

E2E scripts that expect live agent replies, such as test:e2e:moltnet-team-chat, must run with runtime/model credentials injected through spawnfile auth sync, --auth-profile, or the script’s default auth-sync path. A run where Moltnet rooms attach but agents never answer is usually an auth/profile setup failure, not enough evidence by itself that Moltnet routing or container compilation is broken.

For test:e2e:moltnet-team-chat, verify the selected profile imports Codex credentials before treating the live reply check as meaningful:

Terminal window
spawnfile auth sync fixtures/e2e/moltnet-team-chat --profile e2e

The output should include imports: codex.

test:e2e:operational-smoke runs spawnfile up against a real Docker container and verifies scheduled TinyClaw and PicoClaw agents, managed Moltnet attachment, and workspace resource links inside the running container. It does not require model credentials.

For website or normative docs changes, build the docs site:

Terminal window
cd website
npm run build

When a normative spec in specs/ changes, update the matching page under website/src/content/docs/spec/ in the same change.

Open an issue or discussion on GitHub for questions, proposals, or ideas.