Skip to main content

Contributing

Webrain is an open-source MCP server. The workspace is a Cargo workspace with three crates: webrain-core, webrain-mcp, and webrain-cli.

Build & test

Rust edition 2024, MSRV 1.85. CI runs fmt + clippy + test on every push to main, so a green local run is the bar.

Commit conventions

This project uses Semantic Versioning and Conventional Commits:
  • Types: feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert
  • Scopes (mirror the crates/subsystems): core, engines, mcp, tools, cli, install, launch, login, vault, vision, pdf, download, cookies, batch, extraction, navigation, stealth, antibot, session, media, docs, build, ci, style, perf, dist, deps, config, test, skill, script, release
  • See commitlint.config.js for the full rules
CHANGELOG.md follows Keep a Changelog + SemVer. When source code changes, add an entry under [Unreleased], grouped by heading and prefixed with the commit scope:
Each entry is prefixed **<scope>**: (e.g. - **core**: …). The Changelog Enforce CI check fails the run if source changes without a changelog entry, so this is mandatory, not optional. Full PR policy lives in CONTRIBUTING.md.

Design notes

  • One binary, subcommands via match — no clap dependency (webrain-cli).
  • No unrequested abstractions — the codebase favors stdlib and native platform features; deliberate simplifications are marked with ponytail: comments naming their ceiling and upgrade path.
  • Every engine speaks CDP — a change to CdpBackend (webrain-core) benefits Chrome, lightpanda, and obscura at once.

Where to help

Internal planning docs (kept in-repo, not on the site): docs/ARCHITECTURE.md, docs/FEATURE_GAPS.md, docs/INTEGRATION_PLAN.md, docs/IMPROVE_PLAN.md.