How inckie/aisuper works
AI Super App is a multiplatform runtime for loading and executing applets: artifact resources and manifests feed an applet/feature lifecycle, sandboxed JavaScript and permission-guarded modules, state storage, and UI rendering. Users interact through Compose, Android widgets, a terminal app, or a React headless-session client; the README also documents a REST/SSE server and headless sessions. The principal path is applet selection/loading, feature execution, then rendered interaction. Some documented subsystems were not sampled, so their links are documented rather than inferred from unseen implementation.
Main entry points: Applet.kt Applet lifecycle · Feature.kt Feature runtime · App.kt Compose application · App.tsx React client
Components 20
Applet runtime
- Resource providers
kotlin/applet-provider/src - Applet lifecycle
kotlin/shared/src/commonMain/kotlin/com/damn/aisuper/runtime/Applet.kt - Feature runtime
kotlin/shared/src/commonMain/kotlin/com/damn/aisuper/runtime/Feature.kt - Scoped state
kotlin/shared/src/commonMain/kotlin/com/damn/aisuper/storage/StateStorage.kt - JS storage bindings
kotlin/shared/src/commonMain/kotlin/com/damn/aisuper/runtime/StorageBindings.kt - Headless sessions
kotlin/shared/src/commonMain/kotlin/com/damn/aisuper/headless
Execution services
- JS engines
kotlin/shared/src/commonMain/kotlin/com/damn/aisuper/engine - Feature modules
kotlin/shared/src/commonMain/kotlin/com/damn/aisuper/modules - HTTP audio GPS
kotlin/shared/src/commonMain/kotlin/com/damn/aisuper/modules/impl - MCP harness
kotlin/shared/src/jvmMain/kotlin/com/damn/aisuper/harness
User interfaces
- Compose application
kotlin/composeApp/src/commonMain/kotlin/com/damn/aisuper/App.kt - Compose renderers
kotlin/composeApp/src/commonMain/kotlin/com/damn/aisuper/layout/frontend - Android widgets
kotlin/composeApp/src/androidMain/kotlin/com/damn/aisuper/widget - Terminal UI
kotlin/lanternaApp/src/main/kotlin/com/damn/aisuper/lanterna/Main.kt - React client
client-react/src/App.tsx - Widget renderer
client-react/src/WidgetRenderer.tsx
Remote access
- REST SSE server
kotlin/server/src/main/kotlin/com/damn/aisuper/server - Headless API
client-react/src/api.ts
Other components
- Applet user
- Applet artifacts
Connections 21
- Applet user → Compose application: uses
- Applet user → Terminal UI: uses
- Applet user → React client: uses
- Applet artifacts → Resource providers: loaded by
- Resource providers → Applet lifecycle: supplies resources
kotlin/applet-provider/src/commonMain/kotlin/com/damn/aisuper/applet/ComposeAppletProvider.kt - Compose application → Applet lifecycle: creates
kotlin/composeApp/src/commonMain/kotlin/com/damn/aisuper/App.kt - Applet lifecycle → Feature runtime: launches
kotlin/shared/src/commonMain/kotlin/com/damn/aisuper/runtime/Applet.kt - Applet lifecycle → Scoped state: creates stores
kotlin/shared/src/commonMain/kotlin/com/damn/aisuper/runtime/Applet.kt - Feature runtime → Scoped state: scopes state
kotlin/shared/src/commonMain/kotlin/com/damn/aisuper/runtime/Feature.kt - Feature runtime → Feature modules: registers modules
kotlin/shared/src/commonMain/kotlin/com/damn/aisuper/runtime/Feature.kt - Feature runtime → JS engines: runs scripts
- JS storage bindings → Scoped state: reads and writes
kotlin/shared/src/commonMain/kotlin/com/damn/aisuper/runtime/StorageBindings.kt - Feature modules → HTTP audio GPS: includes
- Compose application → Compose renderers: renders layouts
kotlin/composeApp/src/commonMain/kotlin/com/damn/aisuper/App.kt - Android widgets → Applet lifecycle: manages applets
kotlin/composeApp/src/androidMain/kotlin/com/damn/aisuper/widget/WidgetAppletManager.kt - Terminal UI → Applet lifecycle: loads applet
kotlin/lanternaApp/src/main/kotlin/com/damn/aisuper/lanterna/Main.kt - React client → Widget renderer: renders widgets
client-react/src/App.tsx - React client → Headless API: calls API
client-react/src/App.tsx - Headless sessions → Applet lifecycle: wraps runtime
- REST SSE server → Headless sessions: serves sessions
- MCP harness → Applet lifecycle: exposes tools