A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io
PeopleInSpace
Kotlin Multiplatform sample with SwiftUI, Jetpack Compose, Compose for Wear, Compose for Desktop, and Compose for Web clients along with Ktor backend.
Install
git clone https://github.com/joreilly/PeopleInSpaceInstall command taken from the project's README or registry entry. Always review code before running it.
README excerpt
Read full README on GitHub →PeopleInSpace
Kotlin Multiplatform project with SwiftUI, Jetpack Compose, Compose for Wear OS, Compose for Desktop and Compose for Web clients along with Ktor backend. Currently running on
- Android (Jetpack Compose)
- Android App Widget (Compose based Glance API - contributed by https://github.com/yschimke)
- Wear OS (Compose for Wear OS - primarily developed by https://github.com/yschimke)
- iOS (SwiftUI)
- Swift Executable Package
- Desktop (Compose for Desktop)
- Web (Compose for Web - Wasm based)
- Windows (WinUI 3)
- JVM (small Ktor back end service +
Main.ktincommonmodule) - MCP server (using same shared KMP code)
The people data comes from The Space Devs API (names, bios and images of the people
currently in space) and the position of the International Space Station from the
Where the ISS at? API, both served through this
project's own small Ktor backend (see backend module below).
The project is included as sample in the official Kotlin Multiplatform docs and also the Google Dev Library
Architecture
All of the clients are thin UI layers over the same common module: the shared view models expose
StateFlows of UI state, backed by a single repository that treats the local SQLDelight database as
the source of truth and refreshes it from the network.
flowchart TB
subgraph clients["Clients"]
direction LR
android["<b>app</b>Android · Jetpack Compose+ Glance / Remote Compose widgets"]
wear["<b>wearApp</b>Wear OS · Compose + Tile"]
ios["<b>PeopleInSpaceSwiftUI</b>iOS · SwiftUI (SKIE)+ SwiftExecutablePackage"]
desktop["<b>compose-desktop</b>JVM · Compose for Desktop"]
web["<b>compose-web</b>Kotlin/Wasm · Compose"]
winui["<b>windows/WinUiApp</b>.NET · WinUI 3"]
mcp["<b>mcp-server</b>JVM · Kotlin MCP SDK"]
end
subgraph common["common (Kotlin Multiplatform)"]
direction TB
cmpui["Compose Multiplatform UI<i>PersonList / ISSPosition / ISSMapView</i>(expect/actual map per platform)"]
vm["View models<i>PersonListViewModel · ISSPositionViewModel</i>StateFlow<UiState>"]
winclient["PeopleInSpaceClient<i>mingwX64, exported via NuGet</i>(no Koin / AndroidX)"]
repo["<b>PeopleInSpaceRepository</b>offline-first: DB is source of truth,ISS position polled every 10s"]
db[("SQLDelightPeopleInSpaceDatabase")]
api["Ktor client APIs<i>PeopleInSpaceApi · AstroviewerApi</i>"]
koin{{"Koin DI(annotations + compiler plugin)"}}
cmpui --> vm
vm --> repo
winclient --> repo
repo --> db
repo --> api
koin -.-> repo
end
subgraph remote["Remote"]
direction LR
backend["<b>backend</b>Ktor / Netty on App Engine<i>/astros.json</i>"]
spacedevs["The Space Devs API<i>names, bios, images</i>"]
wheretheiss["wheretheiss.at<i>current ISS position</i>"]
astroviewer["astroviewer.net<i>predicted ISS orbit</i>"]
end
android --> cmpui
wear --> repo
ios --> cmpui
desktop --> cmpui
web --> cmpui
winui --> winclient
mcp --> repo
api --> backend
api --> wheretheiss
api --> astroviewer
backend --> spacedevs
Similar plugs
Never stop coding. Free MIT AI gateway: one endpoint, 359 providers (150+ free), 1200+ models Kimi, Claude, GPT, Gemini, GLM, DeepSeek, MiniMax. Works with Claude Code, Codex,…
The fastest, cheapest, most efficient open-source agent harness. Run more than 500 agents on a $10 VPS.
25 MB lightweight cross-platform database client for 100+ databases, including MySQL, PostgreSQL, SQLite, Redis, MongoDB, DuckDB, SQL Server, and Dameng. Built-in AI, MCP…
A MCP for Claude Desktop / Claude Code / Windsurf / Cursor to build n8n workflows for you