Introduction
VorexO is a mobile IDE for Android built around a simple idea: your phone is enough to write and ship small projects. It bundles a code editor (CodeMirror 6), a live preview sandbox, a project file manager, and an AI assistant that can explain code, plan features, or write entire files for you.
The AI side follows a BYOK (bring your own key) model. VorexO ships without any API keys and has no backend of its own — you pick a provider, paste your key in Settings, and the app talks to that provider directly from your device. Twelve providers are supported out of the box, including a local Ollama instance running on your own network.
Details
| Package | com.vorexo.app |
|---|---|
| Current release | v1.0 (versionCode 33) |
| APK size | ~6.5 MB |
| Android | 5.0+ (minSdk 21, targetSdk 34) |
| Engine | Android shell + embedded web runtime (Capacitor) |
| Network | Device talks straight to the AI provider — no middleman server |
| Earlier builds | v3.9-V / v3.10-V were private test builds; v1.0 is the first public release |
Features
Chat mode
Quick questions and snippets. Ask for a regex, an explanation, or a fix without leaving your editor.
Think mode
Step-by-step reasoning for harder problems — architecture decisions, debugging plans, trade-offs.
Agent mode
Describe a task, get complete files back. The agent writes full files and offers to save each one into your project.
Code editor
CodeMirror 6 with syntax highlighting for HTML, CSS, JS, JSON, Python and more, plus a mobile-friendly insert toolbar.
Live preview
A sandboxed runtime renders your web project instantly, with a localStorage shim so most apps just work.
Projects
Create, rename, duplicate and export projects. Files live in the app's private storage — export anytime.
Cloud sync
Optional backup of projects and settings to your own Firebase project. Restore on any device in one tap.
Dark UI
A single, distraction-free dark theme tuned for long sessions and one-handed use.
The three AI modes
Every conversation runs in one of three modes, switched from the selector above the input:
| Mode | Best for | Behaviour |
|---|---|---|
| chat | Quick answers | Direct, low-latency replies. Code blocks are copyable but not filed into the project. |
| think | Planning, hard bugs | The model is pushed to reason step-by-step and structure a plan before writing code. |
| agent | "Build this for me" | The model outputs complete files in the [FILE] protocol — see Agent mode. |
Installation
VorexO is distributed as a direct-download APK (VorexO-v1.0.apk). It isn't on Google Play yet, so Android will ask you to allow installs from your browser or file manager once.
Coming from a v3.x test build? Uninstall it first. The public release is signed with a new key, and Android won't update an app when the signature changes — the installer will fail with "App not installed". Before uninstalling, copy your API keys out of Settings and export any projects you want to keep. Uninstalling wipes the app's private storage and there's no way back. If you had cloud sync enabled, signing in and restoring covers projects and settings (keys are never synced, by design).
1. Uninstall any test build
Android Settings → Apps → VorexO → Uninstall. Skip this on a fresh device.
2. Install the APK
Open VorexO-v1.0.apk and allow "Install unknown apps" for the app you opened it with. Play Protect shows a generic warning because the APK is self-signed — choose Install anyway.
3. Verify the build
Open Settings → About and confirm versionCode 33. If you want to double-check the file itself, the release APK's SHA-256 starts with 5628be139cad8d9a.
Permissions
| Permission | Why |
|---|---|
INTERNET | AI provider requests, optional cloud sync, preview assets. |
ACCESS_NETWORK_STATE | Detecting connectivity so the app degrades gracefully offline. |
That's the whole list — no contacts, location, storage-wide access or phone state. The build also disables Android backup (allowBackup=false), so app data isn't copied around during device transfers.
Quick start
From install to a working page, roughly two minutes.
1. Create a project
Tap New Project, name it, and start from the blank HTML scaffold. You get a small file tree:
landing-page/ ├── index.html ← entry point ├── style.css └── script.js
2. Add an API key
Settings → AI Providers → pick a provider → paste your key → choose a model → Test. Google Gemini is a good first pick (free tier, see AI providers).
3. Let the agent build something
Switch to agent mode and try: "Build a dark portfolio page with a hero, three project cards and a contact section." Each returned file shows up as a card — tap Save to write it into the project.
4. Preview and iterate
Open the Preview tab to see the result. Tweak the code directly, or ask in chat mode: "center the hero and make the title a gradient."
Editor tips
- The toolbar above the keyboard inserts brackets, quotes and tabs so you don't fight the soft keyboard.
- Long-press a file to rename, duplicate or delete it.
- Project menu → Export zips the whole project for sharing or backup.
AI providers
All providers work the same way: create an account, generate an API key, paste it in Settings → AI Providers. Keys are stored locally on your device and sent only to the provider you configured — they're never embedded in the app, never proxied, and (as of v1.0) excluded from cloud sync.
| Provider | Endpoint | Get a key | Notes |
|---|---|---|---|
| OpenAI | api.openai.com | platform.openai.com | GPT models, pay-as-you-go. |
| Anthropic | api.anthropic.com | console.anthropic.com | Claude models, good with long files. |
| Google Gemini | generativelanguage.googleapis.com | aistudio.google.com | Free tier — easiest start. |
| DeepSeek | api.deepseek.com | platform.deepseek.com | Cheap; deepseek-coder is solid for code. |
| Groq | api.groq.com | console.groq.com | Free tier, very fast. |
| Mistral | api.mistral.ai | console.mistral.ai | Free experiment tier. |
| OpenRouter | openrouter.ai | openrouter.ai/keys | One key, hundreds of models. |
| Together AI | api.together.xyz | api.together.ai | Hosted open-source models. |
| Fireworks AI | api.fireworks.ai | fireworks.ai | Fast OSS serving, free credits. |
| NVIDIA NIM | integrate.api.nvidia.com | build.nvidia.com | Free API credits. |
| Ollama | http://<ip>:11434 | no key | Local/self-hosted, free. See below. |
| Custom | any OpenAI-compatible URL | yours | LiteLLM, LM Studio, gateways. |
Ollama over your network
The Ollama provider accepts a full base URL, so the model can run on a PC on the same Wi-Fi while you code on the phone. Start Ollama listening on all interfaces, then point VorexO at the machine's LAN IP:
# expose Ollama on your LAN, then pull a model OLLAMA_HOST=0.0.0.0:11434 ollama serve ollama pull qwen2.5-coder:7b # in VorexO: Settings → Ollama → Base URL http://192.168.1.42:11434 ← your PC's LAN IP, key stays empty
Both devices must be on the same network and the PC's firewall must allow TCP 11434. Quick check: open http://<pc-ip>:11434/api/tags in the phone's browser — you should see JSON.
Key safety
- Set a spending limit on the provider's dashboard before pasting a key anywhere.
- Use scoped or capped keys where offered (OpenRouter key limits, OpenAI project keys).
- Cloud sync deliberately excludes API keys — after restoring on a new device, re-enter them manually.
Agent mode
Agent mode changes the system prompt so the model stops describing code and starts shipping files. The model replies with a one-line plan, then emits every file inside this wrapper:
I'll build a modern landing page. [FILE:index.html] <full, complete HTML code here — no placeholders> [/FILE] [FILE:style.css] /* full CSS here */ [/FILE] [FILE:script.js] // full JS here [/FILE]
VorexO parses the reply and shows a card per file: path, syntax-highlighted preview, and Save / Copy / Dismiss buttons. Saving writes (or overwrites) that path in the current project — existing files are marked as an update.
Getting good results
- Name your stack — "plain HTML, one CSS file, vanilla JS, no build step" keeps the agent inside what the preview can run.
- Split big tasks. Ask for the file list first, then request files one by one; short replies fail less than a whole project in one shot.
- Mind the output limit. Each model has a maximum response length. v1.0 clamps
maxTokensto the model's real cap, but a truncated file can still happen on small models — ask for a re-emit of just that file.
Responses arrive all at once rather than streaming token-by-token — the embedded network layer buffers the full reply. For a long build that can mean a minute of quiet before the files appear.
Cloud sync
Sync is optional and runs on your own Firebase project. The app ships with its default project preconfigured, but plugging in your own Firebase web config (Settings → Cloud) gives you full ownership of the data. Sign in with email, and VorexO stores a snapshot of your workspace in Realtime Database.
What gets synced
| Data | Synced | Notes |
|---|---|---|
| Projects and files | yes | Full contents under your user node. |
| Settings | yes | Theme, editor preferences, mode selection. |
| API keys | never | Stripped before upload in v1.0; keys are merged back in from local storage on restore. |
Each account gets its own node:
vorexo-default-rtdb └── users/ └── uid_<firebase-uid>/ ├── projects/ ← every project and file └── settings/ ← app preferences, no keys
Lock the database down
If you use your own Firebase project, replace the default rules so only the owning account can read or write its node. Firebase Console → Realtime Database → Rules:
{
"rules": {
"users": {
"$uid": {
".read": "auth != null && auth.uid === $uid.replace('uid_', '')",
".write": "auth != null && auth.uid === $uid.replace('uid_', '')"
}
}
}
}Don't leave test-mode rules live. Firebase's default test rules make the whole database world-readable for 30 days. Your project source is private data — apply the rules above before enabling sync.
To restore: fresh install → Settings → Cloud → sign in → Load from Cloud. Projects and settings come back immediately; re-enter your API keys and you're done.
FAQ
Install fails with "App not installed"
The AI returns an error or an empty response
Claude replies come back cut off
Ollama won't connect from the phone
0.0.0.0 (not localhost) on the PC, both devices share the network, and TCP 11434 passes the firewall. Test http://<pc-ip>:11434/api/tags in the phone's browser.Where are my API keys stored?
Does it work offline?
Play Protect flagged the APK
16639bf0…) and install anyway if it matches.Changelog
v1.0
build 33 · interface polish · Aug 2026A pass over interface details reported from everyday use. Same feature set, smoother edges.
Fixed
- The phone's status bar and bottom control area no longer show white — both use the app's near-black so the interface blends seamlessly with the system.
- The files sidebar sits flush against the top header on every device instead of leaving a gap below it.
- Tapping Start AI Chat repeatedly no longer stacks up empty conversations — extra taps land in the same chat until a message is actually sent.
- The generic bot logo is gone from chat: replies being generated are led by the animated V draw mark, and finished assistant messages carry a quiet V badge.
- Removed the tips card from Settings → Deploy & GitHub.
v1.0
build 32 · first public releasev3.9-V and v3.10-V were private test builds shared with a small group for testing. v1.0 is the first public release and carries all the fixes that came out of that testing.
Highlights
- Three AI modes (chat, think, agent) with the
[FILE]save-to-project protocol. - Twelve providers via BYOK, including Ollama on your own network and any OpenAI-compatible endpoint.
- CodeMirror 6 editor, sandboxed live preview with a localStorage shim, project manager with import/export.
- Optional cloud sync to your own Firebase project; API keys never leave the device.
- Targets Android 14 (targetSdk 34) on a 6.5 MB APK; runs from Android 5.0.
Fixed during testing
- Raised targetSdk 29 → 34 so the app meets current Play Store requirements.
- Rewrote the UI patch layer: no more 3-second polling loop and full-DOM scans; idle-coalesced
MutationObserverinstead. - Agent requests now clamp
maxTokensto each model's real output cap, fixing provider 400 errors. - Anthropic responses: all text blocks are read and joined, not just the first.
- Service worker cache bumped and patch script cache-busted, fixing stale UI after updates.
- Chat polish: the bot avatar and the V draw animation now show inside the conversation while a message is being generated, not only at the top.
- Agent mode narrates its work: the file currently being written and its line count appear under the Analyzing/Building status, and files are revealed one by one instead of appearing all at once.
- About screen rebranded to v1.0 and the tech-stack block removed.
Security
- API keys are stripped from cloud-sync uploads and merged back in locally on restore.
- Android backup disabled (
allowBackup=false). - APK rebuilt with aligned
resources.arscand signed with v1+v2+v3 schemes; 40 automated checks pass on the release artifact.
Streaming responses (token-by-token) are the known gap — the embedded HTTP layer buffers full replies. A native streaming plugin is on the roadmap.