You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
New on-device reasoning models in the catalog, the /model picker, and --model:
Ornith-1.0-9B (mlx-community/Ornith-1.0-9B-4bit / -8bit) - plans with <think>
reasoning and native tool calls, and sees images, so it appears in both the planner and
vision pickers plus a new DeepAgent (Ornith) preset that uses it for both roles.
Qwen3.6 (mlx-community/Qwen3.6-27B-OptiQ-4bit ~20 GB, Qwen3.6-35B-A3B-OptiQ-4bit
MoE ~24.7 GB) - the strongest local planners in the catalog; text-only.
Gemma 4 E4B (mlx-community/gemma-4-e4b-it-8bit ~9 GB, gemma-4-e4b-it-OptiQ-4bit
~7.5 GB) - reasons in Gemma's thought channel with native tool calls; a new DeepAgent (Gemma 4) preset pairs it with the LFM2.5 VLM for vision.
All run with their model cards' recommended sampling and a 40k on-device context window.
Prefill cache. The agent prompt's computed state is reused across rounds, queries, and now processes - the base snapshot persists to disk, so a fresh ripple launch resumes it instead
of re-prefilling the ~10k-token system+tools prompt (cold prompt processing ~14 s → ~0.2 s
measured on Ornith 9B). Toggleable in /config ▸ Capabilities as Prefill cache
(prefixKVCache in settings.json), honored by the REPL and headless runs.
Apple Notes tools. The agent can list, read, create, and update Apple Notes
(apple_notes toolset; writes are approval-gated, reads are not).
/tools browser - a two-level browser of the agent's tools grouped by toolset, with each
tool's description, parameters, and a [needs approval] badge.
ripple works in its launch directory. Filesystem tools and the @ picker root at the
directory ripple was started in, and each session's transcript is written to .ripple/sessions/ inside it (--log <dir> overrides).
Bordered three-choice approval prompt (Approve / Reject / Always allow, arrow keys or a/r/A) and a gradient ASCII-art launch wordmark.
Fixed
Failures are never silent. A turn that dies mid-generation ends with a red ✗ turn failed - <reason> line under whatever streamed (the loader's real reason included),
instead of an empty answer. A broken planner no longer keeps ripple chat from starting:
launch falls back to the default model when it's on disk, or opens on the chosen model anyway
and retries on the first message - either way a transcript note says what happened. A failed /model switch notes the failure and keeps the current planner. Headless runs print the
loader's recorded reason and exit non-zero.
Download progress is real. Multi-GB pulls no longer sit at 0% (the hub's Xet transport
reports no incremental progress; the bar now blends live in-flight bytes), the /model Local
tab draws its progress bar inside the panel (it was hidden behind the menu) with esc to
cancel, and a cold (re)load names its phase - loading <model> into memory…, prefilling the prompt… - instead of a bare "working…".
The tokens/sec readout measures real decode speed - every generated token (reasoning +
answer) over active decoding time, excluding prefill, tool runs, and round transitions.
A turn renders in the order it happened. Reasoning / tool / plan / answer blocks keep
their streamed sequence instead of being grouped by type.
ask_user (and every tool with nested array/object parameters) works on the Ornith,
Qwen3.6, and Gemma 4 planners - tool schemas are now passed into generation so nested
values arrive typed.