Koko is under active development. Contributions to engine correctness, protocol behavior, SDK ergonomics, and benchmarks are welcome.
Getting started
- Fork / clone the repo
- Install toolchain — see Requirements
zig buildand verifyzig-out/bin/koko- Run relevant
code-check/probes before submitting changes
Development priorities
- Browser lifecycle correctness
- Automation stability and anti-flake execution
- Realm and navigation semantics
- CDP behavior consistency
- MCP integration and agent tooling
- Multi-session runtime infrastructure
Knowledge notes
After important fixes or discoveries, add an English note in knowledge/:
- Template:
knowledge/_template.md - Bugs:
knowledge/bugs/YYYY-MM-DD-*.md - Publish to this blog:
npm run blog:publish -- <path>.md
SDK changes
SDK changes should maintain Playwright API parity where claimed. Koko-only APIs belong behind LP.* or clearly marked SDK methods. Run SDK smoke tests after LP handler changes.
Benchmarks
Include benchmark results when claiming performance improvements. Run npm run bench:compare:publish and attach the generated report diff.
License
Koko is licensed under AGPL-3.0. See LICENSE and LICENSING.md in the repo. Commercial licensing inquiries: see License page.
Security
Report vulnerabilities privately to security@kokoio.com — do not file public issues. See Security page.