|
|
1 month ago | |
|---|---|---|
| .claude | 1 month ago | |
| .gitea/workflows | 1 month ago | |
| .vscode | 2 months ago | |
| apps/template | 1 month ago | |
| docs | 1 month ago | |
| packages | 1 month ago | |
| .gitattributes | 2 months ago | |
| .gitignore | 1 month ago | |
| .npmrc | 1 month ago | |
| .prettierignore | 1 month ago | |
| AGENTS.md | 1 month ago | |
| README.md | 1 month ago | |
| eslint.config.js | 1 month ago | |
| package-lock.json | 1 month ago | |
| package.json | 1 month ago | |
| prettier.config.js | 2 months ago | |
| tsconfig.base.json | 1 month ago | |
README.md
webavatar
An npm-workspaces monorepo providing reusable core infrastructure for webavatar client projects — session management, auth tokens, and the realtime model connection — as independently-versioned packages, plus a SvelteKit template to branch client projects from.
See docs/ARCHITECTURE.md for the full architecture map, AGENTS.md for project conventions, and docs/ for a deep-dive per subsystem.
Workspaces
| Workspace | What it is |
|---|---|
packages/core |
@webavatar/webavatar-core — session management, auth tokens, provider adapters, the WS relay. Every client project needs this. |
packages/humanoid |
@webavatar/webavatar-humanoid — avatar-state derivation and animation-channel composition for 3D humanoid avatars. Optional — only projects building a humanoid avatar need it. |
apps/template |
The SvelteKit application template client projects branch from. See its own README for the client-project bootstrap procedure. |
Both packages are privately distributed (not published to the public npm registry) and ESM-only.
Getting started
npm install
cp apps/template/.env.example apps/template/.env
# fill in OPENAI_API_KEY and REALTIME_TOKEN_SECRET in apps/template/.env
npm run dev
The root npm run dev builds both packages once, then watches them alongside the template app's own dev server — this is what makes package-source hot reload work (see docs/REALTIME_SESSION.md's "Dev-mode reload behavior"). Open /demo/realtime or /demo/humanoid (works offline via REALTIME_PROVIDER=mock, no API key needed).
Scripts
Run from the repo root, these orchestrate all three workspaces:
npm run dev/npm run build/npm run check/npm test— build the packages first, then run the equivalent command across every workspace.npm run lint/npm run format— prettier + eslint across the whole repo.
Run a single workspace's own scripts with -w, e.g. npm run dev -w apps/template, or npm run test -w packages/core.
Documentation
| Subsystem | Doc |
|---|---|
| Architecture overview and module layering | docs/ARCHITECTURE.md |
| Realtime session management | docs/REALTIME_SESSION.md |
| Tool calling (server- and client-executed) | docs/TOOLS.md |
| Analytics recording | docs/ANALYTICS.md |
| Configuration (env vars, persona) | docs/CONFIGURATION.md |
@webavatar/webavatar-humanoid (avatar-state, animation composition) |
docs/HUMANOID.md |
| The monorepo migration itself — rationale, decisions, verification | docs/MONOREPO_MIGRATION_BRIEF.md |