Search across signals
Keyword, semantic and graph retrieval run as complementary channels. Reciprocal-rank fusion combines candidates; a MiniLM cross-encoder can rerank them. Time filters apply across the retrieval channels.
Independent product · In development
Local AI, grounded in your work.
A native Mac assistant bringing search, speech and source checks together—with specialized models working within a shared memory budget.
Combine keyword, semantic and graph search, with time constraints where requested.
A small cross-encoder reranks candidates before they become retrieved context.
Passage links preserve a route from the assistant’s context back to the original material.
A useful answer may depend on a meeting, a note and a document written weeks apart. Similar wording can conceal a different date, scope or level of commitment.
Doppel brings retrieval and interpretation into the same product while keeping source evidence available for inspection. A proposal, a confirmed choice and a report about an earlier event receive different treatment.
Keyword, semantic and graph retrieval run as complementary channels. Reciprocal-rank fusion combines candidates; a MiniLM cross-encoder can rerank them. Time filters apply across the retrieval channels.
When a cited original changes, Doppel compares its earlier and current passages. Scope, named details and numeric qualifications stay part of the check. Unavailable comparisons remain visibly incomplete.
Local processing separates choices, tasks, proposals and reported events. Evidence quotes and timestamps support review; ambiguous model scores can abstain. A model’s interpretation does not itself confirm a record.
Model admission accounts for estimated residency and observed process memory. Idle models can be evicted before another loads. Language and vision use MLX; several smaller inference paths use Core ML.
The configured stack combines existing open-weight models with native runtimes, conversion tooling and product-specific checks.
| Job | Implementation |
|---|---|
| Language & vision | LFM2.5-VL-3B · 4-bit MLX checkpoint |
| Speech recognition | Qwen3-ASR-0.6B · Core ML backend, with a separately admitted MLX fallback for eligible failures |
| Speech output | Kokoro-82M · MLX |
| Embeddings | Jina embeddings v2 small · Core ML path configured for CPU and Neural Engine |
| Passage ranking | MS MARCO MiniLM-L6-v2 · Core ML cross-encoder |
| Entity & relation extraction | GLiNER-Relex base · Core ML, with a work-specific label policy |
| Meaning checks | ModernBERT-large-NLI · Core ML, with source and scope gates |
The speech path bounds concurrent work, reuses and clears decoder state, and contains supported native exceptions. Failed meeting processing preserves source audio for an explicit retry.
Conversation compaction stores a disposable working summary alongside the canonical transcript. Edits and branch changes invalidate stale summaries. Token-cache reuse requires compatible lineage and matching prefixes.
These are implemented recovery and consistency mechanisms. Their usefulness depends on the complete workload, model revision and hardware.
This case study describes an independent product under development. The repository includes focused regression and conversion checks for the mechanisms described. This article reports no new comparative accuracy, speed or energy benchmark.
Local model inference is one part of the product. Connected services and web search have their own network behavior.
Residency, compute placement, cache reuse and recovery in an on-device assistant.
Read the noteOriginal passages, revisions, scope checks and bounded comparisons of meaning.
Read the noteStart with an Engineering Sprint: $17,250 USD, two weeks, one agreed obstacle.
See the Engineering Sprint