A cross-platform AI chat application built with Cordova and React that integrates multiple AI providers. Supports text, images, PDF, and JSON file processing with streaming responses.
SteroidChat allows you to chat with various AI models from different providers through a single, unified interface. Whether you prefer OpenAI's GPT models, xAI's Grok, OpenRouter's aggregated APIs, Alibaba's Qwen, or running local models with Ollama - SteroidChat has you covered.
- Multi-Provider Support: Connect to 5 different AI providers
- File Attachments: Support for text, images, PDF, and JSON files
- Streaming Responses: Real-time token-by-token AI responses
- Provider Switching: Switch between AI providers instantly
- Dark/Light Mode: Automatically follows system theme
- Offline Support: Works with Ollama without internet
| Provider | Description | API Key Required |
|---|---|---|
| OpenAI | GPT-4o, GPT-4o Mini, GPT-3.5 Turbo | Yes |
| Grok | Grok-2, Grok-2 Vision (xAI) | Yes |
| OpenRouter | 200+ models from multiple providers | Yes |
| Qwen | Qwen Turbo, Plus, Max (Alibaba) | Yes |
| Ollama | Local AI models (Llama, Mistral, etc.) | No |
| Type | Extensions | Description |
|---|---|---|
| Text | .txt, .md, .log, .csv, .js, .ts, .py, .html, .css | Raw text files |
| JSON | .json | JavaScript Object Notation |
| Images | .jpg, .jpeg, .png, .gif, .webp, .bmp, .svg | Image files (base64 encoded) |
| PDF documents |
steroid-chat/
├── steroid-chat-web/ # React web application source
│ ├── src/
│ │ ├── components/ # React UI components
│ │ │ ├── ChatInput.tsx # Message input & file attachment
│ │ │ ├── ChatMessage.tsx # Message display
│ │ │ └── Settings.tsx # Configuration panel
│ │ ├── services/ # Business logic
│ │ │ ├── aiService.ts # AI provider integration
│ │ │ ├── fileProcessing.ts # File handling
│ │ │ └── storage.ts # Local storage
│ │ ├── types/ # TypeScript definitions
│ │ ├── App.tsx # Main application
│ │ └── App.css # Styles
│ └── dist/ # Built web assets
│
└── steroid-chat-cordova/ # Cordova mobile app
├── www/ # Web assets for mobile
├── platforms/ # Mobile platform files
├── plugins/ # Cordova plugins
└── config.xml # App configuration
- Node.js 18+
- npm or yarn
- For Android: Android SDK
- For iOS: Xcode (macOS only)
-
Clone and install dependencies:
cd steroid-chat-web npm install -
Run in browser (development):
npm run dev
-
Build Android APK:
cd ../steroid-chat-cordova npm install ./node_modules/.bin/cordova build android
| Provider | Website | Notes |
|---|---|---|
| OpenAI | https://platform.openai.com/api-keys | Get free credits on signup |
| Grok | https://console.x.ai | Requires xAI account |
| OpenRouter | https://openrouter.ai/keys | Free tier available |
| Qwen | https://dashscope.console.aliyun.com | Alibaba Cloud |
| Ollama | https://ollama.ai | Install locally, no API key needed |
- Open the app
- Tap the Settings icon (⚙️)
- Enter your API key for each provider
- Select your default provider
- Tap Save
- Install Ollama from https://ollama.ai
- Run:
ollama serve - Pull a model:
ollama pull llama3.2 - In SteroidChat, set Ollama Base URL to
http://localhost:11434
- Type your message in the input field
- Press Enter or tap the send button
- Wait for AI response
- Tap the attachment icon (📎)
- Select one or more files
- Files are processed and attached to your message
- Send the message with attached files
- Use the dropdown in the input area
- Select your preferred AI provider
- Each message uses the selected provider
- Tap the settings icon in the header
- Configure API keys
- Change default provider
- Test connection to providers
# Development (browser)
cd steroid-chat-web
npm run dev
# Production web build
npm run build
# Android debug APK
cd ../steroid-chat-cordova
npm install
./node_modules/.bin/cordova build android
# Android release APK (requires signing)
./node_modules/.bin/cordova build android --release
# iOS (macOS only)
./node_modules/.bin/cordova build iosAfter building, find the APK at:
steroid-chat-cordova/platforms/android/app/build/outputs/apk/debug/app-debug.apk
- Frontend: React 19, TypeScript, Vite
- Mobile: Apache Cordova
- File Handling: HTML5 File API, Cordova plugins
- AI Integration: OpenAI-compatible REST APIs
Apache-2.0
- Ensure you're using the correct key format
- Check that the key hasn't expired
- Verify the provider is not blocking your IP
- Make sure Ollama is running:
ollama serve - Check the Base URL in settings
- For Android, use network IP (e.g.,
http://192.168.1.x:11434)
- Clean and rebuild:
rm -rf platforms && cordova platform add android - Ensure Android SDK is properly installed
- Check Java version (JDK 11+ required)
- Voice input/output
- Chat history persistence
- Model fine-tuning support
- Plugin system for extensions