github usememos/memos v0.30.0

5 hours ago

Memos 0.30 refreshes how you capture, write, and browse your notes. It introduces the Memos Web Clipper, a rebuilt Markdown editor, richer memo detail views, flexible multi-column feeds, faster rendering, and stronger authentication and sharing boundaries.

Introducing Memos Web Clipper

Save page details, selected text, and images directly to Memos from Chromium-based browsers and Firefox. The clipper converts links, lists, code, and tables to Markdown, uploads images as attachments, and lets you review and edit every clip before saving.

Choose Private, Protected, or Public visibility, customize the output with local templates, or save selected text and images as private memos from the browser context menu. Connect through usememos.com, or connect directly with your Memos instance URL and a personal access token.

Install for Chrome · Install for Firefox · Visit website · GitHub

Writing and browsing

  • A new Markdown editor: The editor has been rebuilt as a single CodeMirror 6 decorated-source experience. Your Markdown stays visible and unchanged while headings, formatting, tags, and mentions are styled in place. Tag completion, list indentation, focus mode, improved keyboard shortcuts, and a toggleable formatting toolbar make longer writing sessions smoother. (5a73d7) (e3c231f)
  • Richer memo details: The memo detail page now uses a property rail for quick actions, visibility, metadata, attachments, relations, and a scroll-aware outline. When you return to a feed, Memos restores your previous scroll position. (d4b5a16) (e497895)
  • Feeds that fit your workflow: Choose one, two, three, or automatically fitted columns, then control compact rendering and link previews. Preferences are saved, multi-column layouts stay balanced as cards resize, and newly created memos remain easy to find above pinned content. (177d65a) (e3e4ae1) (cafa56f)
  • Better Markdown and conversations: GFM footnotes now render with navigation, file paste and drag-and-drop behavior is more reliable, task-list expansion is preserved, and comment pagination can load the full conversation. (1020060) (#6076) (ecbe2ab)

Personalization and interface

  • More capable filters: Shortcut filters now support string matching, regular expressions, collection predicates, timestamp accessors, set operations, and an untagged-memos recipe. (f0e4a56) (b787bfa)
  • Personal tag settings: Tag colors and content-blur rules now belong to each user. Existing instance-level settings are copied to current users during migration. Tags inside links are no longer misidentified, literal tags can be escaped with a backslash, and names support Unicode combining marks. (#6017) (a50ce09) (#6051)
  • Clearer settings and access tokens: Settings navigation has been refreshed, while the access-token page now includes practical guidance, a copyable API example, safety notes, and last-used timestamps. New access tokens default to no expiration. (715306e) (cc20327)
  • A more consistent interface: Sign-in, sign-up, About, mobile controls, loading states, radio indicators, tooltip arrows, and long location labels have all been refined. The locale picker is now searchable, European language coverage has expanded, and missing Japanese and Simplified Chinese translations have been completed. (564da94) (4183985) (a47d049)

Integrations and self-hosting

  • A rebuilt MCP integration: Memos now exposes a curated, OpenAPI-driven MCP toolset that uses the same authentication and authorization as the public API. It covers memos, comments, relations, reactions, shortcuts, identities, and attachments, including uploads, with more reliable resource routing and tool schemas. (777d227) (0e1d821) (390126f)
  • Signed, editable webhooks: Webhooks can now use Standard Webhooks HMAC-SHA256 signing secrets. You can edit webhooks, see their signing status, and reveal a generated secret again when needed. Invalid secrets are rejected before saving. (#6013) (#6027)
  • File-backed deployment settings: Identity providers and supported instance settings can be supplied as validated JSON files under /etc/secrets. These files act as runtime overrides and keep the corresponding settings read-only in the UI and API until removed. (0038295)
  • More flexible S3-compatible storage: Self-hosted deployments using self-signed certificates can opt into insecure_skip_tls_verify. (#6039)

Performance, reliability, and security

  • Faster feeds and Explore: Memos now caches fingerprinted assets, defers media and rich renderers until needed, renders feed content near the viewport, and shares user and memo lookups across creators, reactions, comments, mentions, and relations. This reduces startup work, rendering cost, and bandwidth. (88c6ee8) (6c1055f) (249b331)
  • Safer authentication and SSO: SSO option loading is more stable, OAuth client authentication can be detected automatically, and first-time SSO provisioning is atomic across SQLite, MySQL, and PostgreSQL. Concurrent first sign-ins no longer leave orphaned users, and valid SSO identifiers are used as local usernames when possible. (6c17e87) (96cb653) (019f4f9)
  • Cleaner and more compatible APIs: Legacy UUID-based identifiers remain supported while new resource names follow AIP conventions. User-facing errors no longer expose internal RPC prefixes, bearer-token cross-origin requests work without weakening same-origin cookie protection, and user lists paginate consistently. (84776cc) (b7d5d09) (0bfeb91) (385fa22)
  • Deployment polish: The container entrypoint no longer restarts indefinitely when MEMOS_UID=0, and the demo instance now uses representative public and protected memos to showcase tags, references, comments, mentions, reactions, locations, attachments, and rich Markdown. (#6061) (469c995)

Before upgrading

The following changes affect instance configuration, saved filters, shared-memo API clients, or existing MCP clients:

  • Public and private instances: Instances without --instance-url or MEMOS_INSTANCE_URL now run in private mode. Anonymous visitors are sent to sign-in, anonymous API access is limited to setup, authentication, and shared-memo routes, and RSS feeds are unavailable. Set the instance URL to keep the previous public behavior. (d1cef7a) (415a3ec)
  • Shared memo API: GetMemoByShare and GET /api/v1/shares/{share_id} have been replaced by GetSharedMemo and GET /api/v1/shares/{share_token}/memo. Share-token responses now contain only the shared memo and its attachments, without the surrounding parent, comments, or relation graph. (0d2cbd4) (415a3ec)
  • Saved time filters: now() has been replaced by the now timestamp variable, and time fields now use CEL timestamps. Update shortcuts to expressions such as created_ts >= now - duration("24h") or timestamp(<epoch>) instead of comparing time fields with bare epoch values. (26f4b73)
  • MCP clients: The MCP server is now a stateless, tools-only endpoint at /mcp with service-prefixed tool names. Prompts, resources, tool-filtering headers, route aliases, and unprefixed names have been removed. Tool errors now use isError with text content instead of structuredContent.error. (#6026) (03e34bd)

New Contributors

Full Changelog: v0.29.1...v0.30.0

Don't miss a new memos release

NewReleases is sending notifications on new releases.