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:
| Area | Modules |
|---|---|
| Runtime | Orleans, Aspire, Azure, MCP |
| AI and apps | AI, Apps, Circles, Flame, Tools, ArtCraft |
| Code and automation | CSharp, GitHub, Playwright |
| Data | Postgres, Qdrant, ClickHouse, Supabase |
| Services | Gmail, Salesforce, Time |
| Shell | Flutter |
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.
dotnet new install IntoChat.OS.Templates
dotnet new intochat-module -n Weather --ModuleId weatherA 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
ContractsorAspire.Hostingproject. Public contract types may live in a folder of the module project when no other module references them; split aContractsproject 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.