@openilink/app-reminder

March 30, 2026 · View on GitHub

微信定时提醒 -- 支持一次性、重复和 Cron 表达式提醒,零外部依赖,纯 Node.js + SQLite。

一键安装 -- 前往 OpeniLink Hub 应用市场 搜索「提醒」,点击安装即可在微信中使用。

功能亮点

  • 相对时间 -- 支持 5m1h2d 等自然语言时间表达
  • ISO 日期 -- 支持标准 ISO 日期格式精确设定
  • 重复提醒 -- 支持 Cron 表达式定义重复规则
  • 自动调度 -- 每 10 秒检查到期提醒并自动发送
  • 零外部依赖 -- 无需第三方 API Key

使用方式

安装到 Bot 后,直接用微信对话即可:

自然语言(推荐)

  • "5 分钟后提醒我喝水"
  • "每天早上 9 点提醒我打卡"
  • "看看我的提醒列表"

命令调用

  • /create_reminder --content 喝水 --time 5m

AI 自动调用 -- Hub AI 在多轮对话中会自动判断是否需要调用提醒功能,无需手动触发。

AI Tools

工具名说明
create_reminder创建提醒(支持相对时间/ISO 日期/重复 Cron)
list_reminders查看我的待触发提醒
delete_reminder删除指定提醒
clear_reminders清空所有提醒
list_repeat_reminders查看重复提醒
部署与开发

快速开始

npm install
npm run dev

Docker 部署

docker-compose up -d

环境变量

变量名必填默认值说明
HUB_URL--OpeniLink Hub 服务地址
BASE_URL--本服务的公网回调地址
DB_PATHdata/reminder.dbSQLite 数据库文件路径
PORT8094HTTP 服务端口

API 路由

方法路径说明
POST/hub/webhook接收 Hub 推送的事件
GET/oauth/setup启动 OAuth 安装流程
GET/oauth/redirectOAuth 回调处理
POST/oauth/redirect模式 2 安装通知
GET/manifest.json返回应用清单
GET/health健康检查

安全与隐私

本 App 需要存储提醒内容和触发时间。所有数据:

  • 严格按用户隔离 -- 每条记录绑定 installation_id + user_id,不同用户之间完全隔离
  • 无法跨用户访问 -- 所有查询、删除操作均在 SQL 层面强制过滤用户归属
  • 数据存储在 SQLite -- 数据文件位于 data/ 目录,不上传到任何云端
  • 代码完全开源 -- 接受社区审查

如果您对数据隐私有更高要求,建议自行部署:docker compose up -d,所有数据仅存储在您自己的服务器上。

License

MIT