Thanks for your interest in pywire. Bug reports, docs improvements and code are all welcome. Please be respectful in every interaction.
- Bugs: open an issue in pywire/pywire. Include a small
.wiresnippet and your pywire version if you can. - Features: open a discussion or an issue to talk through the design before writing code.
- Docs: improvements are as useful as code. The docs live in
docs/in the monorepo. - Code: see below.
pywire is a monorepo. All packages are developed and released from pywire/pywire, and the repo's AGENTS.md is the full reference for build, test and conventions. The marketing site is in pywire/pywire.dev.
- Python 3.11 to 3.14
- uv for Python packages
- pnpm 10 and Node 24 for JS packages, docs and the browser client (use pnpm, not npm)
- A Rust toolchain if you touch the tree-sitter grammar tests
- Git
-
Fork pywire/pywire and clone your fork:
git clone https://github.com/your-username/pywire.git cd pywire -
Install everything:
./scripts/install
Useful scripts, from the repo root or any package directory:
./scripts/check: format, lint, type check and tests. Use./scripts/check --changedto run only the packages your change affects../scripts/test: run the test suites../scripts/lint: format code and fix lint errors.
Python uses ruff for formatting and linting and ty for type checking. TypeScript uses prettier, eslint and tsc. Run ./scripts/check before opening a PR. If you add a feature or fix a bug, add a test in the package's tests/ directory.
- Create a branch for your change.
- Use Conventional Commits for commit messages and PR titles, for example
feat(pywire): add signal batching. Releases are generated from them. Don't put extra parentheses in a PR title beyond the scope, and don't bump versions by hand. - Open the PR against
main. PRs are squash-merged and need one approving review and passing CI.
Checklist:
-
./scripts/checkpasses. - New behavior has tests.
- Docs are updated if needed.
pywire is licensed under Apache-2.0. By contributing, you agree that your contributions are licensed under the same terms.