Allow any tag to trigger content blurring by setting blur_content=true in InstanceTagsSetting, replacing the previous hardcoded NSFW-only check. Changes: - proto: add bool blur_content field to InstanceTagMetadata (store) and InstanceSetting.TagMetadata (API v1); regenerate Go and TS bindings - server: thread BlurContent through convertInstanceTagsSettingFromStore and convertInstanceTagsSettingToStore conversion helpers - web/MemoView: replace tag.toUpperCase()==='NSFW' with a findTagMetadata() lookup on tagsSetting.blurContent; rename internal state nsfw/showNSFWContent/toggleNsfwVisibility to blurred/showBlurredContent/toggleBlurVisibility - web/TagsSection: add blur checkbox column and new-tag blur toggle to the admin tags settings UI - web/locales: rename click-to-show/hide-nsfw-content keys to click-to-show/hide-sensitive-content across all 30+ locale files; update English strings to 'sensitive content' phrasing Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> |
||
|---|---|---|
| .github | ||
| cmd/memos | ||
| docs/issues/2026-03-23-tag-blur-attribute | ||
| internal | ||
| plugin | ||
| proto | ||
| scripts | ||
| server | ||
| store | ||
| web | ||
| .dockerignore | ||
| .gitignore | ||
| .golangci.yaml | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| CODEOWNERS | ||
| LICENSE | ||
| README.md | ||
| SECURITY.md | ||
| go.mod | ||
| go.sum | ||
README.md
Featured Sponsor: Warp — The AI-powered terminal built for speed and collaboration
Memos
Open-source, self-hosted note-taking tool built for quick capture. Markdown-native, lightweight, and fully yours.
💎 Featured Sponsors
Warp — The AI-powered terminal built for speed and collaboration
TestMu AI - The world’s first full-stack Agentic AI Quality Engineering platform
SSD Nodes - Affordable VPS hosting for self-hosters
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 (Recommended)
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
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