Off Grid AI

ai.offgridmobile
by Zapstore _@zapstore.dev

Republished from GitHub / F-Droid by the Zapstore main account.

YOUR PRIVATE AI WORKSPACE, ACROSS YOUR DEVICES Off Grid AI runs models on your hardware and keeps your work moving between the phone and laptop you pair. It is the foundation for a private AI chief of staff: your context stays on hardware you control. PRIVATE CROSS-DEVICE SYNC With Off Grid AI Pro, pair up to five devices. Your chats, projects, model settings, generated media, and chat attachments stay in step. You can also move copied text, new screenshots, new downloads, files, and compatible installed models. Transfers are encrypted between paired devices. No Off Grid AI server receives or stores your synced content. DOWNLOADS SYNC ON ANDROID When you enable Downloads Sync, Off Grid AI checks your Downloads folder at startup, when you return to the app, and when you tap Scan now. It sends new completed files to the paired devices you selected. Files that were present before you enabled the feature are not sent. You can stop watching at any time. Downloads Sync covers PDFs, documents, ZIP archives, AI model files, images, audio, and video. Android media access shows only media. All files access is required so this core Sync source can include non-media files. Off Grid AI limits this reading to the public Downloads folder. RUN AI LOCALLY - Chat with Llama, Qwen, Gemma, Phi, Mistral, and other open models - Generate images on your device - Use local vision and voice input - Attach PDFs, code, CSVs, and text files - Build private project knowledge bases - Use supported tool calling - Sideload compatible GGUF models PRIVACY BY ARCHITECTURE Model inference, document parsing, transcription, and retrieval run on your device. Synced content moves between paired devices over encrypted routes and is not stored on an Off Grid AI server.

First release: Jul 15, 2026, 7 total releases.

Most recent release: Nov 2, 2026.

Repo

Appears in 0 app stacks.

0 sats / 0 zaps received in the past year.

Sats Received

Underlying data available via MCP: app_zaps, app_releases.

Zap Count

Underlying data available via MCP: app_zaps, app_releases.

Releases

  • Nov 2, 2026 0.0.119
    ## 0.0.119-beta.1 - The UAT workflow passes the TestFlight external groups: uat.sh no longer stops before the build in CI (d91273a8) - The Play release uploads only the AAB: the workflow's GitHub-release APK no longer stops it (b04c672e) Build: 1793102561
  • Oct 23, 2026 0.0.118
    ## What's Changed - chore: bump version to 0.0.118 [skip ci] (47089834) - The Android release installs only platform-tools: the runner's command-line tools no longer ship the legacy tools package (7f773b59) - speedDescriptions stays private to the model card (f4423a91) - Loading a model pulls in the MTP head download only when it needs it, not at import (bf945b0f) - PR screenshots: drop the Gemma chat shot, which shows a reply drawn from saved preferences (c244ede9) - PR screenshots: a split model as one size, one download and loaded; Gemma 4 E4B's MTP head in the same download (iPhone 17 Pro Max) (f60bdb41) - storage.ts imports @offgrid/models once (581fb1fb) - A downloaded split model records the size of all its parts, not only its first (de60c8e9)
    More…
    - Settings and About link to the current Slack invite (e7a1e9de) - The Download Manager names a split model once, without its part number, as the Models screen does (8029d817) - Split-part checks and deletes run together, and the load check names a missing part in its own helper (a9af46b4) - A split model loads from its first part with every part counted, refuses a missing part, and deletes as one (22aa7385) - One tap downloads the whole model on one progress bar: every part of a split model, the vision file and the MTP head (3a2ead12) - The phone does not offer the parts of a split model: one part alone loads as nothing (29ed3e8f) - One tap brings a model's MTP head: it downloads right after the weights, and a model missing it gets it on its next load (72164bed) - PR screenshots: MoE badge, MTP on sizes, the loaded 9B in the model sheet, Auto Setup's 9B plan, fastest settings before and in the chat sheet (67e58d0f) - PR screenshots: model list, MTP badges, sizes, Chats and Projects search, fastest settings (iPhone 17 Pro Max) (91c7fdcc) - The phone knows the new catalog makers (iFLYTEK, Shanghai AI Lab, Recursive) and its Hugging Face vision fixture covers Nemotron Bolt and Sage (20ad24c5) - The test factory for model recommendations drops the removed parameter cap (6573f48f) - A model's sizes fit by weights plus projector and show its speed badges; the loaded model's card has them too; image results in Text search keep the strict budget (0f9a429f) - Dragging the Chats, Projects or Models list puts the search keyboard away (989044c9) - The model sheet's speed badges handle a header that cannot be read instead of leaving the promise unhandled (d8343115) - Use fastest settings is the first thing in Text Model settings, not hidden under Advanced (b05aa4b7) - The in-chat model sheet shows MoE and MTP badges: MTP when the file declares draft layers or has a published head (7f96fa01) - Projects has the same fixed search bar as Chats: it filters by name or description as you type (11fc056c) - The fixed search bar above a list is one component, ListSearchBar; Chats uses it (95643748) - The first chat sits 16pt under the fixed search bar, not 24 (a4abde06) - Load-gate and auto-setup tests follow the measured iPhone budget: a 9B is offered on 12 GB, and refusals use models past the fit rule (0fc5e25f) - Only GGUF chat models get the iPhone's mapped-weights budget; image, speech and LiteRT keep the strict one (a3aa21b0) - The Chats search box stays put above the list, with the same bottom-edge shadow the chats scroll under (7d0889b1) - The Models search row's shadow falls only along its bottom edge, not around the box (dba18f9a) - A screen reader hears a model card's MoE and MTP descriptions: they are the card's accessibility hint (736bd7db) - On an iPhone the load check counts a vision projector against free memory: it is copied, not mapped (641e17f4) - On an iPhone the load check no longer charges mapped weights against free memory; the fit rule bounds them, so a 9B loads without Load Anyway (14e864e2) - The phone's model list, picks and fit labels use its own platform's budget, so a 12 GB iPhone is offered the 9B class (d5ef6da4) - The Models search row stays put with a shadow, so the list scrolls visibly under it (d8c734e0) - MoE and MTP show as badges on a model card, first in its row, with what each means for speed (cede6765) - The Models list keeps the first card clear of the edge under the search row (c6db88b2) - A model card says when the model has a published MTP head and replies faster, beside its MoE active size (de6a8bd6) - The Models list offers what loads on this phone by download size, the rule the picks use, not a parameter cap (0711940f) - The model page no longer offers a quantizer's importance matrix as a size, and the phone refuses to load one (3de89cd0) - An App Store promote attaches the tested build and checks it is attached (f50a0277) - Phones can get Spark X2.6 4B from the remote catalog without an app update (d356ffc9) - A Play promote lands in production as a draft, not a 100% rollout (eec113c6) **Full Changelog**: https://github.com/off-grid-ai/OGAM/compare/v0.0.117-beta.1...v0.0.118
  • Oct 23, 2026 0.0.117
    ## Features - Filtering by a model maker now lists that maker's curated models. - Check for New Models now says "Up to date" when nothing in your list changed. - Search now hides Hugging Face uploads that the app cannot load, so every result you see can run on your phone. ## Fixes - Older Android phones no longer crash at startup. - Scrolling a list on Android no longer crashes the app or cuts off rows.
    More…
    - If you switch apps during a reply, the model now keeps working when you come back. You no longer need to eject it. - Image generation on a nearly full iPhone now stops with a clear storage message instead of closing the app. - If a Sync device drops right after it connects, the app no longer crashes on iPhone. - After a dictation reaches its 30-second limit, the next tap on the mic records again. - When a dictation finishes, it no longer clears the dictation you start next. - The Insufficient Memory sheet no longer says a model fits when the app will refuse to load it. - The chats search field now scrolls with the list, so cards no longer get cut off under it. - A vision model that you pick while a text-only model is still loaded now offers Photo. - When you switch from one model to another and back, your photo goes to the model you picked. - When two pop-ups appear at the same time on the Models screen, you now see both, one after the other. - If you tap New Chat while your saved chats are still loading, you get a new chat. - If you tap Stop before a remote chat request goes out, the app no longer sends it. - If the NPU does not start on your phone, the app now runs the model on the CPU. - Gateway helper models no longer show up in your list of chat models. - Files that only speed up a model are no longer offered as models you can load. - On your first launch, changes you make right away are now saved. - Remote servers now show the correct context length. - Personal Mesh is more stable on Android. ## Improvements - GPU models on the LiteRT engine load faster after the first time. - If a GPU model does not load, it now switches to the CPU after one try instead of retrying in a loop. - Starting or moving a download no longer makes the app stutter. - Unloading a model and running speech-to-text are now more stable. - Animations are smoother and more stable. Build: 1792712407
  • Sep 26, 2026 0.0.111
    ## 0.0.111 ### Fixes - Activate a license while the keyboard is open. - Scroll the speech model list inside chat. - Keep the chat composer visible while a model loads. - Load the selected text model when it is first used. - Show supported Gemma LiteRT context limits before loading. - Keep the mesh service active only while connected, discoverable, or discovering.
    More…
    ### Improvements - Default new image settings to 512 x 512 and remove the smaller-size tip. - Update the Android LiteRT runtime to 0.17.1. TPU support is not included in this release. LiteRT uses CPU or GPU. Build: 1790418213
  • Sep 18, 2026 0.0.110
    # Off Grid AI Mobile 0.0.110 ## What's new - Model cards now show GGUF capabilities, making it easier to choose a model for the task. - Settings now summarizes installed models and provides a path to automatic model setup. - Android onboarding offers three preferred image styles. ## Improvements and fixes
    More…
    - Chat keeps streamed thinking and tool activity together, and preserves task tools when sending or retrying. - Voice replies show their transcript once and use a consistent loading indicator. - Model setup better handles recovered downloads, available memory, and context limits from the selected GGUF file. - Android downloads retry transient transfer failures and remove failed synced transfers. - Desktop model capabilities refresh when the remote model becomes active, and sync retries an occupied Android port. Tested build: `1789761689`.
  • Aug 21, 2026 0.0.107
    ## Fixes - Removed an outdated rollout message from the Pro screen, so you no longer see stale copy about a feature that has already shipped. Build: 1787309345
  • Jul 15, 2026 0.0.103
    This is the big one. It bundles everything from the last stretch of work into one production release, and the theme is control and stability: real control over how the app uses memory, and a hard pass over the things that were breaking — downloads, voice, and stopping a reply. ## New - Model-loading modes: Lean, Balanced, and Aggressive. You decide how much memory models are allowed to use. - The model manager shows what's loaded and how much RAM each model is eating, with an eject button per model and an Eject All that frees everything, voice and transcription included. - Transcription (STT) and Text-to-Speech (TTS) now live in Model Settings next to your text models. - Turn Thinking on or off for reasoning models right from chat. - Remote (cloud) models get a cloud marker so you can tell them apart from on-device ones at a glance. - A vision model missing its file now gives you a Repair action, with a real progress bar, instead of a vague "not supported."
    More…
    - A "Stay in the loop" card in Settings, plus Follow on X and Join Slack links. ## Downloads - A download interrupted by a hard app-kill comes back as a failed card you can retry, instead of disappearing. - Queued downloads survive an app restart and resume. - Failed downloads show up in the badge count and the Download Manager. - Retry on a failed image download re-downloads and recovers, even when the file was unrecoverable, and on iOS it keeps the part already on disk instead of starting over. ## Voice - Voice notes and dictation transcribe reliably, and voice notes are sent as text the model can actually read, never as raw audio. - Voice mode no longer reads tool-call text out loud, so spoken replies stay clean, and reasoning shown before a tool runs sticks around instead of disappearing. - Live reasoning streams smoothly while you're in voice mode. - The speech picker and mic show a real download progress ring instead of a spinning mic. - Push-to-talk has a clear inline hint, a visible slide-to-cancel pill, and a scaled mic. The mic stays usable while a model loads, with no ghost recording if you release early. - Stopping speech now stops it cleanly, with no mid-sentence wedge. ## Generation and reasoning - Stopping a reply mid-stream keeps what was already written, reasoning included, and no longer wedges the chat. - A stopped reply is no longer mislabeled as a token-limit cutoff or an incompatible backend, and a genuine cutoff now shows a clear indicator. - The Thinking toggle applies to the turn you're on. Reasoning support is read from the model's own chat template, and remote model reasoning (LM Studio, Ollama) shows in the Thinking block instead of being dropped. - Broken or partly-downloaded models are caught before generation with a plain error telling you what's wrong, instead of failing silently. - Prompt enhancement streams as it writes and no longer turns reasoning text into your image prompt. ## Models, images, and memory - 9B models load and run fast on both iOS and Android. - Switching models goes through the memory-aware loader, so a new model loads without running out of RAM, and it waits for the previous model's memory to free first. - Load Anyway is offered for any model that's over budget, and it measures real free RAM after clearing space. A hard memory limit that can't be worked around is shown as a hard stop rather than something you can override. - The load spinner appears on the row you tapped, and a GPU load that falls back to CPU now tells you it did. - Image generation guides you on the GPU speed and quality trade-off before a run, and no longer produces garbage-resolution output. - Image settings (steps, guidance, size) use the values you set, and Reset to Defaults resets them too. - The context-length slider goes up to each model's real trained maximum. - Switching to Lean actually frees resident models now. - Aggressive mode accounts for GPU buffers so it doesn't overcommit and fail a load. - On Android, GPU loads wait longer on first run so they don't silently drop to CPU and run slow. ## Knowledge base and projects - Knowledge-base search is only sent when you turn it on, never auto-injected, and a failed index rolls back cleanly. - Deleting a project cleans up its chats and knowledge-base tool instead of leaving them dangling, and a new chat started when the context is full stays listed under its project. ## iOS - The image viewer closes before the Save prompt, and the audio session releases before the photo picker, fixing the input and voice-mode hangs. - Message attachments (a voice note above an image) now stack vertically instead of overlapping. Plus faster first launch, model-load messages that read honestly and don't claim to free memory they didn't, larger tool results capped so a misbehaving tool can't overflow the model's context, and better parsing of tool calls with curly quotes or unquoted keys.