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 |
FAQ
Q: Is Memos good for knowledge management? A: Memos is better suited for quick captures and fragmented knowledge. If you need bi-directional links and graph views, pair it with Obsidian — Memos for quick capture, Obsidian for deep organization.
Q: How do I back up data?
A: In SQLite mode, just back up the /var/opt/memos directory (which contains the database and uploaded files). You can also export all memos as JSON via the API.
Q: Is there a mobile app? A: Memos is a PWA — add it to your home screen from a mobile browser for a near-native experience. Community iOS and Android clients are also available (Moe Memos, MoeMemos).