[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-3060":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":10,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":26,"readmeContent":27,"aiSummary":28,"trendingCount":16,"starSnapshotCount":16,"syncStatus":17,"lastSyncTime":29,"discoverSource":30},3060,"GemmaDesktop","LyalinDotCom\u002FGemmaDesktop","LyalinDotCom","An experiment, what if Gemma had a Desktop app tuned for the model and offline scenarios? ","",null,"TypeScript",116,12,72,5,0,2,4,27,6,49.04,false,"main",true,[],"2026-06-12 04:00:16","# Open Gemma Project\n\n**Open Gemma Project** is a local-first monorepo for two maintained developer products on top of open models, with Gemma as the guided first-class path.\n\nThe active repo is intentionally centered on two runnable projects:\n\n- **`gemma-desktop`** - an Electron desktop workbench for local model chat, coding, browsing, research, voice, and multimodal workflows.\n- **`gemma-cli`** - a terminal coding agent optimized for local Gemma models.\n\nBoth products are built on the common **`@gemma-sdk\u002F*`** packages in `gemma-sdk\u002F`. The SDK is the foundation: runtime adapters, session orchestration, tool execution, prompt policy, tracing, attachment handling, and validation behavior should live there when they matter across products.\n\nLegacy or paused experiments are not active products. In particular, **`archive\u002Fgemmadesktop-cli\u002F` is archived and not maintained**; new command-line work belongs in `gemma-cli`, and shared behavior belongs in `gemma-sdk\u002F`.\n\nGemma 4 is the primary target path. Other open models can work through Ollama, LM Studio, llama.cpp-compatible servers, and OpenAI-compatible runtimes when their capabilities are exposed clearly enough.\n\n> **Status: alpha.** This is an independent fan project. It is not built by, endorsed by, sponsored by, or affiliated with Google, Google DeepMind, the Gemma team, Ollama, LM Studio, or any other vendor mentioned here. See [Alpha And Safety](#alpha-and-safety) before running it on important work.\n\n## Why This Exists\n\nOpen models are getting useful fast, but shipping real software with them still means dealing with runtime quirks, capability mismatches, context limits, quantization tradeoffs, tool-calling failures, and backend-specific behavior.\n\nOpen Gemma Project is where those edges get made visible and testable. The goal is not to hide local inference behind a pleasant chat abstraction. The goal is to make model behavior, runtime behavior, tool behavior, and failure modes legible enough that developers can build durable products on top.\n\n## Active Products\n\n### Gemma CLI\n\n`gemma-cli` is the canonical headless coding-agent product.\n\nIt can inspect a workspace, edit files, run commands, preserve diagnostics, resume sessions, and validate builds from a terminal. It is the fastest place to harden SDK-backed agent behavior because it removes Electron from the loop and makes live model behavior easier to reproduce.\n\nThe CLI is where the newest Gemma-optimized agent loop, tool design, recovery behavior, and validation evidence rules are expected to land first. When those capabilities are broadly useful, they should move into `@gemma-sdk\u002Fagent` or another shared SDK package.\n\nRun it from source after building:\n\n```bash\nnpm run build:gemma-cli\nnpm --workspace gemma-cli run start -- --provider ollama --model gemma4:26b --prompt \"Inspect this repo and summarize it.\"\n```\n\nUseful validation:\n\n```bash\nnpm run check:gemma-cli\n```\n\n### Gemma Desktop\n\n`gemma-desktop` is the polished desktop workbench.\n\nIt provides local model chat, project-aware Work mode, a visible Project Browser, CoBrowse, multimodal attachments, PDF handling, research workflows, local speech-to-text, local read-aloud, memory, skills, MCP integration, model\u002Fruntime diagnostics, and a menu-bar assistant.\n\nThe desktop app should prove the SDK can power a real end-user product without bypassing SDK contracts. If desktop behavior depends on a model runtime, tool surface, session state, prompt policy, attachment path, or validation contract, that behavior should be represented in the SDK and testable headlessly where practical.\n\nRun it in development:\n\n```bash\nnpm run dev\n```\n\nUseful validation:\n\n```bash\nnpm run check:gemma-desktop\n```\n\n## Shared SDK\n\n`gemma-sdk\u002F` contains the shared packages used by both runnable products.\n\nCurrent package families include:\n\n- `@gemma-sdk\u002Fagent` - Gemma-optimized agent loop, model providers, profiles, skills, and workspace tools.\n- `@gemma-sdk\u002Fcore` - session and prompt infrastructure, build-mode validation, runtime contracts, tracing, and transport types.\n- `@gemma-sdk\u002Ftools` - shared built-in tools and tool runtime helpers.\n- `@gemma-sdk\u002Fnode` - Node-oriented SDK utilities.\n- `@gemma-sdk\u002Fruntime-*` - runtime adapters for Ollama, LM Studio, llama.cpp, and oMLX-style servers.\n\nThe SDK should make runtimes, model behavior, tool use, and failure modes more legible rather than hiding them behind misleading abstractions.\n\nUseful validation:\n\n```bash\nnpm run check:sdk\n```\n\n## Repository Layout\n\n```text\ngemma-cli\u002F        Terminal coding-agent product and CLI-specific tests\u002Fdocs.\ngemma-desktop\u002F    Electron + React desktop product.\ngemma-sdk\u002F        Shared SDK packages consumed by both products.\ndocs\u002F             Root-level product screenshots and shared docs.\narchive\u002F          Archived or paused project snapshots, not active products.\n```\n\nThe long-term shape is:\n\n- `gemma-cli` and `gemma-desktop` remain the two runnable products.\n- `gemma-sdk` remains the shared foundation.\n- SDK-backed behavior should have CLI\u002Fheadless coverage when practical.\n- Product-specific UI and packaging should stay in the owning product folder.\n\n## Archived Projects\n\n`archive\u002Fgemmadesktop-cli\u002F` is a legacy Gemma Desktop CLI experiment retained only as historical reference. It is not maintained, not part of the active npm workspace, not part of the release path, and should not be used as the source of truth for current command-line behavior.\n\nFor current terminal work, use `gemma-cli\u002F`. For behavior shared between the desktop app and CLI, use `gemma-sdk\u002F`.\n\n## Getting Started\n\nPrerequisites:\n\n- Node.js 20+\n- npm\n- macOS for the desktop app\n- A local model runtime, with Ollama as the default path\n\nInstall dependencies:\n\n```bash\nnpm install\n```\n\nPull the default local model:\n\n```bash\nollama pull gemma4:26b\n```\n\nBuild the CLI and SDK path:\n\n```bash\nnpm run build:gemma-cli\n```\n\nRun the desktop app:\n\n```bash\nnpm run dev\n```\n\nRun deterministic validation for the full repo:\n\n```bash\nnpm run check\n```\n\nRun deterministic plus live-model validation:\n\n```bash\nnpm run check:full\n```\n\n## Model Defaults\n\nThe guided Gemma path currently centers on:\n\n| Model | Tag | Typical Role |\n| --- | --- | --- |\n| Gemma 4 26B | `gemma4:26b` | Primary local model for main CLI\u002Fapp validation |\n| Gemma 4 31B | `gemma4:31b` | Stronger main model when the machine has enough headroom |\n| Gemma 4 E2B\u002FE4B | `gemma4:e2b`, `gemma4:e4b` | Helper-scoped tasks such as titles, narration, or low-risk summaries |\n\nMain product behavior should be validated with `gemma4:26b` or stronger unless a test is explicitly targeting a smaller helper-class model.\n\n## Development Principles\n\n- Keep core behavior in the SDK when both products need it.\n- Treat the CLI as the fastest reproducible harness for agent behavior.\n- Treat the desktop app as proof that the SDK can support a polished product.\n- Prefer honest abstractions over magical ones.\n- Make runtime, model, and tool failures observable.\n- Add focused tests for contracts that matter.\n- Use live tests when behavior depends on real models, tools, files, websites, or runtimes.\n\n## Alpha And Safety\n\nThis is experimental local-agent software.\n\n- Output can be wrong, incomplete, unsafe, or inconsistent.\n- Local tools can read and modify files when enabled.\n- Shell commands run in working directories and can have side effects.\n- Web pages, PDFs, images, audio, video, and source files can contain prompt-injection content.\n- Local model runtimes can stall, crash, stream malformed output, or behave differently across versions.\n- Loading multiple large local models can destabilize a machine.\n\nUse version control, inspect diffs, and run validation before trusting generated changes.\n\n## Affiliation\n\nOpen Gemma Project is an independent fan project. It is not built by, endorsed by, sponsored by, or affiliated with Google, Google DeepMind, the Gemma team, Ollama, LM Studio, or any other vendor mentioned in this repository.\n\n\"Gemma\" is a trademark of its respective owner. This project uses the name to describe the model family it is primarily built around.\n\n## License\n\nThis repository is licensed under the Apache License, Version 2.0. See [`LICENSE`](LICENSE) for the full text and [`NOTICE`](NOTICE) for attribution.\n\nThe published `gemma-cli` package on npm carries the same license. The shared `@gemma-sdk\u002Fagent` workspace package is intentionally not published — its code is bundled into the products that consume it (currently `gemma-cli`, eventually `gemma-desktop`), so consumers only ever install the product packages.\n","Open Gemma Project 是一个基于开源模型的本地优先开发工具集，包含桌面应用和命令行工具。其核心功能包括支持本地模型聊天、编码、浏览、研究、语音及多模态工作流的Electron桌面工作台gemma-desktop，以及优化了本地Gemma模型使用的终端编码代理gemma-cli。项目通过共享的gemma-sdk包来实现运行时适配、会话编排、工具执行等功能，确保一致性和可扩展性。适用于需要在本地环境中利用大语言模型进行软件开发、测试与研究的场景，特别是当开发者希望直接面对并解决模型行为、运行时特性等带来的挑战时。当前版本为alpha阶段，旨在让模型的行为、工具交互及故障模式更加透明可控。","2026-06-11 02:52:19","CREATED_QUERY"]