MemoDocumentation
EN

Release Notes

v3.9.0 — Talk to Memo: WhatsApp & Telegram, Chat-Driven Routines, Per-Capability Permissions

August 22, 2026 · Open Beta

The through-line of this release is making things actually correct instead of merely present: web search became real per-message tool-calling, reasoning-effort control was rebuilt on live capability discovery, and a live Raspberry Pi security review closed a genuine Cloudflare Tunnel auth bypass plus three known "High" issues.

Big Features

  • WhatsApp self-chat assistant — message yourself and Memo replies through the same memory pipeline; agent tools and web search always available; slash commands (/new, /agent, /web, /auto-perm, /status, /help).
  • Telegram support — connect a bot via @BotFather token; first message locks permanent ownership, everyone else silently ignored.
  • Routines from chat — create/list/cancel scheduled automations from WhatsApp or Telegram with create_routine/list_routines/cancel_routine; delivery targets hard-locked to the creating surface, never model-chosen.
  • Fixed: self-chat's agent tools were never actually reachable — background sessions never set a project path, so tool access fell back to the global toggle (off by default). Now unconditional for self-chat.
  • Web search redesigned twice over — from blind raw-message injection to scoped real tool-calling the model invokes only when needed (zero cost when it doesn't).
  • Reasoning effort rebuilt on live discovery — static per-vendor tables replaced by real per-model capability endpoints after confirming a wrong effort level returns a hard 400.
  • Dev gateway redesigned — now also OpenAI-compatible (/v1/chat/completions, /v1/models), configurable system prompt, one-click Claude Code CLI connect with backup/restore.
  • Per-capability account permissions — self-hosted accounts grantable one switch at a time (Models/Memory/Agent/Calendar/WhatsApp/Telegram/Routines), enforced server-side, fail-closed.
  • Kilo Code provider — live model catalog with free/paid browser (368 models, direct isFree field); OpenCode Zen got the same treatment via its -free suffix.
  • System tray icon with minimize-to-tray; Dream's own configurable schedule; Stats token-spend breakdown by category; "N memories used" badge on replies; mobile navigation redesign below 600px.
  • CLI: memo remote list-accounts/add-account/delete-account; -chat <id> -list and -chat <id> -memory usage.

Security Fixes

Cloudflare Tunnel loopback auth bypass (found live); setup wizard reappearing per-origin; ngrok download integrity check (H04); WhatsApp search _ wildcard escaping (H05); persistent agent audit log (H10).

v3.5.5 — Self-Hosting Arrives: Auth, Multi-Account, Docker/CasaOS & a Complete CLI

August 17, 2026 · Open Beta

The self-hosting story that's been building since v3.3.4 is now real: a full 4-mode auth system with per-device tokens, multi-account support, a genuine Flutter-web web UI, Docker/CasaOS images, and dedicated server-only installers, all managed end-to-end over SSH with memo config/remote/service/provider/agent/model — no GUI required, no raw curl against the API either. Most of it was hammered into shape on a real Raspberry Pi across several live sessions, which is exactly how a dozen-plus real onboarding bugs got found and fixed. This release also absorbed a full mobile-responsive pass across every screen and the combination Orchestra Mode was actually built for — Orchestra + Agent Mode together — now genuinely sharing real tool access instead of quietly faking it.

Big Feature: A Real Auth System, Not a Shared Password

Remote access used to mean one shared token every request compared against. It's now a real system with four selectable modes — no credential, token-only, password, or token+password — with argon2id password hashing, brute-force lockout, short-lived signed sessions, and per-device tokens (hashed at rest, shown once, revocable individually). Connecting from the same machine the backend is running on (loopback) never needs a credential at all, in every mode.

Big Feature: Multi-Account, a Universal Auth Gate, and a Real Flutter Web UI

Self-hosted Memo now supports multiple accounts with admin/user roles (Settings → Accounts). Every screen — chat, Settings, Developer Options — goes through the same first-run setup gate and login gate. The built-in web page for headless/CasaOS/browser access is no longer a small hand-rolled HTML/JS client — it's a real Flutter web build, with working provider setup, a server-side file browser, and model downloads.

Big Feature: Docker/CasaOS and Dedicated Server-Only Installers

A multi-arch (amd64 + arm64) Docker image publishes automatically to GHCR on every push. get-memo-server.sh/get-memo-server-beta.sh is a dedicated installer for a machine with no display at all — same release archives, skips the desktop binary entirely. uninstall-selfhosted.sh cleanly removes a server-only install, systemd unit included, with an optional backup first. See Self-Hosting for the full walkthrough.

Big Feature: The CLI Grows Into a Complete Management Toolkit

Everything Settings can do to a self-hosted install, memo can now do too, over plain SSH: memo config get/set, memo remote status|list-devices|add-device|revoke-device|rotate-token|set-mode|login, memo service install|uninstall|status|restart, memo provider list|add|set-active|active, memo agent status|enable|disable|auto-permission, and memo model list|status|search|files|download|start|start-embedding. Full syntax in the CLI Reference. Bundled security fix: --password/--key are no longer required as plain command-line arguments — leave them off and they're prompted for interactively, hidden.

Big Fix: A Full Mobile-Responsive Pass

Pretty much every screen assumed a desktop-width window; phone-width users hit a long chain of overflow errors and unusable layouts, starting with a missing viewport meta tag. Chat's sidebar and composer, Settings' dialog width and rail, Model Store's master/detail layout, Agent's sidebar, Calendar's header, the empty-chat welcome tip, and the setup wizard's Language/Theme cards were all fixed — reproduced live in a real 375px browser session, not inferred from code.

Big Fix: Orchestra Mode + Agent Mode Now Actually Work Together

Turning on Agent Mode and Orchestra Mode together was reachable but never worked: each delegated task ran as a plain completion with no tool access, so it could only claim to have "simulated" a tool call. Each Orchestra task now runs through the same real, sandboxed, permission-gated agent pipeline a direct agent chat uses — the chief's synthesis now describes what actually happened, because it did.

Fixed: Task Loop Was Silently Doing Nothing, and Orchestra's Own Utility Calls

Starting a task list did nothing at all — a background-loop context was being cancelled the instant the HTTP handler returned. Separately, small internal Orchestra calls (chat titles, routine parsing) were being forced through the full plan → execute → synthesize pipeline instead of a plain completion, causing "chief returned no tasks" failures and multi-minute delays for a one-line chat title. Both fixed.

Small Fixes

Agent permission dialog no longer disagrees with the backend's real 60-second auto-deny timer, and no longer gets stuck open. Routine delivery-channel chips are now actually toggleable. Chat shows a backend-reported error immediately instead of requiring a manual reload. Migrated off the discontinued flutter_markdown onto flutter_markdown_plus.

Security Fixes

CORS origin-validation bypass (CWE-346) in the remote-access gate closed. Dependency fix for GO-2026-6218, a quadratic-complexity issue in Go's net/url.

Still Open

Built-in TLS (use Tailscale/ngrok or your own reverse proxy for anything leaving your LAN), starting/stopping a Tailscale or ngrok tunnel from the CLI (Settings-only for now), and a genuine adversarial security test against a real self-hosted deployment.

v3.3.4 — Live Mode, Tailscale Out of Beta & a 4-5x Local Speed Fix

August 5, 2026

A big reliability and polish release: every background task in the backend now survives an unexpected error instead of silently taking the whole app down, turning on memory could quietly cut local generation speed by 4-5x and is now fixed, a new (beta) Live Mode lets you have a hands-free spoken conversation with Memo, Tailscale remote access graduates out of Beta with one-click login, and the terminal CLI gets a new default look plus a Shift+Tab auto-approve toggle matching the desktop app.

Big Fix: The Backend No Longer Crashes From a Background Error

Every background task across the backend (memory, chat streaming, WhatsApp, cloud sync, local model management, speech-to-text, routines, proactive suggestions, notifications, remote-access tunnels) is now guarded — an unexpected error in one is logged and contained instead of taking the whole app down with it. Before this release, only three small corners of the codebase had any protection against that at all.

Big Fix: Turning On Memory Could Cut Local Generation Speed by 4-5x

Enabling memory/RAG on a local model could tank generation from ~10 tokens/sec to 2-3. Root cause: the embedding server was auto-sizing itself onto the GPU as if it were the only model running, oversubscribing VRAM against the already-resident chat model. It now defaults to CPU-only, fully removing the contention. A second, smaller contributor — an unbounded memory-context token budget — was also capped.

New (Beta): Live Mode — Hands-Free Voice Conversations

A small voice icon next to the chat input lets you talk to Memo out loud: it listens, detects when you start/stop speaking, transcribes locally, and speaks the reply back with Piper (a local, offline TTS engine) by default, with an optional external OpenAI TTS provider. Includes a downloadable offline voice picker, one-directional barge-in, and a bundled voice-activity model. Known limitation: no echo cancellation yet, so speaker use (vs. headphones) can occasionally cause self-interruption.

New (Beta): Claude Code and Codex CLI as Chat Providers

Point a chat at your locally installed claude or codex CLI instead of an API — that chat becomes a real coding agent with file/command access in a folder you choose, running as a background job independent of what you're looking at, with its own slash commands and no fixed timeout.

Changed: Remote Access (Tailscale) Graduates Out of Beta

No longer needs the Beta Features switch. One-click interactive login (no auth key), Funnel defaults to on, and the tunnel now auto-reconnects after a dropped connection instead of silently staying dead.

Changed: Settings Reorganized Into a Searchable Rail

Settings moved from ~20 flat tabs to a grouped, searchable rail — type a few letters to jump straight to what you're looking for.

Fixed: Real Bugs Found in Everyday Use

Agent mode failing on short messages with small-context local models (default local context raised 4096→8192); "Delete All Data" failing on Windows (internal databases weren't closed before the wipe); speech-to-text not finding its bundled files from an installed CLI; web search firing on every single message instead of only when actually needed; a Windows install failing to launch with a missing msvcp140.dll (the installer now bundles the VC++ Redistributable).

New: Plain-Language Errors, @ File-Mentions, and a Quick Model Switcher

The setup wizard and model store got a pass of plain-language error messages, jargon tooltips, and download time estimates for non-technical users. Chat's top bar now shows a clickable model/provider pill, and typing @ in any chat searches for and references a file by name.

Security Fixes

Patched a govulncheck-flagged vulnerability in google.golang.org/grpc (pulled in via the Google Drive cloud-backup integration).

v3.3.3 — Routines, Proactive Learning & Memo Swarm

July 23, 2026

A stability and trust-focused release, long overdue: the terminal CLI stops getting stuck (and gets a full visual redesign), the CLI and desktop app can now run side by side without stepping on each other, Memo finally has a real answer when you ask who made it, and Memo can now schedule its own routines and proactively notice patterns instead of only responding when asked — plus (beta) Memo Swarm for pooling several PCs on one oversized local model.

Big Feature: Routines — Scheduled Automations

Settings/sidebar → Routines lets you schedule something for Memo to do on its own, described in plain language, as a simple prompt or a full tool-using agent run.

  • Works on both desktop and mobile — the mobile app delivers routine reminders as real, pre-scheduled local notifications.
  • Fires against your own device's timezone (captured at creation, resynced on every reconnect), so travel or a DST change no longer leaves it stale.
  • Routine-generated text now follows your actual language setting instead of always coming out in Turkish.

New: Proactive Learning & Ambient Nudges

Memo can now notice patterns in how you use it and gently bring them up — on by default (subtle level), fully disabled under Incognito, and under Minimal Mode unless you've re-enabled it. A directly-stated habit ("I code every night around 9") is trusted immediately rather than needing repeated statistical confirmation. A real suggestion banner (Yes / Not now / Stop asking) now exists on desktop for responding to a pending nudge.

New: Self-Insight (/insight)

Ask directly, or let a weekly Routine ask, and Memo looks back over recent mood history and memory to describe any real pattern it's noticing — instructed not to invent one if there isn't enough signal.

New: Memo Knows Who Made It

Ask who built Memo or what it stands for and it now gives a real, grounded answer (built solo, open source, no commercial motive, local-first) instead of guessing — only ever comes up if you actually ask.

Big Fix: The CLI No Longer Gets Stuck, Round Two

A further batch of terminal CLI reliability fixes and a visual redesign, building on the CLI introduced earlier in the v3.1.x line:

  • The welcome panel was redesigned into a two-column box (mascot/model info + rotating tips) that stays formatted at any terminal size.
  • Fully localized (Turkish/English), following the desktop app's language setting.
  • New @ file-mention autocomplete, a new /update command with a real version check, and standalone flags (--kill, --help, --version, --status, --gui, --github, --bugreport, --docs).
  • /model-download now just opens the desktop GUI's cancellable progress bar instead of a keyboard-blind, unkillable one in the terminal; /gui actually finds the desktop app now; /model//embedding no longer time out on slow hardware; multi-line paste lands as a single message; closing the terminal any way (not just /exit) restores it cleanly.
  • The CLI's backend now runs as its own process, independent of the desktop app — closing one no longer takes the other down, and the backend self-stops within a minute or two once neither is in use.
  • The CLI always starts a fresh chat now; /session shows every chat from both CLI and desktop, in either direction.

Big Feature: Model Store — Smarter Discovery & Downloads

  • First-run setup now reads your RAM/GPU and recommends a matching chat + memory model pair, with one button to start both downloading.
  • Downloads no longer block each other — several can run concurrently.
  • Local model context size is read from the model file's real maximum; the slider can no longer be pushed past it and crash the engine.
  • Tool-calling/code badges are now based on the model's actual chat template and tags, not a hardcoded list.
  • Discover's filters (Tools/Vision/Code/Embedding/Size) now combine with OR instead of AND, grouped into multi-select dropdowns.

Big Feature: Developer API Gateway

Sidebar → Developer exposes an Anthropic-compatible local endpoint for tools like Claude Code, via ANTHROPIC_BASE_URL — pointing it at Memo runs your own local model or your own provider API key behind the scenes. Full agentic tool calling works for most providers (not yet Gemini, Claude, or Ollama). API key requirement and memory integration are both optional and off by default.

New (Beta): Memo Swarm

Sidebar → Swarm (after enabling Settings → Beta Features) pools compute from several PCs to run one GGUF model too large for any single machine — one PC hosts the model file and shares a room code, others join and lend compute without downloading it themselves. Goal is capacity, not speed. Not yet available on macOS.

New: Usage Stats, New: Two More Providers, and New: Import Memory From Another AI

Settings → Stats adds KPI cards (requests, tokens, tokens/sec, most-used model) plus a 30-day usage chart and per-model breakdown. Two new providers — OpenCode Zen and OpenCode Go — join the roster (9 total). A new Import Memory page lets Memo learn what another AI assistant (ChatGPT, Gemini, Claude, etc.) already knows about you, in one copy/paste step.

Security Fixes

  • Remote access (LAN/ngrok) now requires the access token on every request — previously anyone reachable on the network could read API keys or run commands with zero credentials.
  • Hardened the agent's dangerous-command filter and closed a symlink sandbox-escape gap.
  • Fixed: using Claude as the active provider could send every chat message with an empty model field.
  • Patched two govulncheck-flagged dependency vulnerabilities (golang.org/x/text, golang.org/x/net).

Big Fix: Memory Actually Remembers What You Tell It

A focused pass fixed keyword-based memory search (never actually active in any prior release), multi-topic questions returning incomplete answers, and added reliable recognition of personal facts mentioned in ordinary conversation (not just via /remember). Also fixed: /remember silently saved nothing due to a one-character database bug, and memory could stay silently off after a restart if an embedding server was already running.

Small Fixes

Agent mode toggle now sits in Chat's top bar; a new Report a Bug tab in Settings; .memo backup now includes calendar, routines, task lists, agent permissions, skills, and the previously-missing machine.key; clearer errors when switching models/providers mid-stream; several tool-permission-dialog and chat-switching race fixes; WhatsApp no longer drops captioned media; mobile app fully localized (TR/EN).

Version History

Version Date Highlights
v3.9.0 Aug 22, 2026 WhatsApp & Telegram self-chat assistants, chat-driven Routines, per-account permissions, Kilo Code, rebuilt web search & reasoning-effort control, Dev Gateway OpenAI-compatible endpoint
v3.5.5 Aug 17, 2026 Self-hosting (4-mode auth, multi-account, Flutter web UI, Docker/CasaOS, full CLI toolkit), mobile-responsive pass, Orchestra+Agent real tool access, Task Loop fix
v3.3.4 Aug 5, 2026 Backend-wide panic recovery, 4-5x local speed fix, Live Mode (beta), Claude Code/Codex CLI providers (beta), Tailscale out of beta, searchable Settings
v3.3.3 Jul 23, 2026 Routines, Proactive Learning, Self-Insight, Memo Swarm (beta), Developer API Gateway, Usage Stats, CLI redesign round 2, security fixes
v3.1.2-beta Jul 6, 2026 Terminal CLI, task loop, reliability fixes
v3.1.1-beta Jul 4, 2026 First public open beta
v3.1.0 Jun 2026 WhatsApp, providers, agent, orchestra, mobile, backup
v3.0.x Mar–May 2026 Closed beta; foundational architecture
v2.x 2025 Internal development builds