mem - 个人知识管理 CLI
概述
mem 是一个本地命令行工具,用于管理个人知识、待办事项和日程安排。数据存储在本地 SQLite 数据库中。
数据库位置
- 默认路径:
~/.mem/mem.db
- 环境变量覆盖:
MEM_DB=/path/to/db
核心命令
添加条目
# 添加笔记
mem add --kind note --body "这是一条笔记"
# 添加待办
mem add --kind todo --body "完成报告" --due 2026-01-30
# 添加日程
mem add --kind event --body "团队会议" --event-time "2026-01-26T10:00:00Z"
# 添加带标签的条目
mem add --kind todo --body "紧急任务" --tag work --tag urgent
# JSON 输出
mem add --kind todo --body "测试" --json
参数说明:
-k, --kind: 类型 (note/todo/event),默认 note
-b, --body: 内容(必填)
-p, --priority: 优先级数字
-d, --due: 截止日期 (YYYY-MM-DD)
-e, --event-time: 事件时间 (RFC3339 格式)
-t, --tag: 标签(可重复)
列表与搜索
# 列出所有条目
mem list
# 按类型筛选
mem list --kind todo
# 按状态筛选
mem list --status done
mem list --status trashed
# 按标签筛选
mem list --tag work
# 搜索内容
mem list --search "报告"
# JSON 输出
mem list --json
查看详情
mem show 1
mem show 1 --json
编辑条目
# 修改内容
mem edit 1 --body "更新后的内容"
# 修改类型
mem edit 1 --kind todo
# 设置截止日期
mem edit 1 --due 2026-02-01
# 清除截止日期
mem edit 1 --due ""
状态管理
# 标记完成
mem done 1
# 重新打开
mem reopen 1
# 移入回收站
mem trash 1
# 从回收站恢复
mem restore 1
标签管理
# 添加标签
mem tag add 1 work
# 移除标签
mem tag remove 1 work
# 列出所有标签
mem tag list
日程视图
# 查看未来 7 天
mem agenda
# 查看未来 14 天
mem agenda --days 14
# 指定日期范围
mem agenda --start 2026-01-25 --end 2026-02-01
导出 Markdown
# 输出到终端
mem export
# 导出到文件
mem export --output notes.md
# 按条件导出
mem export --kind todo --status active --output todos.md
高级功能
原生 SQL 查询
# 查询
mem sql "SELECT * FROM entries WHERE kind='todo'"
# 写入操作
mem sql --exec "UPDATE entries SET priority=1 WHERE id=1"
# 从文件执行
mem sql --file script.sql
# JSON 输出
mem sql "SELECT * FROM entries" --json
查看数据库结构
# 列出所有表
mem schema
# 查看表结构
mem schema entries
mem schema tags
mem schema entry_tags
数据库表结构
entries 表
| 字段 |
类型 |
说明 |
| id |
INTEGER |
主键 |
| kind |
TEXT |
note/todo/event |
| body |
TEXT |
内容 |
| status |
TEXT |
active/done/trashed |
| priority |
INTEGER |
优先级 |
| due_date |
TEXT |
截止日期 |
| event_time |
TEXT |
事件时间 |
| created_at |
TEXT |
创建时间 |
| updated_at |
TEXT |
更新时间 |
tags 表
| 字段 |
类型 |
说明 |
| id |
INTEGER |
主键 |
| name |
TEXT |
标签名(唯一) |
entry_tags 表
| 字段 |
类型 |
说明 |
| entry_id |
INTEGER |
条目 ID |
| tag_id |
INTEGER |
标签 ID |
全局选项
--json: 以 JSON 格式输出(适用于所有命令)
--help: 显示帮助信息
常用工作流
每日待办管理
# 添加今日任务
mem add -k todo -b "完成代码审查" -d 2026-01-25 -t work
# 查看今日待办
mem list -k todo -s active
# 完成任务
mem done 1
# 查看已完成
mem list -s done
知识笔记
# 记录笔记
mem add -k note -b "Go 并发模式:使用 channel 进行通信" -t golang -t learning
# 按标签查找
mem list -t golang
# 搜索内容
mem list -q "并发"
日程管理
# 添加会议
mem add -k event -b "项目评审会" -e "2026-01-26T14:00:00+08:00" -t meeting
# 查看本周日程
mem agenda -d 7