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
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.jsfor 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:
**<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
- Agent Decision Guide — how the 17 tools map to tasks
- Scraping at Scale · Structured Extraction — deep guides
- Tools Reference — the 17-tool surface and legacy aliases
docs/ARCHITECTURE.md,
docs/FEATURE_GAPS.md, docs/INTEGRATION_PLAN.md, docs/IMPROVE_PLAN.md.
