Kotlin Multiplatform workspace for using multiple AI services from one client instead of installing a separate app for each provider.
Status: early prototype. Android is the first client; portable provider/domain logic lives in the shared KMP core.
Rolling Android build: download the signed APK. The asset is replaced after each successful release build from main.
Aistee combines:
- account-backed WebViews with persistent provider sessions,
- native/API chat and compare for direct providers and OpenAI-compatible gateways,
- local tooling such as profiles, prompts, skills, Project Library and Bench integrations.
Android also accepts shared text, images and application files. Web content is staged for the selected provider and file delivery requires explicit confirmation.
Full means the Aistee integration is implemented; provider-side login/page changes can still break an embedded web client. Partial means a known embedded-flow limitation remains.
| Provider / surface | Status | Authentication | Uploads | Activity | Notes |
|---|---|---|---|---|---|
| ChatGPT Web | Full | Provider WebView | Yes | Generating + unread | Persistent session; mobile/desktop mode; Codex Cloud shortcut |
| Claude Web | Full | Provider WebView | Yes | Generating + unread | Persistent session |
| Gemini Chat Web | Partial | Fresh Google OAuth may reject embedded user-agents | Yes | Generating + unread | Existing sessions work; embedded OAuth is provider-limited |
| DeepSeek Web | Full | Provider WebView | Yes | Generating + unread | Persistent session |
| Kimi Web | Full | Provider WebView | Yes | Generating + unread | Persistent session |
| Mistral Vibe Web | Full | Provider WebView | Yes | Generating + unread | Provider-scoped activity tracking |
| Qwen Web | Partial | Provider sign-in surface; embedded flow unverified | Documented; embedded unverified | Not yet | Needs device verification |
| Microsoft Copilot Web | Partial | Microsoft auth in-provider; other embedded methods unverified | Documented; embedded unverified | Not yet | Provider-owned navigation is bounded in-WebView |
| Z.ai Web | Partial | Provider sign-in surface; embedded flow unverified | Page-driven | Not yet | Needs device verification |
| Grok Web | Partial | Provider sign-in surface; embedded flow unverified | Documented; embedded unverified | Not yet | Needs device verification |
| Character.AI Web | Partial | Provider sign-in surface; embedded flow unverified | Documented; embedded unverified | Not yet | Needs device verification |
| Venice Web | Partial | Provider sign-in surface; embedded flow unverified | Documented; embedded unverified | Not yet | Needs device verification |
| Meta AI Web | Partial | Provider sign-in surface; embedded flow unverified | Not verified | Not yet | Needs device verification |
| OpenRouter Free | Native gateway | API key | N/A | Native request state | openrouter/free; excluded from default All Models compare |
| AIHubMix Free | Native gateway | API key | N/A | Native request state | Zero-cost text models; excluded from default All Models compare |
| Vercel AI Gateway | Native gateway | API key | N/A | Native request state | Live compatible text-model catalog; account/key budgets remain the spend boundary |
Direct Gemini, OpenAI and Claude chats use provider-scoped history and cancellable streaming. Gateway catalogs refresh live; All Models uses direct providers only, avoiding duplicate aggregator routes.
Provider-specific verification and API research live in docs/provider-capability-research.md. Native transport details and account-plan work live in docs/provider-runtime.md.
- Provider account sessions stay provider-owned. Aistee does not copy passwords, cookies, OAuth tokens or browser sessions.
- WebViews are pooled and evicted under memory pressure; provider tweaks are static, host-scoped and bundled with the app.
- Diagnostics exclude page text, full URLs, form values, file names and credentials.
- Aistee has no account wall. Local chats, projects, files, tools, settings and backup/import/export remain usable without an Aistee cloud account.
- Native API keys are encrypted at rest with an Android Keystore-backed AES-GCM key and are never logged or exported.
trvny/.airemains the canonical portable profiles/instructions/skills source. Aistee consumes it through an explicit boundary instead of vendoring a copy.
shared (Kotlin Multiplatform)
├── provider/model registry
├── profile + prompt tools
└── portable domain logic
platform clients
├── Android app
│ ├── WebView host + file chooser
│ ├── provider tweaks / mobile performance
│ └── Custom Tabs / intents / Keystore
├── Desktop app (planned)
└── iOS app (planned)
Backends are optional. Add one only when a feature requires server-side state or execution.
- verify embedded sign-in, upload and activity probes for the newer Web providers,
- add browser-backed auth handoff only where a provider exposes a verifiable contract,
- extend Codebench handoffs while keeping Streambench a companion UI,
- continue measured Material 3 Adaptive / large-screen UX work,
- keep security and privacy as release gates across storage, WebViews, tools, exports, widgets and notifications.
- Provider runtime
- Provider capability research
- Product ideas
- Active skills runtime
- Android performance
- Design
Android keeps minSdk 26; current compile/target SDK levels live in app/build.gradle.kts. Portable logic belongs in shared; platform APIs stay in platform modules/source sets. Long-chat responsiveness, reliable uploads and provider isolation are product constraints, not optional polish.
ISC, see LICENSE.
- Sri Lanka’s Economic and Geopolitical Balancing Act
- Governance Compared: Autocracy and Democracy in Africa
- Incident with Actions
- Jeffrey Archer, bestselling UK novelist and scandal-plagued politician, dies aged 86
- Spain's November snap election — what you need to know
- Trading Day: Nasdaq highs, Brazil surprise
❝“The computer was born to solve problems that did not exist before.”— Bill Gates❞