Memos — a uduapp (upstream: usememos/memos)
Find a file
boojack 1e3ec38fa1 refactor(editor): modularize formatting and simplify editor state
Behavior-preserving restructure of the MemoEditor subsystem for simplicity
and extensibility:

- Add a data-driven command catalog (editorCommands.ts) as the single source
  for formatting verbs; the toolbar, active-state hook, and WYSIWYG handle all
  derive from it, so adding a verb is a one-file change.
- Add a createSuggestionExtension factory; TagSuggestion consumes it, so new
  `/` or `@` triggers reuse the shared popup in ~10 lines.
- Collapse FormattingController into a single EditorController with an optional
  `formatting` capability; PlainEditor is an honest textarea fallback (no faked
  formatting); replace stringly-typed isActive with typed getActiveFormats.
- Move audio-recorder state out of the reducer into useAudioRecorder, keeping a
  single recorderBusy flag in the store.
- Convert the editor context to an external store (useSyncExternalStore) with
  per-slice subscriptions, so typing no longer re-renders the toolbar, insert
  menu, or metadata.
- Extract the shared #tag lexing grammar (tag-grammar.ts) used by both the
  editor tokenizer and the remark renderer.
- Remove dead reducer actions/cases and fix a preview blob-URL leak on the
  upload path.

Add tests for the command catalog, suggestion factory, and autosave.
2026-06-22 23:51:59 +08:00
.github chore(github): improve issue templates with structured triage fields 2026-06-08 22:21:33 +08:00
cmd/memos feat: add configurable --log-level flag (#5934) 2026-05-12 21:10:05 +08:00
docs feat(filter): expand CEL filter surface with startsWith/endsWith, matches(), and all() 2026-06-15 23:22:28 +08:00
internal feat(filter): standard CEL now variable, time accessors, set ops 2026-06-22 22:42:44 +08:00
proto fix(instance): add needs_setup so admin-less instances aren't treated as fresh 2026-06-21 22:14:15 +08:00
scripts chore: update backend and frontend dependencies (#5900) 2026-04-28 08:25:26 +08:00
server fix(mcp): allow reverse-proxied instances to serve /mcp 2026-06-21 22:20:00 +08:00
store feat(filter): standard CEL now variable, time accessors, set ops 2026-06-22 22:42:44 +08:00
web refactor(editor): modularize formatting and simplify editor state 2026-06-22 23:51:59 +08:00
.dockerignore perf: optimize CI/CD workflows and Docker builds 2026-01-14 22:12:28 +08:00
.gitignore feat(auth): add SSO user identity linkage (#5883) 2026-04-23 08:51:45 +08:00
.golangci.yaml fix(ci): remove invalid revive rule 'use-waitgroup-go' from golangci-lint config 2026-01-06 21:12:40 +08:00
.release-please-manifest.json chore(main): release 0.29.1 (#5985) 2026-06-05 08:06:30 +08:00
AGENTS.md docs: rewrite agent repository guide 2026-06-05 09:17:22 +08:00
CHANGELOG.md chore(main): release 0.29.1 (#5985) 2026-06-05 08:06:30 +08:00
CODEOWNERS chore: tweak CODEOWNERS 2026-03-05 19:14:16 +08:00
go.mod feat(filter): expand CEL filter surface with startsWith/endsWith, matches(), and all() 2026-06-15 23:22:28 +08:00
go.sum feat(filter): expand CEL filter surface with startsWith/endsWith, matches(), and all() 2026-06-15 23:22:28 +08:00
LICENSE chore: update LICENSE (#4394) 2025-02-11 15:45:20 +08:00
README.md chore: update sponsors 2026-05-25 20:39:25 +09:00
release-please-config.json chore: add release-please automation (#5842) 2026-04-15 23:04:10 +08:00
SECURITY.md chore: update security.md 2026-04-01 08:39:49 +08:00

Memos

Memos

Open-source, self-hosted note-taking tool built for quick capture. Markdown-native, lightweight, and fully yours.

Home Live Demo Docs Discord Docker Pulls

Memos Demo Screenshot

Features

  • Instant Capture — Timeline-first UI. Open, write, done — no folders to navigate.
  • Total Data Ownership — Self-hosted on your infrastructure. Notes stored in Markdown, always portable. Zero telemetry.
  • Radical Simplicity — Single Go binary, ~20MB Docker image. One command to deploy with SQLite, MySQL, or PostgreSQL.
  • Open & Extensible — MIT-licensed with full REST and gRPC APIs for integration.

Quick Start

docker run -d \
  --name memos \
  -p 5230:5230 \
  -v ~/.memos:/var/opt/memos \
  neosmemo/memos:stable

Open http://localhost:5230 and start writing!

Native Binary

curl -fsSL https://raw.githubusercontent.com/usememos/memos/main/scripts/install.sh | sh

Try the Live Demo

Don't want to install yet? Try our live demo first!

Other Installation Methods

  • Docker Compose - Recommended for production deployments
  • Pre-built Binaries - Available for Linux, macOS, and Windows
  • Kubernetes - Helm charts and manifests available
  • Build from Source - For development and customization

See our installation guide for detailed instructions.

Contributing

Contributions are welcome — bug reports, feature suggestions, pull requests, documentation, and translations.

Sponsors

Love Memos? Sponsor us on GitHub to help keep the project growing!

Star History

Star History Chart

License

Memos is open-source software licensed under the MIT License. See our Privacy Policy for details on data handling.


Website • Documentation • Demo • Discord • X/Twitter

Vercel OSS Program