Repository Structure
Understand the packages, apps, plugins, and project boundaries.
Noema is organized as a small monorepo with clear package and plugin boundaries.
Root Workspace
apps/desktop Electron desktop application
packages/core Shared core utilities
packages/sdk Runtime orchestration, voice, memory, tasks, and plugin contracts
packages/types Shared public types
plugins/* Runtime plugins loaded by the desktop app
role/ Personality and role profiles
scripts/ Project automation scripts
docs/ Project notes and design documentsPackage Responsibilities
| Area | Responsibility |
|---|---|
| Desktop | Local UI, Electron shell, provider settings, plugin loading, runtime wiring. |
| SDK | Reusable runtime logic for sessions, task execution, memory, voice, tools, and plugins. |
| Types | Shared type contracts used across packages. |
| Plugins | Tool registration, task context, prompt extensions, admin state, and UI surfaces. |
Boundary Rules
- Keep desktop UI management separate from task runtime execution.
- Keep plugin features behind generic runtime capabilities.
- Avoid moving code between packages unless the ownership boundary is genuinely wrong.
