How pal-ai-lab/coopanion works
Coopanion is a cross-platform desktop companion: the user chats with Coo by typing or voice, and can optionally grant it screen-reading and computer-control abilities. Electron starts the Core process and hosts the settings console; Core coordinates the pet, model connections, memory, reminders, and extensions. The graph retains the README’s major product branches, including speech, computer use, figure packs, and Worlds. Several runtime modules were not sampled, so their internal call paths are omitted; documented relationships are marked with README evidence.
Main entry points: companion.ts Core service · chat.ts Chat experience · index.ts Settings console · system-recognizer.ts Speech recognition
Components 20
Desktop runtime
- Electron app
app/main.cjs - Core service
core/companion.ts
Settings console
- Settings console
console/index.ts - Console API client
console/base/api.ts - Advanced pages
console/advanced/console-pages/host.ts
Companion experience
- Desktop pet
packages/cortico-world-desktop-pet/src/world.ts - Pet WebUI
packages/cortico-world-desktop-pet/src/webui/client.ts - Persona and memory
core/guide.ts - Reminders
core/alarms.ts
Model and voice
- Model providers
packages/cortico-provider-coo/src/index.ts - Chat experience
packages/cortico-world-desktop-pet/src/chat.ts - Speech recognition
packages/cortico-world-desktop-pet/src/asr/system-recognizer.ts - Speech output
packages/cortico-world-desktop-pet/src/speech/index.ts
Extensions and control
- Computer use
packages/cortico-world-desktop-pet/src/cua/cua.ts - OS input engine
packages/cortico-world-desktop-pet/src/cua/engine-child.ts - Figure packs
packages/cortico-world-desktop-pet/src/pack-import.ts - World extensions
console/advanced/features/extensions/gallery.ts
Other components
- User
- Model service
- Transcription service
Connections 21
- User → Electron app: starts app
- Electron app → Core service: starts Core
app/main.cjs - User → Settings console: opens settings
- Settings console → Console API client: makes requests
console/index.ts - Console API client → Core service: calls WebUI API
- Settings console → Advanced pages: mounts pages
console/index.ts - User → Chat experience: types or speaks
- Chat experience → Model providers: requests responses
- Model providers → Model service: uses model API
- User → Speech recognition: holds talk key
- Speech recognition → Chat experience: provides transcript
- Speech recognition → Transcription service: optionally transcribes
- Chat experience → Speech output: speaks replies
- Core service → Persona and memory: manages memory
- Core service → Reminders: sets alarms
- Core service → Desktop pet: runs desktop pet
- User → Pet WebUI: configures pet
- User → Computer use: permits computer use
- Computer use → OS input engine: dispatches OS actions
packages/cortico-world-desktop-pet/src/cua/engine-child.ts - User → Figure packs: imports figure packs
- User → World extensions: browses extensions