← Back to Files
README.md
# KaiChat Mobile
Native Android client for KaiChat, written in C# with .NET MAUI. This is not a WebView wrapper.
## What It Talks To
The app reuses the existing KaiChat server:
- REST: `/api/conversations`, `/api/conversations/{id}`
- SignalR: `/chatHub`
- Hub methods: `JoinConversation`, `SendMessage`, `StopStreaming`
- Stream events: `StreamReplayStarted`, `StreamStart`, `ReceiveToken`, `ReceiveThinking`, `StreamComplete`
## First Run
Set the server URL to the machine running KaiChat, for example:
```text
http://100.x.y.z:5200
```
For Tailscale, use the server machine's Tailscale IP or MagicDNS name.
## Features In This First Native Pass
- Native Android UI
- Conversation drawer
- Streaming responses over SignalR
- Reattach to active streams after reconnect
- Local queued sends while disconnected
- Persistent outbox via Android preferences
- Stop streaming
- Server URL setting
## Build Tooling
This project needs the .NET MAUI Android workload:
```powershell
dotnet workload install maui-android
dotnet build .\KaiChat.Mobile.csproj
```
This machine did not have the Android workload/JDK installed when the project was scaffolded.