Skip to content

Modules ​

A module is the unit of capability in IntoChat OS. It registers neurons, contracts, configuration and, when needed, infrastructure into the kernel.

Registered modules ​

The kernel discovers these modules:

AreaModules
RuntimeOrleans, Aspire, Azure, MCP
AI and appsAI, Apps, Circles, Flame, Tools, ArtCraft
Code and automationCSharp, GitHub, Playwright
DataPostgres, Qdrant, ClickHouse, Supabase
ServicesGmail, Salesforce, Time
ShellFlutter

A Windows module for desktop automation is available to hosts on Windows through WithWindowsEdge(). Modules that need a container (Postgres, ClickHouse, Supabase, Qdrant, ArtCraft) are excluded from the in-process test composition.

Shipped apps ​

First-party apps live under features/os: BrainView, Calculator, Circle, CircleRoom, DataVisualizer, Engineer, Files, FilmCraft, Friends, Ino, Memory, PhotoCraft, Router, SelfImprove, Settings, Usage and Workspace.

Add a module ​

Start from the intochat-module template and follow Write a module, which ends in a passing test.

sh
dotnet new install IntoChat.OS.Templates
dotnet new intochat-module -n Weather --ModuleId weather

A module is declared with SDK attributes: [Module] names it, [Setting] and [Secret] declare its configuration, and [ModuleContracts] marks the types other modules may reference. The SDK source generator writes the registration; the one method you write is OnConfigure.

  • Discovery is automatic. There is no catalog to edit and no registration list to extend.
  • A module needs no Contracts or Aspire.Hosting project. Public contract types may live in a folder of the module project when no other module references them; split a Contracts project out when another module does.
  • Hosting projects (containers and parameters) are separate projects and are picked up by glob.
  • Module README tables are generated by dotnet run scripts/module-readmes.cs; do not edit them by hand.
  • Add tests with the shared harness; see Testing.

Warnings are errors, nullable is enabled and package versions are central in Directory.Packages.props. For the full rules, see Contributing.

Released under the MIT License.