The recal blog

Field notes from the edge of personal AI

Where personal computing is heading, and how we're building toward an AI that works like a second you.

6 min read

Local LLM tokens per second: how to compute your ceiling

Decode speed is memory bandwidth divided by the bytes read per token. The formula, a verified table for common hardware, and how to find your real limit.

Read →
8 min read

Claude Code skills not triggering? Four checks, in order

A skill that never fires is rarely a prompting problem. The four mechanisms that decide invocation, including the budget that silently strips descriptions.

Read →
7 min read

Best local LLM for agentic coding in 2026 (ranked by context headroom)

On consumer VRAM the binding constraint is context, not parameters. The KV cache math, what each VRAM tier fits, and the llama.cpp flags that buy room back.

Read →
7 min read

LLM structured output when the provider ignores your schema

Some providers accept response_format json_schema and return prose anyway. The fallback ladder we shipped for BYOK, and the lenient parser underneath it.

Read →
8 min read

MCP vs Function Calling: When You Actually Need an MCP Server

MCP does not replace function calling, it feeds it. What each layer does, the token cost of loading every tool upfront, and when a CLI beats a server.

Read →
7 min read

Prompt Caching vs Semantic Caching: the Honest Tradeoffs

Prompt caching and semantic caching are not alternatives. One is an exact prefix match that cannot be wrong, the other is a similarity bet that can serve a wrong answer. When to use each.

Read →
7 min read

Mac mini for local LLMs in 2026: which config actually runs what

Which Mac mini runs local LLMs well in 2026. The two specs that decide it, what 16GB, 24GB and 48GB each fit, and the honest ceiling on 70B models.

Read →
8 min read

Best Local Reranker Models for RAG in 2026

The best local reranker models for RAG in 2026: bge-reranker-v2-m3, Qwen3-Reranker, mxbai, jina and MiniLM, compared on size, license and honest trade-offs.

Read →
10 min read

Local vector database for RAG: the 2026 tier list

sqlite-vec, LanceDB, Chroma, Qdrant, DuckDB VSS, pgvector, FAISS and Milvus Lite, ranked on one axis: how well each works as an embedded store on one machine.

Read →
11 min read

The best AI file organizers for Mac in 2026

Five ways to auto-sort files on a Mac, from Hazel rules to AI renamers like Sortio, NameQuick and FilesDesk. Which ones keep your documents on-device.

Read →
8 min read

The best dictation apps for Mac in 2026

Seven Mac dictation apps compared, from superwhisper and Wispr Flow to free open-source options. Which ones stay on-device, and which send your voice away.

Read →
8 min read

MLX vs llama.cpp on Mac in 2026: which runtime should you use?

An honest MLX vs llama.cpp comparison for Apple Silicon in 2026: real benchmark numbers, the long-context catch, GGUF portability, and which local LLM runtime fits you.

Read →
7 min read

Best Local Embedding Models for RAG in 2026

The best local embedding models for RAG in 2026: nomic-embed, BGE-M3, Qwen3-Embedding, jina-v3 and more, compared on context, license and honest trade-offs.

Read →
6 min read

BM25 vs vector search: why local RAG needs both

BM25 finds exact terms, vectors find meaning, and on a local RAG most cannot-find-it bugs are a missing lexical half. When each wins, and how to fuse them.

Read →
8 min read

Best local NotebookLM alternatives in 2026 (private and offline)

NotebookLM is genuinely good, but your sources go to Google. Here are the best local and self-hosted NotebookLM alternatives in 2026, with honest trade-offs.

Read →
9 min read

The best local RAG apps for Mac in 2026

Run RAG over your own files fully offline on a Mac. We compare AnythingLLM, GPT4All, LM Studio, Ollama and Jan, with honest trade-offs and where recal fits.

Read →
7 min read

AI Agent Memory Frameworks Ranked (2026): mem0 vs Zep vs Letta

An opinionated tier list of AI agent memory frameworks in 2026, ranked on one axis: what happens to a fact after you correct it. mem0, Zep, Letta, LangMem and raw vectors.

Read →
7 min read

Ollama vs LM Studio in 2026: which should you use?

A hands-on Ollama vs LM Studio comparison for 2026: CLI vs GUI, MLX speed on Mac, coding and automation, licensing, and which local LLM app fits you.

Read →
10 min read

The best local LLM apps for Mac in 2026 (S to C tier)

An opinionated tier list of the best local LLM apps for Mac in 2026: LM Studio, Ollama, Jan, MLX and more, ranked with the honest catch on each.

Read →
8 min read

The best local-first note-taking apps in 2026

A grounded guide to the best local-first note-taking apps in 2026, from Obsidian to Anytype, with how each stores your data and the honest catch on every one.

Read →
9 min read

Best local AI assistants in 2026: private and on-device

A grounded 2026 guide to the best local AI assistants. We separate on-device model runners from context-aware assistants, with honest picks for each.

Read →
7 min read

What poisoning a RAG store taught us about agent memory

A builder tried to poison his own RAG store. The retrieval-time defenses did not generalize, and the fix reframes how personal AI memory should work.

Read →
3 min read

The trust ladder: how a personal AI earns the right to act

Autonomy you can't audit is a liability, not a feature. Here's the staged model of consent that takes a personal AI from watching your work to doing it.

Read →
3 min read

Local by default: why a personal AI belongs on your machine

The more an AI knows about how you work, the riskier it is to store off your machine. Local-first isn't a checkbox; it's what makes personal AI possible.

Read →
3 min read

From copilot to colleague: the shift that makes AI worth real work

A copilot waits for instructions; a colleague notices what needs doing and does it. That gap, not a smarter model, is the opportunity in personal AI.

Read →