# HOLD competitive and technology review

Research date: **2026-10-15**. Sources are official product documentation, repositories, and release notes. “Verified” below means the vendor documents the capability; it does **not** mean HOLD independently tested that product. Model-specific behavior, subscription entitlements, and platform support must be checked separately. No LM Mini screenshots were present in the supplied attachment, so this is a review of the verified public product and sources, not of nonexistent user screenshots.

## Identity and release freshness

| Product | Current evidence | HOLD implication |
| --- | --- | --- |
| LM Mini | [Official site](https://lmmini.com/) links to [slim-elephant/lm-mini](https://github.com/slim-elephant/lm-mini). It is an MIT **open-core** export; Pro implementations are omitted. Official builds include additional paid features. [Changelog](https://lmmini.com/changelog.html) is split across product streams. | Do not confuse the free repository with the complete commercial app; do not reuse its name or icon. |
| LM Studio / Bionic | The current [homepage](https://lmstudio.ai/) foregrounds Bionic. [Bionic 1.1.8](https://lmstudio.ai/changelog), dated October 12, documents coexistence with LM Studio 0.4.26+. | Compare current agent workflows as well as the older chat interface. Runtime extensions have their own versions. |
| Jan | [Desktop overview](https://www.jan.ai/docs/desktop) identifies **0.8.4**, local llama.cpp/MLX, projects, assistants, MCP, and Cowork preview. Apache-2.0 application. | Do not describe Jan as chat-only. Preview agent features remain distinct from its stable foundation. |
| Open WebUI | [Live features](https://docs.openwebui.com/features/) and [license](https://docs.openwebui.com/license/) reviewed. Exact latest package tag not established in this review. | Its current branding restrictions differ from pure BSD-3. It is not a suitable invisible rebrand for HOLD. |
| Ollama | [Official releases](https://github.com/ollama/ollama/releases) marked **v0.40.4** Latest during review. | Pin the version actually tested; do not auto-adopt the latest release without regression tests. |
| llama.cpp | [Official repository](https://github.com/ggml-org/llama.cpp) and [releases](https://github.com/ggml-org/llama.cpp/releases) reviewed. Exact latest build identifier not reliably resolved by this review. | Pin binary and model checksums in the implementation. Repository currency is not runtime verification. |
| Google AI Edge | [Official LLM Inference guide](https://developers.google.com/edge/mediapipe/solutions/genai/llm_inference), updated October 1, says MediaPipe LLM Inference is **maintenance-only** and recommends LiteRT-LM. | Do not select MediaPipe solely from older tutorials. Evaluate LiteRT-LM as the forward path. |
| OpenCode | [Current docs](https://opencode.ai/docs/) explicitly distinguish OpenCode 1 and 2; both use the same command. | Identify the actual edition and pinned version before integration. |

## Consumer capability inventory

Legend: **D** = documented; **C** = conditional, external runtime, model, or paid entitlement; **?** = not established from reviewed sources. A question mark is not a claim of absence. LM Studio includes the current Bionic product where explicitly indicated. For self-hosted Open WebUI, “local” refers to the server, which may be a different machine from the browser.

| Capability | LM Mini | LM Studio / Bionic | Jan | Open WebUI |
| --- | --- | --- | --- | --- |
| On-device models | D | D desktop | D desktop | C server runtime |
| Connected desktop models | D | D local server / LM Link | D local API | D APIs |
| Remote access | C Pro relay | D LM Link | C API endpoint | C hosting |
| Download models | D | D | D | C backend |
| Switch models | D | D | D | D |
| Voice conversation | D | ? | ? | C engines |
| Text-to-speech | D | ? | ? | C engines |
| Speech recognition | D | D Bionic | ? | C engines |
| Personas | D | C presets | D assistants | D model profiles |
| Agent profiles | C personas/tools | D Bionic | D | D |
| Multiple-model conversation | C Pro | ? | ? | D |
| Local memory | C Pro | ? | ? | C server memory |
| Semantic search | D advertised | C document retrieval | ? | C RAG |
| MCP tools | D | D | D | D |
| Image understanding | C model | C model | C model | C model |
| Image generation | C backend/device | C agent tools | ? | C backend |
| Custom API endpoints | D | C API/Link | D | D |
| Context management | D | D | D | D |
| Model parameters | D | D | D | D |
| Theme customization | D | D | ? | D |
| Chat import/export | D | D chat files | ? | D |
| Privacy controls | D | D documented | D documented | C admin/server |
| Device pairing | C Pro QR | C LM Link | ? | ? |
| Background operations | C OS limits | D runtime | D runtime | D server |
| Offline chat after setup | D | D | D | C all dependencies local |

Inventory sources: [LM Mini feature guides](https://lmmini.com/docs.html), [LM Mini free-source inventory](https://github.com/slim-elephant/lm-mini), [LM Mini store description](https://apps.apple.com/us/app/lm-mini/id6751125309?platform=watch), [LM Studio app documentation](https://lmstudio.ai/docs/app), [LM Studio MCP](https://lmstudio.ai/docs/app/mcp), [LM Studio offline behavior](https://lmstudio.ai/docs/app/offline), [Bionic features](https://lmstudio.ai/), [Jan desktop](https://www.jan.ai/docs/desktop), [Jan custom endpoints](https://www.jan.ai/docs/desktop/remote-models/custom-endpoint), [Open WebUI features](https://docs.openwebui.com/features/), [Open WebUI memory](https://docs.openwebui.com/features/chat-conversations/memory/), [Open WebUI import/export](https://docs.openwebui.com/features/chat-conversations/data-controls/import-export/).

### LM Mini findings

The official product separates on-device, same-Wi-Fi, and remote relay use. Its current Mac product is **LM Mini Home**; legacy Mac Connect is being retired. Larger on-device models, group chat, remote access, and some memory/tool capabilities depend on Pro. The free source includes a bounded starter-model selection, local conversation tools, voice engines, MCP, and integrations with image-generation backends. These are product claims, not evidence that every feature works on every phone. The useful UX pattern is to state the connection mode before asking the user to configure a model. HOLD should adopt that clarity while maintaining an original design and independent implementation. [Product modes](https://lmmini.com/), [open-core boundaries](https://github.com/slim-elephant/lm-mini).

### Limits that matter

LM Studio explicitly warns that MCP servers can execute code, read files, and use the network. Jan notes model-dependent tool compatibility and exposes custom remote endpoints. Open WebUI’s many integrations can be either local or remote; its offline claim depends on the installed model and connected services. Ollama now also supports cloud capabilities and documents a local-only configuration, so the product name alone is not proof of on-device processing. [LM Studio MCP security](https://lmstudio.ai/docs/app/mcp), [Jan MCP](https://jan.ai/docs/mcp), [Open WebUI](https://docs.openwebui.com/), [Ollama FAQ](https://docs.ollama.com/faq).

## Runtime and agent foundations

| Component | Verified role | Licensing / limitation | Decision guidance |
| --- | --- | --- | --- |
| [llama.cpp](https://github.com/ggml-org/llama.cpp) | C/C++ inference, GGUF, CPU and multiple accelerated backends, local server | MIT code; weights separate; backend/model support varies | Strong desktop inference boundary; inspect actual binary architecture and accelerator availability. |
| [Ollama](https://docs.ollama.com/) | Model lifecycle and local HTTP inference; configurable context | Local-only mode documented; do not expose unauthenticated services publicly | Useful optional interoperability adapter, not the definition of HOLD. |
| [MLC LLM](https://llm.mlc.ai/docs/) | Compilation/deployment engine with iOS, Android, and GPU deployment paths | [Apache-2.0 repository](https://github.com/mlc-ai/mlc-llm); compilation and packaging are platform-specific | Evaluate when compiled model packages and accelerator support justify the build complexity. |
| [Google AI Edge](https://developers.google.com/edge/mediapipe/solutions/genai/llm_inference) | On-device generation; lightweight model workflows | MediaPipe maintenance-only; model terms separate | Follow LiteRT-LM migration guidance and verify exact Android/iOS API coverage. |
| [OpenHands](https://docs.openhands.dev/overview/introduction) | Agent Canvas, Python agent SDK/server, sandbox control plane | Per-repository licenses; legacy Docker GUI deprecated | Learn separation between agent orchestration and isolated execution. Do not embed a deprecated GUI. |
| [Continue](https://docs.continue.dev/) | IDE chat, agent, edits, autocomplete; CLI and configurable models/MCP | Developer-focused; offline mode requires local dependencies | Reference for explicit context and changes; not a consumer mobile foundation. |
| [OpenCode](https://opencode.ai/docs/) | Coding agents via terminal, desktop, IDE; permissions, MCP, provider configuration | Edition migration matters; external model settings determine locality | Reference for permission prompts, plan/run distinction, diffs, and undo. |

The runtime decision must be benchmarked on the available computer. No competitor token rate, quality score, or hardware claim was used as a HOLD performance result. No competitor was installed or behaviorally audited as part of this website subtask.

## Design research and decisions

Official pages reviewed: [Apple](https://www.apple.com/), [Linear](https://linear.app/), [Raycast](https://www.raycast.com/), [Claude](https://claude.ai/), [ChatGPT](https://chatgpt.com/), [Vercel](https://vercel.com/), [Cursor](https://cursor.com/), [Arc](https://arc.net/), [LM Studio](https://lmstudio.ai/), [Jan](https://www.jan.ai/docs/desktop), and [LM Mini](https://lmmini.com/). Browser visual inspection was performed for Linear, Raycast, and LM Mini. Other references were reviewed through official page structure/content; authenticated onboarding and product interiors were not independently traversed.

The following are HOLD design judgments, not copied assets or measured competitor usability results:

- Use strong typographic hierarchy, broad spacing, few surfaces, and one accent color. Let a real product capture carry the product story.
- Keep everyday chat central and reveal technical controls when relevant. Progressive disclosure must not hide where data is processed.
- Show model and runtime status close to the conversation. A disconnected service needs a recovery action, not a generic empty state.
- Build explicit keyboard focus, reduced-motion handling, touch targets, mobile navigation, and light/dark tokens from the beginning.
- Give planned capabilities real explanatory pages, with availability stated before the call to action. Do not invent downloads, testimonials, metrics, or screenshots.

The website uses original HOLD typography, layout, geometric mark, warm neutrals, and a restrained orange accent. All website assets are authored locally; no third-party branding or stock product screenshots are copied.
