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 documents

Package Responsibilities

AreaResponsibility
DesktopLocal UI, Electron shell, provider settings, plugin loading, runtime wiring.
SDKReusable runtime logic for sessions, task execution, memory, voice, tools, and plugins.
TypesShared type contracts used across packages.
PluginsTool 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.

On this page