2026年memos-cli 安装与使用教程:将 Memos 笔记同步到本地并支持 AI 语义搜索

memos-cli 安装与使用教程:将 Memos 笔记同步到本地并支持 AI 语义搜索svg xmlns http www w3 org 2000 svg style display none svg

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



 
  
    
     
      
     

Memos 是一款轻量级开源备忘录应用,支持标签、置顶、关联等特性。但它的 Web 界面在搜索和批量操作上有些局限,特别是当你想把笔记内容和 AI 结合使用时,通过 Web API 调用的方式既消耗 token 又依赖网络。

本文介绍 memos-cli —— 一个 Go 实现的 Memos 命令行工具,将远程备忘录同步到本地 SQLite 数据库,提供 CLI 命令行、TUI 终端界面和 AI 对话三种交互方式,支持关键词搜索和向量语义搜索。

  • 操作系统:Windows / Linux / macOS
  • Go 版本:1.24+(仅源码编译需要,下载预编译二进制无需 Go)
  • Memos Server:需要已部署的 Memos 服务端
  • AI 功能(可选):Ollama(本地)或 OpenAI 兼容 API
# 方式一:从 Release 下载预编译二进制(推荐) # https://github.com/cicbyte/memos-cli/releases # 方式二:从源码编译 git clone https://github.com/cicbyte/memos-cli.git cd memos-cli go build -o memos-cli . 

1. 添加服务器

首次使用需要添加 Memos 服务器地址和认证信息:

# 使用用户名和 Token 登录 memos-cli auth login --name my-server --token <your-access-token> # 或指定服务器 URL(默认为 https://demo.usememos.com) memos-cli auth login --name my-server --url https://memos.example.com --token <token> 

查看认证状态:

memos-cli auth status 

2. 同步笔记

将远程备忘录同步到本地 SQLite 数据库:

# 增量同步(首次会全量拉取) memos-cli sync # 全量同步(清空本地数据重新拉取) memos-cli sync --full 

同步完成后,所有笔记存储在本地 SQLite 数据库(~/.cicbyte/memos-cli/db/app.db)中,后续操作直接查本地,无需网络。

3. 命令行操作

# 列出笔记(从本地 DB,支持过滤) memos-cli memo list --limit 20 --tag Go --visibility PRIVATE # 查看单条笔记 memos-cli memo get <uid> # 创建笔记 memos-cli memo create --content "这是一条新笔记" --tag work # 更新笔记 memos-cli memo update <uid> --content "更新后的内容" # 删除笔记 memos-cli memo delete <uid> # 统计概览 memos-cli memo stats 

4. TUI 终端界面

无参数启动进入 Bubbletea TUI 浏览模式:

memos-cli 

TUI 界面支持:浏览笔记列表、查看笔记详情、创建新笔记、搜索、设置。所有数据从本地 SQLite 加载,响应即时。

5. AI 对话

内置 AI 对话功能,自动检索本地笔记作为上下文:

# 单轮对话 memos-cli chat "我上周写了什么关于 Go 的内容?" # 多轮交互式对话 memos-cli chat -i "帮我总结上个月的笔记趋势" # 指定搜索模式 memos-cli chat "有哪些未完成的任务?" --mode db memos-cli chat "关于系统架构设计的相关笔记" --mode vector 

数据流

Memos Server (远程) ↓ REST API memos-cli sync (增量同步 + MD5 去重) ↓ 本地 SQLite (~/.cicbyte/memos-cli/db/app.db) ├── local_memos # 笔记内容 ├── memo_vectors # 向量索引(语义搜索) ├── sync_states # 同步状态 └── ai_conversations # AI 对话历史 

所有命令行操作(list/stats/search)直接查本地 SQLite,不依赖网络。只有 create/update/delete 和 sync 才调用远程 API。

三种交互模式

模式 启动方式 适用场景 CLI 命令 memos-cli memo list 脚本调用、自动化 TUI 界面 memos-cli(无参数) 日常浏览、快速查看 AI 对话 memos-cli chat 语义搜索、内容总结

增量同步机制

同步服务采用分页拉取 + MD5 去重策略:

  1. 分页拉取远程 memo(每页 100 条,通过 nextPageToken 翻页)
  2. 对比 ContentHash(内容 MD5):相同则跳过,不同则插入或更新
  3. 检测远程已删除的 memo(RowStatus=ARCHIVED),标记本地 IsDeleted=true
  4. 下次同步时,远程也消失的 memo 从本地 DB 彻底删除
  5. 同步完成后自动对新增/更新的 memo 建立 Embedding 向量索引
# 查看同步状态 memos-cli sync status # 带详细输出 memos-cli sync --verbose 

搜索模式

memos-cli 提供三种搜索模式,通过 --mode 指定:

模式 说明 原理 auto(默认) AI 自动选择 优先语义搜索,失败则回退关键词 db 关键词搜索 SQLite LIKE 匹配 + 标签 JSON 匹配 + 时间范围 vector 语义搜索 Embedding 向量化 + 余弦相似度

AI Agent 工具

AI 对话采用 Tool Calling 机制,LLM 自动选择合适的工具检索笔记:

工具 功能 数据源 memo_stats 统计概览(总数、标签分布、最近笔记) 本地 SQLite search_memos 关键词 + 标签 + 时间范围搜索 本地 SQLite semantic_search 向量语义搜索 Embedding + SQLite get_memo 按 UID 精确查询单条笔记 本地 SQLite

Agent 最多 5 轮工具调用迭代,每轮检测 LLM 返回的 ToolCalls 并执行,结果格式化为 Markdown 追加到上下文,最终返回带有引用来源的回答。

时间表达式

搜索支持中英文时间表达式:今天昨天上周本月3天前2025-01-15 等。

向量搜索

需要配置 Embedding 服务(默认使用 Ollama 本地模型 nomic-embed-text):

# 查看当前配置 memos-cli config list # 设置 Embedding 模型(如使用其他提供商) memos-cli config set embedding.model text-embedding-3-small memos-cli config set embedding.base_url https://api.openai.com/v1 memos-cli config set embedding.api_key sk-xxx 

同步时自动对新增笔记建立向量索引,无需手动操作。

流式输出

# 流式输出(默认) memos-cli chat "总结最近的笔记趋势" # 保存到文件 memos-cli chat "帮我整理 Go 相关的笔记" --output go-notes.md 

memos-cli 内置 MCP Server,可以让 Claude Code、Cursor 等 AI 工具直接操作本地笔记:

memos-cli mcp server 

注册了 5 个工具:memo_search(关键词搜索)、memo_semantic_search(语义搜索)、memo_get(获取单条)、memo_create(创建笔记)、memo_stats(统计概览)。在 Claude Code 的 MCP 配置中添加 stdio 类型的服务器即可使用。

除了 MCP Server,memos-cli 还提供了一种更轻量的 AI 集成方式——Skills 系统

MCP Server 通过 stdio 协议传输工具定义,需要 AI 工具原生支持 MCP 协议。而 Skills 系统不依赖任何协议,它的原理很简单:把命令用法写成 Markdown 文件,让 AI 直接读后执行 CLI 命令。

skills/memos-cli/ ├── SKILL.md # 技能总入口,描述工具定位和可用命令 └── references/ ├── memo.md # memo CRUD 命令参考 ├── sync-auth.md # 同步和认证命令参考 ├── chat.md # AI 对话命令参考 ├── config.md # 配置管理命令参考 └── mcp.md # MCP Server 配置参考 

这意味着任何支持读取本地文件的 AI 工具都能集成 memos-cli,比如 Cherry Studio

  1. 在 Cherry Studio 中新建一个知识库,将 skills/memos-cli/ 目录下的 SKILL.md 和 references/ 文件导入
  2. 对话时,AI 会根据这些 Skill 文件的指引,直接生成并执行 memos-cli 命令

这种方式的好处:

  • 零协议依赖:不需要 MCP 协议支持,任何能读文件的 AI 都能用
  • 可自定义:Skill 文件是纯 Markdown,可以按需修改命令模板和说明
  • 完全离线:Skill 文件随 memos-cli 一起分发,不需要额外的网络请求

MCP vs Skills 如何选择

维度 MCP Server Skills 集成方式 stdio 协议,需工具原生支持 Markdown 文件,任何 AI 可用 适用工具 Claude Code、Cursor 等 Cherry Studio、ChatGPT 等 配置复杂度 需配置 MCP Server 地址 导入 Markdown 文件即可 功能 自动注册工具,AI 自动调用 AI 根据文档指引执行命令

如果你的 AI 工具支持 MCP,优先使用 MCP Server;如果不支持,用 Skills 同样可以实现完整的 CLI 操作。

支持配置多个 Memos 服务器并快速切换:

# 添加服务器 memos-cli server add work https://memos.example.com --token <token> memos-cli server add personal https://my-memos.com --token <token> # 列出所有服务器 memos-cli server list # 设置默认服务器 memos-cli server default work # 切换服务器(通过 LastServer 记忆上次使用) memos-cli auth login --name personal 

所有配置存储在 ~/.cicbyte/memos-cli/config/config.yaml

# 列出所有配置项 memos-cli config list # 查询单项 memos-cli config get ai.model # 修改配置 memos-cli config set ai.model gemma4:e4b memos-cli config set ai.temperature 0.7 

支持配置的类别:ai.*(模型、温度、最大 token 等)、embedding.*(模型、API 地址等)、log.*(级别、大小、保留天数等)。

组件 选型 说明 CLI 框架 spf13/cobra 子命令组织清晰 TUI 框架 charmbracelet/bubbletea 终端交互界面 HTTP 客户端 go-resty/resty Memos API 通信 + Embedding 请求 数据库 GORM + glebarez/sqlite 纯 Go SQLite,无 CGO 依赖 AI 客户端 sashabaranov/go-openai OpenAI 兼容 API,支持 Ollama/OpenAI/智谱等 MCP Server mark3labs/mcp-go stdio 传输,与 Claude Code 等工具集成 Markdown 渲染 charmbracelet/glamour 终端流式输出渲染

编译后为单文件二进制,零外部运行时依赖。

维度 Memos Web memos-cli 搜索 仅关键词 关键词 + 向量语义搜索 批量操作 不支持 CLI 支持过滤/分页/导出 AI 集成 无 内置 AI 对话 + MCP Server 离线使用 不支持 完全离线(同步后) 数据安全 全在服务器 本地 SQLite 缓存 响应速度 依赖网络 本地 SQLite 即时响应

Q: 支持哪些 AI 提供商?
A: 任何 OpenAI 兼容 API,包括 Ollama(本地免费)、OpenAI、智谱 GLM、DeepSeek 等。通过 config set 配置。

Q: 语义搜索需要联网吗?
A: Embedding 向量化时需要联网(调用 API),但搜索匹配完全在本地 SQLite 中完成,不需要实时联网。

Q: 同步会丢失数据吗?
A: 不会。同步只操作本地 SQLite,不会删除远程数据。sync --full 会清空本地数据重新拉取,但不影响远程。

Q: TUI 在 Windows Terminal 中显示异常怎么办?
A: memos-cli 的 TUI 不使用 Alt Screen 模式,兼容大多数终端。如果遇到显示问题,建议使用 Windows Terminal。

Q: 如何更新到最新版本?
A: 从 Release 下载新二进制替换即可,本地数据库和配置自动兼容。

memos-cli 通过本地 SQLite 缓存 + 增量同步 + 向量搜索三层架构,将 Memos 笔记从“只能通过 Web 查看”变为“本地即查即用、AI 可直接检索”。核心价值:同步一次、永久离线、AI 友好、零额外成本。

  • 项目地址:github.com/cicbyte/memos-cli
  • 安装方式:从 Release 下载预编译二进制,或 go build 编译

小讯
上一篇 2026-04-27 16:59
下一篇 2026-04-27 16:57

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/279470.html