Kawaikara Developer Documentation
This documentation describes the active dev branch and the version 3.0 implementation. These documents are intended for contributors working on the application, built-in Providers, or installable Bundles.
The documentation distinguishes shipped behavior from incomplete design work. A capability described as planned is not available to users yet.
Architecture
- Architecture overview: repository ownership, dependency direction, composition, and IPC contracts
- Logging and diagnostics: file rotation, scopes, crash capture, renderer logging, and redaction
- Runtime and lifecycle: windows, sessions, site loading, shortcuts, navigation, and cleanup
- Security boundaries: renderer isolation, remote pages, cookies, plugins, and permissions
- Bundle, Provider, and Plugin: extension units, lifecycle, validation, compatibility, and current limits
- Branches and release channels:
mainversusdev, Stable/Staging/Nightly, and the difference between a documentation preview and a published build
Plugin development
- Plugin system overview: the current Bundle model, browser profiles, locales, and implementation status
- Provider development guide: metadata, loading, injection, login handling, PiP guards, and request hooks
- Bundle development host: in-app builds, hot reload, local projects, and VS Code attach debugging
- Bundle packaging and distribution:
.kawaiinstallation, validation, and the trust boundary
Implemented features
- Built-in integrations: bundled sites and the site-specific compatibility behavior currently implemented
- Overlay and preferences: full-window preferences, menu ordering, profiles, locales, shortcuts, and app information
- Unified Picture in Picture: dedicated frameless PiP, video selection, placement, focus restoration, and shortcut scope
- Video view and external downloader: file drops, local/HLS playback, and YT Section Downloader integration
Build and UI development
- Build and release guide: prerequisites, development commands, Storybook, Widevine, packaging, and release channels
- Run
pnpm storybookto open the component and view stories on port6006.
Source reference
Functional and architectural explanations stay in this docs/Developer
tree. Classes, interfaces, types, functions, methods, and declared values use
TSDoc beside their source declarations so editors can show the same reference
through autocomplete.
- Run
pnpm docs:source:checkto reject undocumented declarations. - Run
pnpm docs:sourceto generate the application and package HTML reference indocs/Reference.
Source map
- Application code:
src - Stable site contract:
packages/site-api - Bundled integrations:
packages/builtin-sites - KawaiUI stories and mocks:
stories
Status vocabulary
| Status | Meaning |
|---|---|
| Implemented | Executable in the current dev branch codebase |
| Limited | Implemented with an intentionally restricted scope |
| Planned | Designed or documented, but no production runtime exists yet |