writing-client-code

Installation
SKILL.md

Repository Orientation

The clients mono-repo contains:

  • apps/web, apps/browser, apps/desktop, apps/cli — client applications
  • libs/common — shared code for ALL clients including CLI (no Angular dependencies — CLI uses Node, not Angular DI)
  • libs/angular — Angular-specific code for visual clients only
  • libs/components — Angular Component Library (CL)

Why libs/common cannot import Angular

CLI is a first-class client. Any code in libs/common must work without Angular's dependency injection, decorators, or lifecycle hooks. This is why cross-client services use abstract classes as interfaces — the concrete implementations (Default*, Web*, Browser*, Desktop*, Cli*) live in their respective apps.

Architectural Rationale

Thin components

Components contain only view logic. Business logic belongs in services. This keeps components testable, reusable, and prevents Angular lifecycle coupling from leaking into domain logic.

Related skills

More from bitwarden/ai-plugins

Installs
32
GitHub Stars
100
First Seen
Feb 13, 2026