What Memos Does
Memos focuses on frictionless note capture:
- Quick Capture: Twitter-like compose box for instant note creation with Markdown formatting
- Tag System: Organize notes with #tags that auto-generate a tag tree for browsing
- Timeline View: Chronological feed of all memos with search and filter capabilities
- Markdown Native: Full Markdown support with code blocks, tables, task lists, and LaTeX math
- Media Support: Attach images, files, and embed links with preview cards
- API & Webhooks: RESTful API for automation and integration with other tools
- Multi-user: Self-hosted with user management and visibility controls (public/protected/private)
Architecture
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Web UI │────▶│ Memos │────▶│ SQLite / │
│ (React) │ │ Server (Go) │ │ PostgreSQL │
└──────────────┘ └──────────────┘ └──────────────┘Memos uses SQLite by default for zero-configuration deployment, with PostgreSQL support for larger installations.
Self-Hosting Options
Docker (Simplest)
docker run -d
--name memos
-p 5230:5230
-v memos-data:/var/opt/memos
neosmemo/memos:stableDocker Compose
services:
memos:
image: neosmemo/memos:stable
container_name: memos
ports:
- "5230:5230"
volumes:
- ./memos-data:/var/opt/memos
restart: unless-stoppedWith PostgreSQL
services:
memos:
image: neosmemo/memos:stable
environment:
MEMOS_DRIVER: postgres
MEMOS_DSN: postgresql://memos:memos@db:5432/memos?sslmode=disable
ports:
- "5230:5230"
depends_on:
- db
db:
image: postgres:16-alpine
environment:
POSTGRES_USER: memos
POSTGRES_PASSWORD: memos
POSTGRES_DB: memos
volumes:
- pg-data:/var/lib/postgresql/data
volumes:
pg-data:Key Features
Markdown Editor
Memos supports full GitHub-Flavored Markdown:
# Meeting Notes 2024-01-15
## Action Items
- [x] Review PR #123
- [ ] Update documentation
- [ ] Schedule follow-up
## Code Snippet
```python
def process_data(items):
return [transform(i) for i in items]Important: Deadline is Friday #work #urgent
### Tag-Based Organization
Tags are first-class citizens in Memos:
- Use `#tag` inline in any memo
- Nested tags with `#parent/child` syntax
- Tag tree sidebar for browsing
- Filter by multiple tags simultaneously
### API Integration
```bash
# Create a memo via API
curl -X POST http://localhost:5230/api/v1/memos
-H "Authorization: Bearer YOUR_TOKEN"
-H "Content-Type: application/json"
-d '{"content": "Quick thought from CLI #idea"}'
# List memos
curl http://localhost:5230/api/v1/memos
-H "Authorization: Bearer YOUR_TOKEN"Telegram Bot Integration
Memos can connect to a Telegram bot to capture notes directly from Telegram messages — perfect for mobile quick capture.
Memos vs Alternatives
| Feature | Memos | Obsidian | Notion | Apple Notes |
|---|---|---|---|---|
| Open Source | Yes (MIT) | No | No | No |
| Self-hosted | Yes | Local files | No | iCloud |
| Quick capture | Timeline UI | Vault system | Pages | Notes |
| Markdown | Native | Native | Partial | No |
| API | REST API | Community | API | No |
| Multi-user | Yes | No | Yes | Family sharing |
| Storage | SQLite/PostgreSQL | Local files | Cloud | iCloud |
常见问题
Q: Memos 适合做知识管理吗? A: Memos 更适合快速记录和碎片化知识捕获。如果需要双向链接和图谱功能,建议搭配 Obsidian 使用。Memos 负责快速捕获,Obsidian 负责深度整理。
Q: 数据如何备份?
A: SQLite 模式下,备份 /var/opt/memos 目录即可(包含数据库和上传文件)。也可以通过 API 导出所有 memos 为 JSON 格式。
Q: 支持移动端吗? A: Memos 是 PWA 应用,在手机浏览器中添加到主屏幕即可获得类原生体验。也有社区开发的 iOS 和 Android 客户端(Moe Memos、MoeMemos)。
来源与致谢
- GitHub: usememos/memos — 58.7K+ ⭐ | MIT
- 官网: usememos.com