@openilink/app-expense
March 30, 2026 · View on GitHub
微信记账本 -- 支持记账、月报和分类统计,纯 SQLite 存储,零外部依赖。
一键安装 -- 前往 OpeniLink Hub 应用市场 搜索「记账」,点击安装即可在微信中使用。
功能亮点
- 快速记账 -- 自然语言输入,AI 自动识别金额、描述和分类
- 月度报表 -- 总支出 + 分类占比,一目了然
- 分类统计 -- 按分类维度查看支出分布
- 模糊搜索 -- 快速检索历史账单
- 零外部依赖 -- 纯 SQLite 存储,无需第三方 API Key
使用方式
安装到 Bot 后,直接用微信对话即可:
自然语言(推荐)
- "午饭花了 35 块"
- "打车 28 元,交通分类"
- "这个月花了多少钱"
命令调用
/add_expense --amount 35 --description 午饭 --category 餐饮
AI 自动调用 -- Hub AI 在多轮对话中会自动判断是否需要调用记账功能,无需手动触发。
AI Tools
| 工具名 | 说明 |
|---|---|
add_expense | 添加一笔支出记录 |
list_expenses | 查询支出记录(按月份或最近条数) |
delete_expense | 删除一笔支出记录 |
monthly_report | 月度支出报表(总支出 + 分类占比) |
category_report | 按分类统计支出 |
search_expenses | 模糊搜索支出记录 |
部署与开发
快速开始
npm install
npm run dev
Docker 部署
docker-compose up -d
环境变量
| 变量名 | 必填 | 默认值 | 说明 |
|---|---|---|---|
HUB_URL | 是 | -- | OpeniLink Hub 服务地址 |
BASE_URL | 是 | -- | 本服务的公网回调地址 |
DB_PATH | 否 | data/expense.db | SQLite 数据库文件路径 |
PORT | 否 | 8095 | HTTP 服务端口 |
API 路由
| 方法 | 路径 | 说明 |
|---|---|---|
POST | /hub/webhook | 接收 Hub 推送的事件 |
GET | /oauth/setup | 启动 OAuth 安装流程 |
GET | /oauth/redirect | OAuth 回调处理 |
POST | /oauth/redirect | 模式 2 直接安装 |
GET | /manifest.json | 返回应用清单 |
GET | /health | 健康检查 |
安全与隐私
本 App 需要存储账单金额、描述和分类。所有数据:
- 严格按用户隔离 -- 每条记录绑定
installation_id+user_id,不同用户之间完全隔离 - 无法跨用户访问 -- 所有查询、删除操作均在 SQL 层面强制过滤用户归属
- 数据存储在 SQLite -- 数据文件位于
data/目录,不上传到任何云端 - 代码完全开源 -- 接受社区审查
如果您对数据隐私有更高要求,建议自行部署:docker compose up -d,所有数据仅存储在您自己的服务器上。
License
MIT