# kingpinzs/tessera architecture

> Architecture diagram of the GitHub repository kingpinzs/tessera, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/kingpinzs/tessera
- Repository: https://github.com/kingpinzs/tessera

## Overview

TileShell is an Android launcher and shell with a live-tile home screen plus built-in utilities and services. The principal user workflow is opening the launcher, viewing and organizing app tiles, then launching an app or interacting with tile content. Separate product branches include calendar, photo, music and weather feeds; a voice assistant; and utilities such as clock, calculator, recorder and keyboard. The README is empty and the sampled source is partial, so links are limited to explicit launcher, publishing and service behavior rather than inferred wiring.

Main entry points: [`app/src/main/kotlin/app/tileshell/tiles/engine/LiveTileEngine.kt`](https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/tiles/engine/LiveTileEngine.kt) (Live tile engine), [`app/src/main/kotlin/app/tileshell/cortana/CortanaSessionService.kt`](https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/cortana/CortanaSessionService.kt) (Assistant session), [`app/src/main/kotlin/app/tileshell/cortana/CortanaRecognitionService.kt`](https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/cortana/CortanaRecognitionService.kt) (Speech recognition), [`app/src/main/kotlin/app/tileshell/cortana/match/CommandMatcher.kt`](https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/cortana/match/CommandMatcher.kt) (Command matching)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_shell["Launcher shell"]
  node_start_activity["Launcher entry<br/>[StartActivity.kt]"]
  node_start_page["Start screen<br/>[StartPage.kt]"]
  node_app_list["App list<br/>[AppListPage.kt]"]
  node_settings["Shell settings"]
end

subgraph group_tiles["Tiles and feeds"]
  node_tile_layout[("Tile layout<br/>[LayoutStore.kt]")]
  node_tile_api["Live tile API"]
  node_tile_engine["Live tile engine<br/>[LiveTileEngine.kt]"]
  node_feeds["Shell feeds"]
end

subgraph group_utilities["Built-in utilities"]
  node_weather["Weather<br/>[WeatherActivity.kt]"]
  node_clock["Clock and alarms<br/>[ClockActivity.kt]"]
  node_calculator["Calculator"]
  node_calc_engine["Calculation engines<br/>[CalcEngine.kt]"]
  node_music["Music player<br/>[MusicService.kt]"]
  node_recorder["Voice recorder<br/>[RecorderService.kt]"]
  node_keyboard["On-screen keyboard<br/>[KeyboardService.kt]"]
end

subgraph group_assistant["Voice assistant"]
  node_assistant_session["Assistant session"]
  node_recognition["Speech recognition"]
  node_speech_service["Speech engine service<br/>[SpeechService.kt]"]
  node_command_matcher["Command matching<br/>[CommandMatcher.kt]"]
  node_action_layer["Assistant actions<br/>[ActionLayer.kt]"]
end

subgraph group_platform["Platform services"]
  node_clock_store[("Clock state<br/>[ClockStore.kt]")]
  node_music_library["Music library<br/>[MusicLibrary.kt]"]
  node_recording_store[("Recording store<br/>[RecordingStore.kt]")]
end

node_user(("User"))
node_android(("Android system"))

node_user -->|"opens launcher"| node_start_activity
node_android -->|"starts activity"| node_start_activity
node_start_page -->|"renders content"| node_tile_engine
node_feeds -->|"publishes content"| node_tile_engine
node_tile_api -->|"publishes tiles"| node_tile_engine
node_android -->|"requests session"| node_assistant_session
node_android -->|"starts recognition"| node_recognition
node_recognition -->|"binds and listens"| node_speech_service
node_assistant_session -.->|"not established"| node_command_matcher
node_command_matcher -.->|"not established"| node_action_layer
node_calculator -.->|"not established"| node_calc_engine

click node_start_activity "https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/StartActivity.kt"
click node_start_page "https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/start/StartPage.kt"
click node_app_list "https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/applist/AppListPage.kt"
click node_settings "https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/settings/SettingsActivity.kt"
click node_tile_layout "https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/tiles/LayoutStore.kt"
click node_tile_api "https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/tiles/api/LiveTileProvider.kt"
click node_tile_engine "https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/tiles/engine/LiveTileEngine.kt"
click node_feeds "https://github.com/kingpinzs/tessera/tree/main/app/src/main/kotlin/app/tileshell/feeds"
click node_weather "https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/weather/WeatherActivity.kt"
click node_clock "https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/clock/ClockActivity.kt"
click node_calculator "https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/calculator/CalculatorActivity.kt"
click node_calc_engine "https://github.com/kingpinzs/tessera/blob/main/calc/src/main/kotlin/app/tileshell/calc/engine/CalcEngine.kt"
click node_music "https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/music/MusicService.kt"
click node_recorder "https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/recorder/RecorderService.kt"
click node_keyboard "https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/ime/KeyboardService.kt"
click node_assistant_session "https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/cortana/CortanaSessionService.kt"
click node_recognition "https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/cortana/CortanaRecognitionService.kt"
click node_speech_service "https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/cortana/speech/SpeechService.kt"
click node_command_matcher "https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/cortana/match/CommandMatcher.kt"
click node_action_layer "https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/cortana/action/ActionLayer.kt"
click node_clock_store "https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/clock/ClockStore.kt"
click node_music_library "https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/music/MusicLibrary.kt"
click node_recording_store "https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/recorder/RecordingStore.kt"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_start_activity,node_start_page,node_app_list,node_settings,node_user toneBlue
class node_tile_layout,node_tile_api,node_tile_engine,node_feeds toneAmber
class node_weather,node_clock,node_calculator,node_calc_engine,node_music,node_recorder,node_keyboard toneMint
class node_assistant_session,node_recognition,node_speech_service,node_command_matcher,node_action_layer toneRose
class node_clock_store,node_music_library,node_recording_store,node_android toneIndigo
```

## Components

### Launcher shell

- [Launcher entry](https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/StartActivity.kt): `app/src/main/kotlin/app/tileshell/StartActivity.kt`
- [Start screen](https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/start/StartPage.kt): `app/src/main/kotlin/app/tileshell/start/StartPage.kt`
- [App list](https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/applist/AppListPage.kt): `app/src/main/kotlin/app/tileshell/applist/AppListPage.kt`
- [Shell settings](https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/settings/SettingsActivity.kt): `app/src/main/kotlin/app/tileshell/settings/SettingsActivity.kt`

### Tiles and feeds

- [Tile layout](https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/tiles/LayoutStore.kt): `app/src/main/kotlin/app/tileshell/tiles/LayoutStore.kt`
- [Live tile API](https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/tiles/api/LiveTileProvider.kt): `app/src/main/kotlin/app/tileshell/tiles/api/LiveTileProvider.kt`
- [Live tile engine](https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/tiles/engine/LiveTileEngine.kt): `app/src/main/kotlin/app/tileshell/tiles/engine/LiveTileEngine.kt`
- [Shell feeds](https://github.com/kingpinzs/tessera/tree/main/app/src/main/kotlin/app/tileshell/feeds): `app/src/main/kotlin/app/tileshell/feeds`

### Built-in utilities

- [Weather](https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/weather/WeatherActivity.kt): `app/src/main/kotlin/app/tileshell/weather/WeatherActivity.kt`
- [Clock and alarms](https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/clock/ClockActivity.kt): `app/src/main/kotlin/app/tileshell/clock/ClockActivity.kt`
- [Calculator](https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/calculator/CalculatorActivity.kt): `app/src/main/kotlin/app/tileshell/calculator/CalculatorActivity.kt`
- [Calculation engines](https://github.com/kingpinzs/tessera/blob/main/calc/src/main/kotlin/app/tileshell/calc/engine/CalcEngine.kt): `calc/src/main/kotlin/app/tileshell/calc/engine/CalcEngine.kt`
- [Music player](https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/music/MusicService.kt): `app/src/main/kotlin/app/tileshell/music/MusicService.kt`
- [Voice recorder](https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/recorder/RecorderService.kt): `app/src/main/kotlin/app/tileshell/recorder/RecorderService.kt`
- [On-screen keyboard](https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/ime/KeyboardService.kt): `app/src/main/kotlin/app/tileshell/ime/KeyboardService.kt`

### Voice assistant

- [Assistant session](https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/cortana/CortanaSessionService.kt): `app/src/main/kotlin/app/tileshell/cortana/CortanaSessionService.kt`
- [Speech recognition](https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/cortana/CortanaRecognitionService.kt): `app/src/main/kotlin/app/tileshell/cortana/CortanaRecognitionService.kt`
- [Speech engine service](https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/cortana/speech/SpeechService.kt): `app/src/main/kotlin/app/tileshell/cortana/speech/SpeechService.kt`
- [Command matching](https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/cortana/match/CommandMatcher.kt): `app/src/main/kotlin/app/tileshell/cortana/match/CommandMatcher.kt`
- [Assistant actions](https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/cortana/action/ActionLayer.kt): `app/src/main/kotlin/app/tileshell/cortana/action/ActionLayer.kt`

### Platform services

- [Clock state](https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/clock/ClockStore.kt): `app/src/main/kotlin/app/tileshell/clock/ClockStore.kt`
- [Music library](https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/music/MusicLibrary.kt): `app/src/main/kotlin/app/tileshell/music/MusicLibrary.kt`
- [Recording store](https://github.com/kingpinzs/tessera/blob/main/app/src/main/kotlin/app/tileshell/recorder/RecordingStore.kt): `app/src/main/kotlin/app/tileshell/recorder/RecordingStore.kt`

### Other components

- **User**
- **Android system**

## Connections

- User → Launcher entry: opens launcher
- Android system → Launcher entry: starts activity
- Start screen → Live tile engine: renders content
- Shell feeds → Live tile engine: publishes content
- Live tile API → Live tile engine: publishes tiles
- Android system → Assistant session: requests session
- Android system → Speech recognition: starts recognition
- Speech recognition → Speech engine service: binds and listens
- Assistant session → Command matching: not established
- Command matching → Assistant actions: not established
- Calculator → Calculation engines: not established
