{"id":51296262,"url":"https://github.com/off-grid-ai/off-grid-ai-desktop","last_synced_at":"2026-06-30T15:00:41.873Z","repository":{"id":336861636,"uuid":"1137228781","full_name":"off-grid-ai/off-grid-ai-desktop","owner":"off-grid-ai","description":"Off Grid AI — private, on-device AI. Run open models (text, vision, image, voice) locally through one OpenAI-compatible gateway. No cloud, no accounts, no API keys.","archived":false,"fork":false,"pushed_at":"2026-06-30T12:21:41.000Z","size":49463,"stargazers_count":23,"open_issues_count":0,"forks_count":6,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-30T12:23:45.363Z","etag":null,"topics":["electron","gguf","image-generation","llama-cpp","llm","local-ai","local-first","local-llm","mcp","offline","on-device","openai-compatible","privacy","react","stable-diffusion","typescript","whisper"],"latest_commit_sha":null,"homepage":"https://getoffgridai.co/pay","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/off-grid-ai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"ROADMAP_DESKTOP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-19T05:05:40.000Z","updated_at":"2026-06-30T12:06:57.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/off-grid-ai/off-grid-ai-desktop","commit_stats":null,"previous_names":["wednesday-solutions/my-memories","off-grid-ai/desktop","off-grid-ai/off-grid-ai-desktop"],"tags_count":33,"template":false,"template_full_name":null,"purl":"pkg:github/off-grid-ai/off-grid-ai-desktop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/off-grid-ai%2Foff-grid-ai-desktop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/off-grid-ai%2Foff-grid-ai-desktop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/off-grid-ai%2Foff-grid-ai-desktop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/off-grid-ai%2Foff-grid-ai-desktop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/off-grid-ai","download_url":"https://codeload.github.com/off-grid-ai/off-grid-ai-desktop/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/off-grid-ai%2Foff-grid-ai-desktop/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34971621,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-30T02:00:05.919Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["electron","gguf","image-generation","llama-cpp","llm","local-ai","local-first","local-llm","mcp","offline","on-device","openai-compatible","privacy","react","stable-diffusion","typescript","whisper"],"created_at":"2026-06-30T15:00:21.230Z","updated_at":"2026-06-30T15:00:41.864Z","avatar_url":"https://github.com/off-grid-ai.png","language":"TypeScript","funding_links":[],"categories":["👑Stable Diffusion","Chatbots"],"sub_categories":["Python","Usage"],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"resources/logo.png\" width=\"112\" alt=\"Off Grid AI\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eOff Grid AI\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003ePrivate, on-device AI. Your models, your data — no cloud, no accounts, no API keys.\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  A local-first AI runtime + studio — run open models (\u003cem\u003etext, vision, image, voice, speech\u003c/em\u003e)\n  entirely on your machine, behind one OpenAI-compatible gateway. Plus an always-on layer that\n  \u003cem\u003esees, remembers, reflects, and acts\u003c/em\u003e — all on-device.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/off-grid-ai/desktop/releases/latest\"\u003eDownload (macOS)\u003c/a\u003e ·\n  \u003ca href=\"docs/FEATURES.md\"\u003eFeatures\u003c/a\u003e ·\n  \u003ca href=\"https://getoffgridai.co\"\u003egetoffgridai.co\u003c/a\u003e ·\n  \u003ca href=\"https://getoffgridai.co/pay\"\u003eGet Pro\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"platform\" src=\"https://img.shields.io/badge/macOS-Apple%20Silicon-black\" /\u003e\n  \u003cimg alt=\"license\" src=\"https://img.shields.io/badge/license-AGPL--3.0-blue\" /\u003e\n  \u003cimg alt=\"local\" src=\"https://img.shields.io/badge/100%25-on--device-34D399\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003e\u003ca href=\"https://github.com/off-grid-ai/mobile\"\u003eOff Grid AI Mobile\u003c/a\u003e\u003c/strong\u003e — the same on-device AI, on your phone \u0026nbsp;·\u0026nbsp;\n  \u003ca href=\"https://github.com/off-grid-ai/mobile\"\u003e\u003cimg alt=\"Off Grid AI Mobile GitHub stars\" src=\"https://img.shields.io/github/stars/off-grid-ai/mobile?style=social\" /\u003e\u003c/a\u003e\n  \u0026nbsp;·\u0026nbsp; 100k+ downloads\n\u003c/p\u003e\n\n---\n\n## What it is\n\nOff Grid AI is a **local-first AI runtime** for your desktop. Download open models from the\nbuilt-in catalog (or any GGUF from Hugging Face) and use them across every modality — all\ninference runs on your hardware via bundled `llama.cpp`, `stable-diffusion.cpp`,\n`whisper.cpp`, and Kokoro. Nothing routes through a server we own; your conversations,\nfiles, and models never leave your device.\n\nThree things in one app:\n\n1. **A studio** — chat (text + vision + reasoning), on-device image generation, voice\n   in/out, live artifacts/canvas, projects with RAG, and in-chat tools — a local\n   Claude/LM-Studio/Ollama with everything on-device.\n2. **A gateway** — one local OpenAI-compatible API (`http://127.0.0.1:7878/v1`, no key)\n   for chat, vision, image, audio, and embeddings. Run it headless as just the gateway.\n3. **Off Grid Pro** — an always-on private layer that *sees* your work (screen → OCR),\n   *remembers* it, helps you *reflect*, and *acts* with your approval. On-device, opt-in.\n\n## A look inside\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\"\u003e\u003cstrong\u003eChat\u003c/strong\u003e — text, vision, reasoning, artifacts, on-device\u003cbr\u003e\u003cimg src=\"docs/screenshots/02-chat.png\" width=\"100%\" alt=\"Chat\" /\u003e\u003c/td\u003e\n\u003ctd width=\"50%\"\u003e\u003cstrong\u003eModels\u003c/strong\u003e — curated catalog + Hugging Face search\u003cbr\u003e\u003cimg src=\"docs/screenshots/01-models.png\" width=\"100%\" alt=\"Models catalog\" /\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\"\u003e\u003cstrong\u003eThe Gateway\u003c/strong\u003e — one local OpenAI-compatible API\u003cbr\u003e\u003cimg src=\"docs/screenshots/06-gateway.png\" width=\"100%\" alt=\"Gateway\" /\u003e\u003c/td\u003e\n\u003ctd width=\"50%\"\u003e\u003cstrong\u003eProjects\u003c/strong\u003e — group chats, RAG over your docs\u003cbr\u003e\u003cimg src=\"docs/screenshots/03-projects.png\" width=\"100%\" alt=\"Projects\" /\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\"\u003e\u003cstrong\u003eConnectors (MCP)\u003c/strong\u003e — add servers, use them in chat\u003cbr\u003e\u003cimg src=\"docs/screenshots/05-integrations.png\" width=\"100%\" alt=\"Connectors\" /\u003e\u003c/td\u003e\n\u003ctd width=\"50%\"\u003e\u003cstrong\u003eArtifacts\u003c/strong\u003e — HTML, React, SVG \u0026amp; Mermaid in a local sandbox\u003cbr\u003e\u003cimg src=\"docs/screenshots/09-artifacts.png\" width=\"100%\" alt=\"Artifacts\" /\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\"\u003e\u003cstrong\u003eOff Grid Pro\u003c/strong\u003e — the sees/remembers/reflects/acts layer\u003cbr\u003e\u003cimg src=\"docs/screenshots/07-pro-upgrade.png\" width=\"100%\" alt=\"Pro\" /\u003e\u003c/td\u003e\n\u003ctd width=\"50%\"\u003e\u003cstrong\u003ePrivate by default\u003c/strong\u003e — runs on your machine, no account\u003cbr\u003e\u003cimg src=\"docs/screenshots/08-onboarding.png\" width=\"100%\" alt=\"Private by default\" /\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n## Features (free \u0026 open source)\n\nThe free, open app is a complete on-device AI studio:\n\n- **Chat** — text + vision, streaming, with a reasoning (\"thinking\") mode and per-chat\n  model settings (temperature, context window).\n- **Image generation** — text→image and image→image via `stable-diffusion.cpp` (Metal).\n  Ships **SDXL-Lightning** (few-step, fast), SDXL, SD 1.5/2.1, and **Z-Image-Turbo**\n  (2026 flagship, ~8-step). Live per-step preview, progress + ETA, cancel, lightbox, and\n  an artifacts gallery of everything you've generated.\n- **Voice** — speech-to-text (whisper) and text-to-speech (**Kokoro-82M**, multilingual),\n  plus a hands-free voice mode.\n- **Artifacts / canvas** — the model's HTML, React/JSX, SVG, Mermaid, and Markdown render\n  live in a sandboxed iframe (no network/file access); Code/Preview toggle, download,\n  saved per chat \u0026 project.\n- **Projects** — group chats, upload documents (txt/md/PDF/DOCX, image, audio, video) and\n  chat grounded in them (RAG with cited sources); per-project instructions.\n- **Tools in chat** — an agentic loop calls local tools mid-conversation: built-ins\n  (calculator, datetime) plus any MCP connector you've added.\n- **Connectors (MCP)** — add Model Context Protocol servers (none / token / OAuth) and use\n  them right inside chat. Preset catalog included.\n- **Model catalog** — curated, size-bucketed recommendations + direct Hugging Face search;\n  download, manage, and set the active model per modality.\n- **The Gateway** — one OpenAI-compatible endpoint for everything; see below.\n- **Auto-update** — signed releases update themselves.\n\nA full breakdown is in [docs/FEATURES.md](docs/FEATURES.md).\n\n## The Gateway\n\nOne local server (`http://127.0.0.1:7878`) speaks the OpenAI API:\n\n| Capability | Endpoint |\n|---|---|\n| Chat (text + vision) | `POST /v1/chat/completions` |\n| Text → Image | `POST /v1/images` (`/generations`, `/edits`) |\n| Speech → Text | `POST /v1/audio/transcriptions` |\n| Text → Speech | `POST /v1/audio/speech` |\n| Embeddings | `POST /v1/embeddings` |\n| Models | `GET /v1/models` |\n\n```bash\ncurl http://127.0.0.1:7878/v1/chat/completions \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"model\":\"local\",\"messages\":[{\"role\":\"user\",\"content\":\"Hello!\"}]}'\n```\n\n```python\nfrom openai import OpenAI\nclient = OpenAI(base_url=\"http://127.0.0.1:7878/v1\", api_key=\"not-needed\")\nprint(client.chat.completions.create(model=\"local\",\n      messages=[{\"role\":\"user\",\"content\":\"Hello!\"}]).choices[0].message.content)\n```\n\nInteractive API reference + an OpenAPI spec are served at `/docs` and `/openapi.json`.\n\n### Run just the gateway (headless)\n\nYou don't need the desktop UI to serve models — run **only** the gateway (no UI, no\ncapture) and point any OpenAI client at it. Ideal for a server, a homelab box, or wiring\nlocal models into your own apps:\n\n```bash\n# from a built app\n/Applications/Off\\ Grid\\ AI.app/Contents/MacOS/Off\\ Grid\\ AI --server-only\n# or from source\nOFFGRID_SERVER_ONLY=1 npm run gateway\n```\n\nIt's **self-sufficient** — manage models over HTTP, no UI required:\n\n| Action | Endpoint |\n|---|---|\n| List the catalog | `GET /v1/models/catalog` |\n| List installed | `GET /v1/models/installed` |\n| Active model per modality | `GET /v1/models/active` |\n| **Pull** a model | `POST /v1/models/pull` `{ \"id\": \"…\" }` → poll `GET /v1/models/pull/status?id=…` |\n| **Activate** a model | `POST /v1/models/activate` `{ \"id\": \"…\", \"kind\"?: \"image\\|speech\\|transcription\" }` |\n| **Delete** a model | `POST /v1/models/delete` `{ \"id\": \"…\" }` |\n\n```bash\n# pull a model into a headless gateway, then chat\ncurl -X POST http://127.0.0.1:7878/v1/models/pull \\\n  -H 'Content-Type: application/json' -d '{\"id\":\"unsloth/gemma-4-E4B-it-GGUF\"}'\ncurl -X POST http://127.0.0.1:7878/v1/models/activate \\\n  -H 'Content-Type: application/json' -d '{\"id\":\"unsloth/gemma-4-E4B-it-GGUF\"}'\n```\n\n## Off Grid Pro — available now\n\nThe free app **runs** models. **Pro** adds the always-on layer that turns your own work\ninto private, on-device memory — and an assistant that helps you act on it. Everything is\nexplicit opt-in, with a visible recording indicator, and nothing leaves the device.\n\n- **Sees** — screen capture → OCR → on-device LLM distill into observations + entities.\n  Multi-monitor aware, consumption-vs-work classification, blank/locked frames skipped.\n- **Remembers** — **Day** (a persisted journal with time blocks), **Entities** (a private\n  CRM-for-everything: people, projects, companies, auto-built with synthesis summaries),\n  and **Replay** (a \"movie of your day\" you can scrub and play back).\n- **Reflects** — mind-share, balance, context-switching, and Day/Week trends.\n- **Meetings** — records **Google Meet + Zoom** (screen + system audio + mic), transcribes\n  locally with whisper, and folds an LLM title/summary/attendees into your timeline.\n- **Clipboard** — a private clipboard manager: searchable history of everything you copy,\n  with image, PDF, and file previews, a quick-paste popup, all stored on-device.\n- **Acts (with approval)** — action items detected from your communication, an\n  approval queue + audit log (nothing executes without a logged approval), MCP connectors\n  as authoritative sources, and a skills framework (trigger → action) — on the roadmap\n  toward a proactive secretary and a prospective \"Ahead\" view of your day.\n\n**Pro is live.** Buy a license at **[getoffgridai.co/pay](https://getoffgridai.co/pay)** — you're\nemailed a license key, you install the Pro build, and you activate the key in-app. Licensing runs\non **[Keygen](https://keygen.sh)**, and one Pro license covers up to **5 devices**. Pro features\nlive in a separate **private** package; the open core never imports it — see\n[Architecture](#architecture--open-core). The Pro build is license-gated at runtime, so it stays\nlocked until a valid key is activated.\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\"\u003e\u003cstrong\u003eDay\u003c/strong\u003e — your day, planned from real activity\u003cbr\u003e\u003cimg src=\"docs/screenshots/pro-day.png\" width=\"100%\" alt=\"Day\" /\u003e\u003c/td\u003e\n\u003ctd width=\"50%\"\u003e\u003cstrong\u003eEntities\u003c/strong\u003e — a private CRM, auto-built\u003cbr\u003e\u003cimg src=\"docs/screenshots/pro-entities.png\" width=\"100%\" alt=\"Entities\" /\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\"\u003e\u003cstrong\u003eReflect\u003c/strong\u003e — where your attention actually went\u003cbr\u003e\u003cimg src=\"docs/screenshots/pro-reflect.png\" width=\"100%\" alt=\"Reflect\" /\u003e\u003c/td\u003e\n\u003ctd width=\"50%\"\u003e\u003cstrong\u003eSearch\u003c/strong\u003e — unified search across everything\u003cbr\u003e\u003cimg src=\"docs/screenshots/pro-search.png\" width=\"100%\" alt=\"Unified search\" /\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\"\u003e\u003cstrong\u003eMeetings\u003c/strong\u003e — recorded + transcribed locally\u003cbr\u003e\u003cimg src=\"docs/screenshots/pro-meetings.png\" width=\"100%\" alt=\"Meetings\" /\u003e\u003c/td\u003e\n\u003ctd width=\"50%\"\u003e\u003cstrong\u003eReplay\u003c/strong\u003e — rewind your screen like a film\u003cbr\u003e\u003cimg src=\"docs/screenshots/pro-replay.png\" width=\"100%\" alt=\"Replay\" /\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n\u003csub\u003ePro screens shown with synthetic demo data.\u003c/sub\u003e\n\n→ **[Get Pro](https://getoffgridai.co/pay)** — buy a license, install the Pro build, activate your key.\n\n## Install\n\nGrab the latest build from [Releases](https://github.com/off-grid-ai/desktop/releases/latest):\n\n- **macOS** (Apple Silicon) — signed + notarized `.dmg`\n\nmacOS only for now.\n\n## Build from source\n\n```bash\ngit clone https://github.com/off-grid-ai/desktop.git\ncd desktop\nnpm install\nnpm run dev          # full app\nnpm run gateway      # headless gateway only (:7878)\nnpm run build:mac    # package a macOS app\n```\n\nStack: Electron 39 + React 19 + Tailwind v4 (electron-vite),\n`better-sqlite3-multiple-ciphers` (encrypted local DB), `@lancedb/lancedb` (vectors),\nbundled `llama.cpp` / `whisper.cpp` / `stable-diffusion.cpp` / `ffmpeg` in `resources/bin`.\nShared `@offgrid/*` packages (design, models, rag) come from the workspace. Verify changes\nwith `npm run typecheck` before declaring done.\n\n## Architecture — open core\n\nThis repository is the **open, AGPL core**: the model runner, gateway, studio (chat,\nimage, voice, artifacts), projects, connectors, and the model catalog. Pro features live in\na separate **private** package loaded as a git submodule (`pro/`). The core **never imports\npro** — pro registers itself through small registries (an `activate()` pattern) and is\nsimply absent in this build, so the open app compiles and runs entirely on its own.\n\n## Privacy\n\nAll model inference is local. Your conversations, documents, and models stay on your device\n— there's no cloud inference, no account, and no API key. You can run it fully offline.\n\n## License\n\n[AGPL-3.0-only](LICENSE). © Off Grid AI / Wednesday Solutions, Inc.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foff-grid-ai%2Foff-grid-ai-desktop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foff-grid-ai%2Foff-grid-ai-desktop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foff-grid-ai%2Foff-grid-ai-desktop/lists"}