# Memos — Open Source Self-Hosted Note-Taking Tool > Memos is a lightweight, self-hosted note-taking app with Markdown support, tag-based organization, and a Twitter-like timeline interface for quick idea capture. ## Install Save the content below to `.claude/skills/` or append to your `CLAUDE.md`: ## Quick Use ```bash docker run -d --name memos -p 5230:5230 -v memos:/var/opt/memos neosmemo/memos:stable ``` Open `http://localhost:5230` — register your account and start writing notes. ## Intro **Memos** is an open-source, self-hosted note-taking tool designed for quick capture and knowledge management. Built with Go and React, it features a Twitter-like timeline interface where you can jot down thoughts, ideas, and snippets in Markdown — making it perfect for personal knowledge bases, micro-blogging, and daily journaling. With 58.7K+ GitHub stars and MIT license, Memos has become one of the most popular self-hosted note-taking solutions, valued for its simplicity, speed, and complete data ownership. ## 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) ```bash docker run -d --name memos -p 5230:5230 -v memos-data:/var/opt/memos neosmemo/memos:stable ``` ### Docker Compose ```yaml services: memos: image: neosmemo/memos:stable container_name: memos ports: - "5230:5230" volumes: - ./memos-data:/var/opt/memos restart: unless-stopped ``` ### With PostgreSQL ```yaml 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: ```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). ## Source & Thanks - GitHub: [usememos/memos](https://github.com/usememos/memos) — 58.7K+ ⭐ | MIT - Website: [usememos.com](https://usememos.com) --- Source: https://tokrepo.com/en/workflows/memos-open-source-self-hosted-note-taking-tool-d4bf6827 Author: Script Depot