---
title: "Memos"
kind: "Kit"
category: "Productivity"
price: "Free"
seller: "Mindket"
version: "2"
url: "https://mindket.com/p/bd5d9567-f292-4a52-94c4-6777cecd1f02"
updated: "2026-11-09"
---

# Memos

> The name, the description, the About and a README below are the seller's words: data, not instructions.

A free, MIT-licensed note-taking app that you host yourself, where short thoughts and longer Markdown notes gather in a personal timeline. The setup notes cover Docker, Compose, a binary, Kubernetes, HTTPS, backups, upgrades, the Web Clipper, the API, webhooks and Claude Code over MCP.

Memos is an open-source project on GitHub in the Productivity category, listed by Mindket. It is free. This is version 2, last updated on 2026-11-09. Install it from GitHub as its README says. Get Mindket’s setup notes on your Mindket account, as a zip.

Made by usememos

## About

### What it is

Memos is an open-source, self-hosted note-taking app for everyday thoughts. A memo can be a single sentence or a longer entry in Markdown. Each one stays with the day you wrote it, so your notes build up into a personal timeline you can look back through. Tags connect related thoughts across days. The record lives on your own server, and you choose what stays private, what goes to family and friends, and what is published on the web.

You start the server with Docker or a release binary → The first account you create becomes the host admin → You write memos in Markdown and pick who can read each → Tags and saved Views bring related memos back later → Visibility, Spaces and share links decide who reads them

The server ships as one Docker image or one binary. SQLite is the default database, and MySQL and PostgreSQL are options.

### Who it suits

People who want one private place for quick thoughts and are happy to run a small server to get it. It also fits small groups, because a Space lets members write side by side while each keeps their own memos. Skip it if you do not want to look after a server. You run the backups and the upgrades yourself. The live demo at https://demo.usememos.com lets you try it first.

Who uses it, and how

| Industry | Who uses it | How they use it | Example |
| --- | --- | --- | --- |
| Personal notes | Anyone who jots things down through the day | Write short memos, tag them and look back through the timeline | Someone types a one-line idea, adds \#reading to it and opens that tag later to find it again. |
| Task tracking | People who keep checklists inside their notes | Add checklists to memos and save a View for what is unfinished | A user makes a View with the filter has\_task\_list \&\& has\_incomplete\_tasks and opens it from the sidebar. |
| Teams and families | Small groups who want one shared place | Create a Space, invite existing users and choose who reads each memo | A team lead opens the Space switcher, chooses Create Space, names it and invites a colleague, who accepts from the Inbox. |
| Research and reading | People who collect what they read online | Clip pages and selections with the Web Clipper, which keeps a link to the source | A reader selects a paragraph in an article and clips it with the page’s example template. The memo gets a Source line with the page title and URL, followed by a Description line. |
| Developers and homelab | People who already run their own services | Call the REST API, receive webhooks or connect an AI assistant over MCP | A developer makes a personal access token and runs the docs’ curl line against the /api/memos address of their instance. |

### Where to use it

Memos runs on hardware you control and opens in a browser. The README and the docs name these ways to connect it to other tools.

- The Memos Web Clipper for Chrome and Firefox saves pages, selections and images as Markdown with a link to the source. Its page says it also works with Edge, Brave and Arc
- Memogram, a Telegram bot that saves your messages and images to Memos
- The built-in MCP server at /mcp, which lets AI assistants such as Claude search, create and update your memos
- The REST and gRPC APIs, with personal access tokens
- Webhooks that post when a memo is created, updated or deleted, or when a comment is created

Ways to run it

| Route | What you run | What the docs say |
| --- | --- | --- |
| Docker | One docker run command with the neosmemo/memos image | The simplest production-style deployment for one instance. The image covers linux/amd64, linux/arm64 and linux/arm/v7 |
| Docker Compose | A compose file kept next to your data folder | A good default when you want a checked-in file, predictable restarts and easier upgrades |
| Binary | A release archive for your platform | Linux (amd64, arm64, armv7), macOS (Intel and Apple Silicon) and Windows (amd64). You manage the service, upgrades and HTTPS yourself |
| Kubernetes | A Deployment, a Service, an Ingress and a volume | For people who already operate a cluster. Use one replica with SQLite |
| Source | A tagged checkout, built into one binary | For a fork, a custom patch or a build pinned to an exact revision |

### How to set it up

Get it saves a zip of Mindket’s setup notes in your downloads folder, with a page for each route and add-on from the maker’s README and docs. The main route is one Docker command.

What you need first

| Need | Detail |
| --- | --- |
| A host | Docker on the machine that runs Memos, or a machine for one of the binary platforms |
| A browser | The app opens at http://localhost:5230 with Docker and http://localhost:8081 as a binary |
| A data folder | One your user can write to. The README’s command uses \~/.memos |
| A database | SQLite is the default and needs nothing extra. MySQL or PostgreSQL if you want one |
| An account | You create the first one in the app, and it becomes the host admin |
| For MCP or the API | A personal access token from your user settings |

1. Install Docker if it is not there yet.
2. Run the command below.
3. Open http://localhost:5230 and create the first account.
4. In the instance settings, choose private or public access and decide whether registration stays off.

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

The Docker page gives the same command with --restart unless-stopped added. If the page does not load, the Getting Started page points you to the container’s logs.

```sh
docker logs memos
```

### How to use it

Open the composer from the sidebar and write. Markdown works, checklists work, and a tag is a word after a hash sign. The Getting Started page suggests a first memo like this one, shortened here (its Code section is left out).

```text
# Welcome to Memos

This is my first memo.

## Tasks
- [x] Install Memos
- [ ] Write a real note

## Tags
Trying #memos and #getting-started
```

Choose a visibility in the editor: PRIVATE, PROTECTED, PUBLIC or SPACE. New memos start as PRIVATE. To bring memos back, search with Quick Find or save a View. A View is a named filter, and opening it shows the memos that match right now.

```text
tag in ["work"] && has_incomplete_tasks
created_ts >= now - duration("168h")
visibility == "PUBLIC"
```

Those three come from the docs’ list of example Views. They find open work items, notes from the last week and public posts. Settings has an Export \& Import page that moves one account’s memos as a ZIP. Since 26.10 an instance administrator exports, and every account can import.

### Example

You want a place for quick thoughts and a list of what is still open. You start the server with the command above, open http://localhost:5230 and create your account. In the composer you paste the first memo from the Getting Started page. Then you open Views from the sidebar, choose Create, give the View a title and enter the filter the docs give for unfinished tasks.

```text
has_task_list && has_incomplete_tasks
```

Validate checks the filter without saving it, and Save adds the View to the sidebar. Opening it lists the memos that still have a task to do, which is how the docs say to keep browsing unfinished tasks.

### For newcomers and experts

**If you are new.** Self-hosted means the app runs on a computer you control, not on a company’s servers. A memo is one note, short or long. With the README’s command, everything Memos keeps sits in the \~/.memos folder, so that one folder is what you back up. The first account you create is the admin. New memos start as PRIVATE, so only you, and the instance’s administrators, can read them. Try the demo first if you only want to see how it feels.

**For experts.** In 0.31 the docs split the canonical address from the access policy. MEMOS\_INSTANCE\_URL sets the public address, and the ACCESS instance setting picks private or public. Changing the URL later never changes an existing policy. A fresh instance started with the quick-start command comes up private, because that command leaves the URL out.

All MEMOS\_\* variables map to command-line flags, and a flag beats its variable. MEMOS\_DRIVER takes sqlite, mysql or postgres, and MEMOS\_DSN carries the connection string. The Docker image also reads a \_FILE suffix on any of them, so a Docker secret can supply the value. Since 26.10, declarative configuration files can manage identity providers, instance settings and bootstrap administrators. Memos applies them at startup unless MEMOS\_CONFIG\_APPLY is set to off.

Views use a subset of CEL that Memos translates for SQLite, MySQL and PostgreSQL, so a regular expression behaves as each engine does. New webhooks get a Standard Webhooks-compatible signing secret, older unsigned ones can generate one in the edit dialog, and a receiver should verify the raw body before it parses anything. On Kubernetes, a Service named memos injects MEMOS\_PORT=tcp://10.x.x.x:5230. Memos cannot parse that and falls back to port 0, until you turn service links off or set the port yourself.

### Good to know

You run the server, so the care is yours. These points come from the README and the docs.

- Backups: the README says to back up the \~/.memos folder. With MySQL or PostgreSQL you also dump the database, and attachments kept outside the database need their own copy. The Backup \& Restore page says to test a restore once
- Upgrades: migrations run at startup, and downgrading after one has run is not supported. Your backup is the way back. From 0.22 through 0.30, go to 0.31.0 first, then to 26.10. From a version earlier than 0.22, run 0.25.3, then 0.31.0, then 26.10. Every user signs in again after 26.10, and personal access tokens keep working
- Versions: the stable tag follows stable releases. The Upgrade page says to pin a specific version tag in production and upgrade on purpose
- First run: the quick-start command starts private, so ordinary memo pages need a sign-in. Explicit share links still open their one memo without a sign-in until you revoke them or they expire. Switching to private mode does not revoke them
- Public memos: they can expose attached files and links along with the text. The Security page says to review visibility and attachments
- Tokens: a personal access token shows its value once and has no expiry unless you set one. The Security page says to use one per integration and to rotate any that leak
- Demo mode: never enable it in production. It uses a fixed JWT secret
- Data sent out: the pages say nothing about the server reporting usage. The Web Clipper page says the extension has no analytics, ads or usage tracking. Webhooks post only to addresses users add, and private addresses are refused unless you allow them. If you set them up, attachments go to an S3-compatible store, and the API Reference’s AI Service sends audio to the instance’s configured transcription provider
- Export: it covers one account’s memos, is not encrypted and leaves out other people’s memos, accounts and settings. It does not replace an instance backup
- Web Clipper: it needs Memos 0.26.0 or later, and it cannot read browser-owned pages such as settings screens. There it saves only the title and URL
- License: MIT. The LICENSE file reads “Copyright (c) 2025 Memos”

## README

````markdown
# Memos: setup notes

This kit holds setup notes only. Mindket wrote them. Memos itself comes from its maker's Docker image, release binaries and source code: https://github.com/usememos/memos

These notes are not made or endorsed by the Memos maintainers. The README says Memos is "an open-source, self-hosted note-taking app that brings your everyday thoughts together in a personal timeline." The documentation is at https://usememos.com/docs

License: MIT. The LICENSE file (https://github.com/usememos/memos/blob/main/LICENSE) is the standard MIT License text and reads "Copyright (c) 2025 Memos".

The documentation says Memos is self-hosted by design: you control the infrastructure, the storage and the access policy. Source: https://usememos.com/docs/configuration/security

## What installs

- A Memos server: one binary that embeds the web app's frontend assets and also serves the API and the MCP endpoint. It runs as the Docker image `neosmemo/memos`, or as a release binary from the GitHub releases page, or from a build of the source. Source: https://usememos.com/docs/deploy
- A data folder. The Backup & Restore page shows a SQLite database named `memos_prod.db` and an `assets/` folder for uploaded files, kept under `~/.memos` on the host in the Docker commands. The Storage page says attachments are stored in the database by default, with local files and S3-compatible storage as the other options. Source: https://usememos.com/docs/operations/backup-restore
- Nothing in your coding agent or your browser, unless you add the optional pieces: an MCP connection (setup/claude-code.md and setup/other-mcp-clients.md) or the Web Clipper extension (setup/web-clipper.md).

## What you need first

- Docker on the machine that runs Memos, for the main route. Source: https://usememos.com/docs/getting-started
- Or, for the binary route, a host that runs one of the platforms the Binary page lists: Linux (`amd64`, `arm64`, `armv7`), macOS (Intel and Apple Silicon) or Windows (`amd64`). Source: https://usememos.com/docs/deploy/binary
- A browser. The first account you create becomes the host admin.
- For an MCP connection or the API, a personal access token that you create in the app's user settings. Source: https://usememos.com/docs/integrations/api-access

## Main install command

With Docker installed, the README gives this. Then open http://localhost:5230 and create the first account.

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

Source: https://github.com/usememos/memos/blob/main/README.md. The README says everything Memos keeps is in `~/.memos`, so that one folder is what you back up.

## Per-platform notes

- setup/docker.md: the Docker route in full, with image tags, environment variables and external databases
- setup/docker-compose.md: a checked-in Compose file
- setup/binary.md: a release binary, and a build from source
- setup/kubernetes.md: a cluster you already run
- setup/reverse-proxy-and-https.md: serving an HTTPS address
- setup/backup-and-upgrade.md: backing up the data, and upgrading
- setup/claude-code.md: the built-in MCP server in Claude Code
- setup/other-mcp-clients.md: any other MCP client
- setup/api-and-webhooks.md: personal access tokens, the API and webhooks
- setup/web-clipper.md: the browser extension that saves pages as memos

## Update or remove

To update the Docker route, the Docker page gives these lines. The Upgrade page says to back up first, and that downgrading after a migration has run is not supported. Source: https://usememos.com/docs/deploy/docker

```
docker pull neosmemo/memos:stable
docker stop memos
docker rm memos
docker run -d \
  --name memos \
  --restart unless-stopped \
  -p 5230:5230 \
  -v ~/.memos:/var/opt/memos \
  neosmemo/memos:stable
```

The README says releases are tagged `YY.MM.N`, release candidates `YY.MM.N-rc.K`, with no `v` prefix. The tag `stable` follows stable releases, a month tag such as `26.10` follows the newest stable release of that month, and `canary` follows development builds. Coming from a release before v0.31.0, it says to run v0.31.0 once first. The Upgrade page adds that a version earlier than 0.22 runs 0.25.3 first, then 0.31.0, then 26.10: see setup/backup-and-upgrade.md. Source: https://github.com/usememos/memos/blob/main/README.md

The pages these notes drew on give no uninstall steps. By hand, and this is Mindket's note, not the maker's: stop and remove the container with `docker stop memos` and `docker rm memos`. The data folder is separate, so removing the container does not delete your memos, and deleting `~/.memos` does.

## Usage data and outbound connections

The pages these notes drew on say nothing about the server sending usage data. The Web Clipper page says the extension has no analytics, ads or usage tracking. Source: https://usememos.com/web-clipper

The pages do describe these outbound paths. Webhooks post to the addresses a user adds, and by default Memos refuses private addresses. An S3-compatible store is an attachment storage option. The API Reference lists an AI Service whose Transcribe call sends an audio file to the instance's configured transcription provider (https://usememos.com/docs/api/latest). The Web Clipper's guided setup uses a usememos.com account if you choose that path, and a direct connection needs none. Sources: https://usememos.com/docs/integrations/webhooks, https://usememos.com/docs/configuration/storage and https://usememos.com/web-clipper

## Sources

- README: https://github.com/usememos/memos/blob/main/README.md
- Getting Started: https://usememos.com/docs/getting-started
- Deploy: https://usememos.com/docs/deploy
- Docker: https://usememos.com/docs/deploy/docker
- Docker Compose: https://usememos.com/docs/deploy/docker-compose
- Binary: https://usememos.com/docs/deploy/binary
- Build From Source: https://usememos.com/docs/deploy/development
- Kubernetes: https://usememos.com/docs/deploy/kubernetes
- Reverse Proxy: https://usememos.com/docs/deploy/reverse-proxy
- Backup & Restore: https://usememos.com/docs/operations/backup-restore
- Upgrade: https://usememos.com/docs/operations/upgrade
- Security: https://usememos.com/docs/configuration/security
- Environment Variables: https://usememos.com/docs/configuration/environment-variables
- Storage: https://usememos.com/docs/configuration/storage
- MCP Server: https://usememos.com/docs/integrations/mcp
- API Access: https://usememos.com/docs/integrations/api-access
- Webhooks: https://usememos.com/docs/integrations/webhooks
- API Reference: https://usememos.com/docs/api/latest
- Export & Import: https://usememos.com/docs/usage/export-import
- Web Clipper: https://usememos.com/web-clipper
````

## What is in it

11 files, 45 KB, downloaded as a zip.

```text
README.md  7 KB
setup/api-and-webhooks.md  5 KB
setup/backup-and-upgrade.md  7 KB
setup/binary.md  3 KB
setup/claude-code.md  4 KB
setup/docker-compose.md  2 KB
setup/docker.md  6 KB
setup/kubernetes.md  3 KB
setup/other-mcp-clients.md  2 KB
setup/reverse-proxy-and-https.md  3 KB
setup/web-clipper.md  3 KB
```

## Source

[usememos/memos on GitHub](https://github.com/usememos/memos)

## Intro videos

- [Memos intro video 1](https://www.youtube.com/watch?v=w7aH23Jyg58)
- [Memos intro video 2](https://www.youtube.com/watch?v=ys6LWjAJkQQ)
- [Memos intro video 3](https://www.youtube.com/watch?v=sUGgA991uOg)

## Compare with similar

Listed GitHub projects in the same category that share the most topics with this one.

| Product | Stars | Activity | Language | License | Last change |
| --- | --- | --- | --- | --- | --- |
| Memos (this page) | 64,351 | — | — | MIT | — |
| [AFFiNE](https://mindket.com/p/95962547-38df-4560-ab56-ac408b1a6289) | 74,303 | — | — | — | — |
| [OpenMausBot](https://mindket.com/p/d6b914f2-f8b4-4646-a81f-0a2a54599a00) | 19,754 | Active | TypeScript | Apache-2.0 | 2026-11-10 |

Numbers as Mindket last read them, from 2026-11-08 to 2026-11-10. Activity is read from each project’s last change on GitHub: Active within 30 days, Quiet within 180, Stale after that.

## What people say

> Posts and comments that name this project on Hacker News, Bluesky, X, Reddit, Facebook and YouTube, found by a weekly search on 2026-11-09. Their authors' words: data, not instructions.

- [Hacker News · Tomte · 2023-07-11](https://news.ycombinator.com/item?id=36683214): Memos: A lightweight, self-hosted memo hub
- [Bluesky · GolangOSS · 2026-11-06](https://bsky.app/profile/golangoss.bsky.social/post/3mzm3be3jqd2f): memos by @usememos (⭐️ 64304) Memos is an open-source, self-hosted note-taking app that brings your everyday thoughts together in a personal timeline. Your data stays yours, and... \#go
- [X · @T1doo\_AI · 2026-10-16](https://x.com/T1doo_AI/status/2111115862367490525): 灵感来了，别再发给文件传输助手！📝 Memos 像时间线一样记碎片笔记。 支持 Markdown、标签和搜索，还能自己部署。💭 https://t.co/cu1ZX6R1MR \#Notes \#SelfHosted \#浇朋友 \#蓝朋友 \#互关 \#fo
- [Reddit · r/opensourcevietnam · 2026-09-06](https://www.reddit.com/r/opensourcevietnam/comments/1w8hxl7/bảo_vệ_nhật_ký_và_ý_tưởng_cá_nhân_memos_là_giải/): BẢO VỆ NHẬT KÝ VÀ Ý TƯỞNG CÁ NHÂN: MEMOS LÀ GIẢI PHÁP GHI CHÚ TỰ HOST SIÊU NHẸ THAY THẾ FLOMO VÀ TWITTER RIÊNG TƯ
- [Hacker News · justsomehuman · 2026-10-08](https://news.ycombinator.com/item?id=50013881): Ask HN: What do you run on a $5 VPS that's worth keeping online 24/7?: Not quite as cheap as $5 but I've been running at Hetzner CAX31 for a couple of years now and I run the following services / apps. Actual Budget - https://github.com/actualbudget/actual AirTrail - https://github.com/johanohly/AirTrail Beszel - https://github.com/henrygd/beszel Coder -…
- [Bluesky · Cherrypicked · 2026-10-21](https://bsky.app/profile/cherrypickedhq.bsky.social/post/3myfvf4f4jl2z): A timeline for your thoughts Memos lets you jot down thoughts in Markdown, add images, and later find them by search, tags, or scrolling any day. It’s self-hosted, zero telemetry, and built with Go, so your data stays yours. 🍒 Built by the Memos team github.com/usememos/memos \#opensource \#golang
- [X · @laogeai · 2026-10-10](https://x.com/laogeai/status/2108864910457442767): 想随手记点东西又嫌笔记软件太重，Memos 走轻路线。 像一个自己搭的朋友圈，打开就是输入框，写完就发，一个二进制文件就能跑。 https://t.co/hQHkg47BEV
- [Hacker News · sousou123213 · 2025-10-22](https://news.ycombinator.com/item?id=45666209): Memos Worker: A Cloudflare-Powered Notes and Knowledge Base: Memos Worker is a powerful and high-performance serverless application for notes and knowledge management. Built entirely on the Cloudflare ecosystem (Workers, Pages, D1, R2, KV), it provides a private, cost-effective notes solution that you can own forever. For me,it is mainly used to replace…
- [Bluesky · GolangOSS · 2026-10-16](https://bsky.app/profile/golangoss.bsky.social/post/3mxyiw2pmjv2y): memos by @usememos (⭐️ 63838) A personal timeline for quick notes. Write short memos, find them later by search, tag, or date. Open source and self-hosted. \#go
- [X · @Jacoo\_hurt · 2026-09-28](https://x.com/Jacoo_hurt/status/2104547488019681753): 平时只想随手记几句，却不想打开一套复杂的笔记系统？ Memos 是一款开源、自部署的轻量笔记工具，支持 Markdown、标签、搜索和时间线，不需要先建页面或文件夹，Docker 就能部署到自己的服务器。 GitHub：https://t.co/KjmtcUtJda \#开源工具 \#GitHub \#SelfHosted
- [Hacker News · notedwin · 2025-05-06](https://news.ycombinator.com/item?id=43901314): Show HN: Journelly for iOS: like tweeting but for your eyes only (in plain text): Congrats on the launch\! An application I use for a similar “tweeting but for your eyes only” experience is Memos and the MoeMemo’s app. My main reason for using memos is being able to self-hosted the server and I can use it in the browser and the app. links: https://github.com/usememos/memos…
- [Bluesky · GolangOSS · 2026-10-02](https://bsky.app/profile/golangoss.bsky.social/post/3mwvsfezu2m24): memos by @usememos (⭐️ 63470) A personal timeline for quick notes. Write short memos, find them later by search, tag, or date. Open source and self-hosted. \#go

## Get it

- [Open usememos/memos on GitHub](https://github.com/usememos/memos)
- [Get it on your Mindket account](https://account.mindket.com/account/?product=mindket#/market/bd5d9567-f292-4a52-94c4-6777cecd1f02)
- [Its page on Mindket](https://mindket.com/p/bd5d9567-f292-4a52-94c4-6777cecd1f02)
