An iOS AI voice companion with an animated character, hands-free wake mode, bring-your-own-key AI providers, speech-to-text, ElevenLabs text-to-speech, vision, and saved conversations.
This is the open-source repository for the Scowld iOS app and the marketing website at scowld.xyz. Contributions are welcome β see CONTRIBUTING.md and SECURITY.md.
- Animated companion - VRM character rendering through the bundled Amica/Arbius frontend, with lip sync, idle animations, and expressions.
- Voice and text chat - Send typed messages or voice input from the iOS composer.
- Hands-free wake mode - When enabled, the app listens on device for Bella or the saved custom companion name to start voice recording.
- Home tips - A top-right info button explains the wake phrases and composer controls.
- BYOK AI providers - Gemini, OpenAI, Claude, Ollama, Groq, OpenRouter, xAI, Together AI, Hugging Face, Venice AI, and Moonshot AI.
- BYOK speech-to-text - Native iOS speech, OpenAI Whisper, Groq Whisper, Deepgram, AssemblyAI, Google Cloud STT, browser Whisper, or text-only mode.
- BYOK text-to-speech - ElevenLabs (Celine, Claire, bundled voice presets, custom voice IDs, model selection, and bundled local voice previews) and OpenAI voices.
- Vision - Optional front-camera context can be sent to the AI when enabled.
- Past chats - Conversations are saved locally and can be selected as context for future replies.
- Character settings - Avatar, custom name, and system prompt controls.
- Multilingual speech settings - Defaults to the iPhone language, with supported language overrides.
- Local key storage - Provider API keys are stored in iOS Keychain; provider/model choices are stored in local preferences.
- Startup onboarding - Local videos, rating prompt, and offline Privacy/Terms acceptance.
- About actions - Update check, What's New, rating, Star on GitHub, share, Product Hunt, report an issue or request a feature via GitHub Issues, contact, LinkedIn, Instagram, X, privacy, and terms.
ios/ - iOS app (open ios/Scowld.xcodeproj in Xcode)
web/ - Next.js marketing website
assets/ - README assets
APPSTORE.md - App Store Connect copy
Native iOS (Swift/SwiftUI)
βββ HomeView - Main chat UI and WKWebView bridge
βββ HomeTipsSheet - In-app guide for wake phrases and composer controls
βββ CloudSTTProvider - Native/cloud speech-to-text providers
βββ AI providers - BYOK Gemini, OpenAI, Claude, Ollama, and OpenAI-compatible clients
βββ MemoryStore - Local CoreData chat history and selected chat context
βββ SettingsView - BYOK AI/STT/TTS, voice, language, avatar, and prompt settings
βββ AboutView - App actions, update check, links, and support
WKWebView (bundled Amica/Arbius frontend)
βββ Three.js + three-vrm - 3D avatar rendering
βββ VRMA animations - Idle, gesture, and lip sync animation support
βββ AudioContext - TTS audio playback
βββ Native bridge - JavaScript to Swift message passing
Vercel / Next.js website
βββ Marketing, privacy, and terms pages only
- iOS 17.0+
- Xcode 16+
- Node.js for the website
- No Vercel environment variables are required for app AI, speech, or billing services.
- Users bring their own provider API keys inside the iOS app.
Scowld 2.0 removes subscriptions, Billing, StoreKit purchases, paywalls, voice credits, and extra credit packs.
Users are responsible for provider accounts, API keys, provider billing, rate limits, and acceptable use policies for the AI, speech-to-text, and text-to-speech providers they configure.
- Open the Xcode project.
open ios/Scowld.xcodeproj
- Select the Scowld scheme and your device.
- Build and run from Xcode.
- Add provider API keys in Settings after launch.
cd web
npm install
npm run devNext.js runs at http://localhost:3000.
The website does not require hosted AI, speech, or billing environment variables.
See web/.env.example for defaults.
- Provider API keys are entered by the user and stored in iOS Keychain.
- Provider/model choices are stored locally in app preferences.
- Chat history and selected chat context are stored locally on device.
- Voice audio, prompt text, optional image context, and generated speech text are sent directly to the providers configured by the user.
- Hands-free wake detection is processed on device while the app is open and idle; it is not sent to external providers before command recording starts.
- Camera access is optional and used only when visual context is sent.
- Scowld does not use Apple's TrueDepth API or ARKit face tracking and does not collect, use, store, disclose, share, or retain face geometry, depth maps, facial blend shapes, facial expressions, biometric identifiers, or other face data.
- Privacy Policy and Terms are published on the web and bundled as offline acceptance text in startup onboarding. Keep both copies in sync when legal text changes.
- Website: https://scowld.xyz
- Privacy: https://scowld.xyz/privacy
- Terms: https://scowld.xyz/terms
- LinkedIn: https://www.linkedin.com/company/scowld
- Instagram: https://www.instagram.com/scowld_/
- Product Hunt: https://www.producthunt.com/products/scowld
- Ko-fi: https://ko-fi.com/apoorvdarshan
- Character/avatar frontend: Amica / Arbius AI (MIT)
- Developer: Apoorv Darshan, [email protected]
Scowld is released under the MIT License. The bundled character/avatar frontend (Amica / Arbius AI) is also MIT licensed.
