Maskan

app.maskan.chat
by Zapstore _@zapstore.dev

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

Maskan is a private, Arabic-first AI chat app that puts you in control of your conversations and your data. Most AI chat apps route your messages through their own servers, log your activity, and show you ads. Maskan does none of that. It uses a "bring your own key" (BYOK) model: you connect your own API key and your messages go straight from your phone to the AI provider you choose — no middleman, no tracking. WHY MASKAN Private by design — no analytics, no telemetry, no ads, no data collection Encrypted on your device — conversations and API keys are stored with strong encryption Arabic-first — built for Arabic with full right-to-left (RTL) support, plus English and Thai Open source — fully auditable, licensed under GPL-3.0, available on F-Droid Your key, your choice — connect any of 12 AI providers CONNECT 12 AI PROVIDERS Bring your own API key and chat with the model you prefer: DeepSeek, OpenAI, Anthropic Claude, Google Gemini, Groq, Together AI, Mistral, Venice AI, and OpenRouter — or run models locally with Ollama and LM Studio, or add any custom OpenAI-compatible endpoint. FEATURES Fast streaming AI chat with live, token-by-token replies Voice input and text-to-speech narration Image input for vision-capable models Markdown rendering for clean, readable answers Attach text files to your chat Search your full conversation history Export conversations as text or Markdown Organize chats into folders Light and dark themes Anti-screenshot mode for sensitive conversations Three languages: Arabic, English, and Thai PRIVACY YOU CAN VERIFY Maskan is open source (GPL-3.0). Anyone can read the code and confirm exactly what it does and doesn't do. No trackers, no ads, no hidden network connections. Your API keys use Android's encrypted storage, and your chats live in an encrypted database on your device only. WHO IT'S FOR Anyone who wants a private AI assistant they can trust Arabic speakers seeking a true Arabic-first experience, privacy-conscious users, developers, researchers, and anyone who would rather own their data than hand it to a company. Download Maskan and take back control of your AI chat.

First release: Aug 13, 2026, 6 total releases.

Most recent release: Sep 24, 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

  • Sep 24, 2026 2.6.1
    A fix release. - The model on your phone failed in every store build. In 2.6.0 it stopped with "An unknown error occurred": code shrinking renamed fields the on-device engine looks up by name. It now loads and answers. A model you already downloaded keeps working; nothing to re-download. - Translation styles answered instead of translating.** All six now translate what you send — the translation only, and a question is translated, not answered. Arabic and Thai users now get the instruction in their own language, and the dialect voice no longer overrides a translation. Known limit: on the small on-device model, translating questions and Thai is still unreliable. Cloud models translate them correctly.
  • Sep 22, 2026 2.6.0
    Folders that know your project, a camera in the chat, questions about documents, a free model on your phone, and backup. ### New - **Folders as projects** — a folder carries **Instructions** and a **Memory** file into every chat inside it, assembled per request. Edit the instructions and every chat in the folder obeys on its next message. Token meter, "remember this", export and import as `.md`, an optional shared memory across every chat (off by default). - **Take a photo** — from the message bar or the + menu, using the system camera (no camera permission). Three chips under a photo: Translate this, Read this to me, What is this? Follow-ups keep the photo. - **Ask about a document** — PDF, Word and Excel. A short file is pasted into the chat; a long one is read in parts with the cost shown first, resumed only when you tap Continue. A PDF with no text is offered as its first three pages as pictures. - **A model on your phone** — the new provider **On this phone** needs no API key: Qwen2.5 1.5B Instruct (Apache 2.0), downloaded on request from this repository's own release page, checked against a pinned SHA-256, running offline in Arabic, Thai and English. Delete it from Settings and the space comes back. - **Backup and restore** — Settings → Backup writes one encrypted file (AES-256-GCM, a password you choose) wherever you point the picker: every chat, folder, document, setting **and every API key**. Restore shows what the file holds beside what the phone holds, asks for the password only after you confirm, and either completes or leaves the phone exactly as it was. A wrong password and a damaged file are two different answers. Generated pictures and clips stay on the phone they were made on. - **Your dialect governs every Arabic reply** — Egyptian, Levantine, Gulf, Maghrebi, Modern Standard and now **Algerian**; Thai replies carry a Thai voice. - **Chat basics** — Answer again, Edit and resend, Delete message; rename from the header or the list; automatic titles in the conversation's language; change the preset mid-chat or choose no style; an empty chat is discarded when you leave it.
    More…
    - "Image ready" / "Edit ready" notifications; image and video model pickers in the + menu; Thai ↔ Arabic translation presets, each language's picker showing the pairs from its own language. ### Changed - A server's 404 on a video job reads as "the clip is gone", not "no internet". - The language setting decides the language of every reply. - Markdown tables mirror correctly in Arabic. - One new dependency, `pdfbox-android` (Apache 2.0), for PDF text. ### Fixed - Arabic preset descriptions sliced on denser screens; a discarded chat lingering on the list; the Backup screen's stale counts; the speak button's stop control; onboarding buttons at large font sizes. No new permissions. Privacy policy updated: the backup file contains your API keys and goes only where you put it; the on-device model download is the only new network destination. --- **Checksums** - `app-universal-release.apk` — `bc2f13fe2b2f464176d248683656d1ddb0c263257cee7a3ec764b95462fb7555` - `app-arm64-v8a-release.apk` — `dc4f4f5ccf356badea2473bef53a7744f83e5b35f8b427d5ad2ff05a16fcaf04` Built on Linux from a fresh clone of tag `v2.6.0` (commit `b91e50f`), signed v2-only.
  • Sep 5, 2026 2.5.0
    Maskan 2.5.0 — video, photo editing, and one **+** menu. Base versionCode 14 (store 140 universal / 142 arm64), targetSdk 36. ### Added - **Video messages** — tap **+** then 🎬 and the next message becomes a short clip. A local render on your own server takes minutes, so the app hands the job to a background worker: lock the phone, put it away, and the clip is in the chat when you come back, with a quiet progress notification and a Cancel. Progress, the time left and the server's expanded description of the scene show in the bubble - **Video on cloud providers** — Google Gemini (Veo 3.1), OpenRouter, Venice and Together AI, each through its own API behind the same background worker. Every provider has its own video model, chosen in Settings - **Photo to video** — attach a photo, then 🎬, and it animates; works on the local server and every cloud provider that offers it - **Edit the attached photo** — attach a photo, tap **+** then ✏️, type what to change. Works on your local server (flux2-edit), Gemini, OpenAI (gpt-image-1), OpenRouter, Venice and Together (FLUX.1 Kontext) - **Size and length chips** with their cost — before a clip is made you see how long it will take on your own server, or roughly what it costs on a cloud provider; Venice shows its own live quote - **Image shape chips** (1:1, 16:9, 9:16) when drawing on your own server - **One + menu** replaces the paperclip and palette: text file, photo, generate image, edit photo, generate video. Entries a provider cannot serve are absent; entries that need a model first are dimmed and say so
    More…
    - **Try again** on any refused request — a drawing, an edit, a video or a chat reply — resends the same request with the same photo and choices - Video playback in the chat: a thumbnail with a play badge, a full-screen looping player, Save (a real .mp4) and Share - Animated WebP now animates in the chat instead of showing its first frame - **Custom URL image generation** — draw on your own server (LocalAI, or ComfyUI behind an OpenAI-compatible proxy) exactly like a cloud provider; the picture never leaves your network. Image and video models are read from the server itself - Drawings and edits show what they are doing and for how long instead of an empty bubble - **"What can my key do?"** — one button in Settings that answers in plain language: whether chat actually works with your key (and the provider's own reason when it doesn't), how many models you can choose from, which are free where the provider really publishes that, whether it can draw, and your live account balance on OpenRouter and DeepSeek - **Image generation with OpenRouter** — one key now draws with Gemini, GPT-Image and more through OpenRouter; verified end-to-end - A one-line description under each provider saying what it is - The model picker now lists models tested with your key first, then free ones; models your key was refused sit greyed at the bottom with the provider's own reason - Models on your own local server are tagged free ### Changed - Provider errors from cloud video and image services are shown in the provider's own words instead of "no internet" - The Image (attach a photo) entry is always listed and explains itself when the current chat model cannot take a photo - Save and Share honour the real file format (PNG, JPEG, WebP, MP4) instead of always naming the file .png - The 🎨 draw button is always visible when a provider can generate images — dimmed with a hint to choose an image model, instead of invisible on a fresh install - Providers that cannot generate images now say so plainly in Settings instead of showing nothing - Together AI's image error now explains the two account settings that unblock its image models - Mistral and Groq provider notes now say their free tiers are rate-limited and cover all models ### Fixed - **Arabic chat header** — the preset name was clipped in half; it now sits fully visible on its own line under the title, in Arabic, English and Thai - Preset names and Arabic typography now follow the app language however it was set - Arabic wording polish in presets per the MSA style guide ### Permissions New: `FOREGROUND_SERVICE`, `FOREGROUND_SERVICE_DATA_SYNC`, `POST_NOTIFICATIONS` — only for the background video worker and its progress notification. No telemetry, no analytics, no ads. ### Builds Built on Linux from a fresh clone of tag `v2.5.0` (commit `ae45139008a16884672ce5338203180434483aee`), reproducible across two independent clones, signed v2-only. | File | SHA-256 | |---|---| | `app-universal-release.apk` | `5dda2b4058ce5453fd1bd82f5066947612121fff3aea7b7f2f0a380cb111302c` | | `app-arm64-v8a-release.apk` | `d6b559e96c9bd71019332e3ee3a08c47ed789a07417482c9acf2c82921426515` |
  • Aug 26, 2026 2.4.6
    ## Image generation - Generate images inside any chat. Tap 🎨 in the composer when an image model is selected. - Separate **Image model** setting per provider — choose one, or **None** if you only want text. - Working today: **Gemini**, **OpenAI**, **Venice**. Models are discovered from each provider and tagged 🎨. - **AI prompt helper** — write a rough idea, tap ✨, and the chat model rewrites it into a full image prompt. - Generated images are encrypted on device like everything else. **Save to phone** writes a decrypted copy where you choose. Images kept inside the app are deleted when you uninstall it. - **Test Connection** now checks the image model too.
    More…
    ## Fixes and improvements - Chats pinned to a retired model no longer dead-end. The error now offers **Switch this chat to <current model>** and retries. - Provider error messages are shown as the provider wrote them, instead of a generic failure. - Full-screen writing space for long messages — tap the expand arrow in the composer. - Attach button is now a standard paperclip. - Arabic and Thai wording revised across the app. - Together AI also works once "Allow passthrough models" is enabled on your Together account. No new dependencies, no trackers, no ads. GPL-3.0.
  • Aug 25, 2026 2.4.5
    Model lists are now fetched live from each provider instead of being hardcoded in the app, so a provider retiring a model can no longer leave you stuck on a dead one. Models "Refresh model list" now works for every provider — cloud and local — and the list refreshes itself in the background when it is more than a week old Picking a model verifies it against the provider first. If your key cannot use it, the model is removed from the list and the provider's own reason is shown New model picker with search, for the gateways that return hundreds of models Each model is tagged: tested with your key · accepts images · free Non-chat models (embeddings, moderation, safety classifiers, speech, image generation) are filtered out
    More…
    Images Whether a model accepts image input is now read per model from the provider's capability data, instead of a single flag per provider — vision models on Venice, OpenRouter and Ollama can now receive images Sending an image without a caption no longer fails Fixes Anthropic (Claude) chats were failing completely; the system prompt is now sent as content blocks and omitted when empty Error messages now carry the provider's own explanation instead of "an unknown error occurred" A 403 no longer claims your API key was rejected — it means the model is not on your plan Test Connection no longer requires re-saving a key you already saved Refreshed the built-in fallback model lists for every provider Other The default Arabic dialect is now الفصحى (Modern Standard Arabic) No new dependencies. F-Droid clean.
  • Aug 13, 2026 2.4.4
    - Now targets Android 16 (API 36) — required for continued Google Play updates after Aug 31, 2026. - Preset menu redesign: shorter single-line descriptions that no longer get cut off on large screens or in Arabic; smaller icons that never clip across devices; tighter Arabic spacing. - The four translation cards now show just flags + title; the English→Arabic card drops the dialect tag.