Your Private On-Device AI Agent
An on-device AI agent that goes beyond chat. It takes action — browsing the web, accessing your health data, managing your schedule, controlling your smart home, and automating complex tasks. All privately on your device.
Connect to Anthropic Claude, OpenAI GPT, Google Gemini, OpenRouter, or any OpenAI-compatible endpoint. Switch models per conversation.
A full Alpine Linux environment runs on-device. The agent writes and executes scripts, installs packages, and processes data — no server needed.
Native access to HealthKit, Calendar, Reminders, HomeKit, Contacts, Bluetooth, Location, Photos, Speech, and more.
The agent browses the web, fills forms, extracts content, and takes screenshots — all within the app.
Import or create AI skills to extend the agent's capabilities. Compatible with SKILL.md format.
API keys stay in your device Keychain. No data collected. No third-party analytics. Your conversations are yours.
Get Open Minis from the App Store. Requires iOS 16+, iPadOS 16+, macOS 13+ (Apple Silicon), or visionOS 1.0+.
On first launch, you'll be guided to add your AI provider. Choose from the supported providers below and enter your API key.
Pick a model from your provider. You can add multiple providers and switch models per conversation.
Create a new session and start chatting. The agent can execute commands, browse the web, read your calendar, and much more.
Open Minis supports multiple AI providers. You need at least one API key to get started.
| Provider | Models | Get API Key |
|---|---|---|
| Anthropic | Claude Opus 4.6, Sonnet 4.6, Haiku 4.5 | console.anthropic.com |
| OpenAI | GPT-4o, o-series | platform.openai.com |
| Google Gemini | Gemini 2.5 Pro/Flash, 3 Pro/Flash | aistudio.google.com |
| OpenRouter | Multi-provider routing | openrouter.ai |
| Custom | Any OpenAI-compatible API | Your provider's dashboard |
Group multiple models together with routing strategies:
Configure a separate pool of models that the AI agent can use when it needs to delegate sub-tasks or reason through complex operations.
Extend the agent with custom skills. Import a SKILL.md file from a URL or your file system, or let the agent create one during a conversation. Skills can be enabled or disabled per session.
Each conversation session has an isolated file system mounted at /var/minis/ inside the Linux environment. Files are organized into namespaces:
minis://workspace/ — working files, scripts, dataminis://attachments/ — images, audio, videominis://browser/ — browser screenshots and extractsminis://offloads/ — large tool outputsThe agent has access to iOS frameworks through native offloads. Just ask naturally:
Most third-party models support OpenAI-compatible endpoints. In Provider settings, choose Custom (OpenAI-compatible), enter the base URL (without the trailing /v1/... path) and your API key. If the model list doesn't auto-populate, manually type the model ID (e.g. qwen-turbo, deepseek-chat).
/v1/chat/completions) and your API key.| Use Case | Recommended |
|---|---|
| General agent tasks | Claude Sonnet / Opus (most stable tool calling) |
| Long conversation stability | GPT-5.4 / Codex |
| Budget-friendly / backup | Kimi-k2.5, MiniMax, Qwen3.5 |
This feature currently works with Anthropic (Claude) models only:
Some models (e.g. DeepSeek R1) have extended reasoning modes that can take a while. Open Minis doesn't currently override model-level thinking behavior. If you prefer faster responses, switch to a non-reasoning model like Claude Sonnet or GPT-4o.
Installing from a GitHub URL currently downloads only the SKILL.md file. If the skill depends on additional scripts (e.g. a scripts/ directory), ask the agent to download the full repository, or have it regenerate the scripts based on the SKILL.md description.
Skills created during a conversation may not immediately appear in the Settings page. Try leaving and re-entering the Settings screen to refresh.
/var/minis/workspace/ — per-session, isolated between conversations./var/minis/memory/ — shared across all conversations./var/minis/skills/ — shared globally.To share data between sessions, ask the agent to save it to the Memory or Skills directory.
Due to iOS sandboxing, the app's internal directories aren't visible in the Files app. Workarounds:
Yes. Clearing a chat also removes that session's workspace files. If you have important files, ask the agent to copy them to the Memory or Skills directory before clearing.
| Environment | Status |
|---|---|
| Python | Fully supported. Use uv for dependency management. |
| Node.js | Partially supported. Small packages work fine; large packages may have issues. |
| Go / Rust | Supported. |
| FFmpeg | Built-in with hardware acceleration. |
Yes. Packages installed via apk or pip persist in the Alpine Linux filesystem across all conversations, as long as you don't perform a Reset Rootfs.
tar command hangs / GitHub CLI (gh) crashes?apk add tar to install the standalone version.GITHUB_TOKEN environment variable as a workaround.Enable "Background Audio Keep-Alive" in Settings. This plays silent audio to prevent iOS from suspending the app. It stops automatically when the task finishes and doesn't interfere with other audio playback.
Yes, via iOS Shortcuts. Open Minis provides Shortcuts actions — create an automation in the Shortcuts app and set it to run on a schedule. Note: cron inside the Linux environment won't persist due to iOS sandbox restrictions.
All chat history is stored locally on your device. Nothing is uploaded to any cloud service. Switching your Apple ID does not affect local data.
Not yet. Conversations and workspace files are local only. iCloud sync is under development for future releases.
When context exceeds ~80k tokens (especially with images or large documents), rendering may lag. Solutions:
Alarms created via the agent won't appear in the iOS Clock app (system API limitation). View them by tapping the alarm icon on the Open Minis home screen, or ask the agent to list your alarms.
The agent can open apps that support URL Schemes (e.g. Maps, Settings, Safari). However, it cannot control or interact with other apps' UI due to iOS sandboxing.