GitHub - kenlasko/monize: 我的坦率地用"氛围编码"打造的个人财务管理工具,替代Microsoft Money和Quicken
GitHub - kenlasko/monize: 我的坦率地用"氛围编码"打造的个人财务管理工具,替代Microsoft Money和Quicken
注意事项
本项目完全由AI编写。我几乎没有做过手动修改。我不是职业程序员,但多年来接触过多种语言。这使我对编程实践有高层次了解,但我并不精通本产品使用的语言。我花了数月时间向Claude Code提示功能、更新、修复和调整。我已采取措施确保在约束条件下尽可能安全。我进行了多次安全审计(包括AI提示和第三方审计),并尽可能实施了最佳安全实践(包括2FA和OIDC支持)。每次发布前必须通过NPM审计和安全扫描。然而,我无法个人保证此代码的安全性。你已受到警告。
一款基于NestJS和Next.js构建的全面个人财务管理应用,旨在替代Microsoft Money和Intuit Quicken。100%使用新鲜、自由放养的Claude Code构建。
个人财务管理生态系统中充斥着各种平台。我尝试过很多,但每一个都有我无法接受的致命缺陷。最终我决定试试自己创建一个符合所有标准的平台,使用"氛围编码"(vibe-coding)——这在自托管社区中是一个贬义词。我只是想看看当前AI能实现什么。结果比我想象的更成功,这也是我将其开源供他人使用的原因。
自1995年以来,我一直是Microsoft Money的狂热用户。那时我大学毕业后第一份真正的工作是在微软做技术支持。我开始用它追踪财务,帮助自己摆脱信用卡债务。它能让我管理财务的方方面面:支票账户、信用卡、贷款、按揭、投资等等。作为90年代的软件,它在自动化方面相当有限,尤其对非美国用户。这迫使我手动将每一笔交易录入Microsoft Money。
这个"特性"帮助我真正了解自己的财务状况。我知道每一分钱去了哪里。从无意外。我可以精确预测未来一年甚至更长时间的财务情况。我坚持了三十多年。是的,即使Microsoft Money自2010年后没有新版本,我仍然在使用。从1995年到今天的每一笔数据都保存在Microsoft Money中。我可以告诉你自1995年以来详细的财务图景。它当然不完美。我只能在一台机器上运行它。没有移动应用或类似的东西。当我出差或旅行回来后,可能需要花上数小时来录入和分类数据。我越来越想找到一个真正的替代品。
我理想中替代MS Money的产品需要具备以下特性:
- 必须支持所有类型的银行和投资账户,包括:
- 支票账户
- 储蓄账户
- 信用卡
- 贷款
- 按揭
- 信贷额度
- 经纪账户
- 资产账户
- 必须支持从QIF(MS Money和Quicken使用的导出格式)导入
- 必须支持通过容器化自托管
- 必须支持多币种
- 必须支持定期拉取货币汇率和股票价格
- 必须支持PostgreSQL作为后端数据库
- 必须提供可用的移动应用或Web界面
由于找不到满足这些标准的产品,我决定创建Monize!经过数周的"氛围编码"和测试,我终于成功将30多年的Microsoft Money数据迁移到Monize,没有任何错误或差异。Microsoft Money终于退休了!
Monize目前运行在我的Kubernetes集群中。
功能特性
- 多种账户类型:支票、储蓄、信用卡、贷款、按揭、信贷额度
- 支持经纪账户的投资账户
- 每个账户支持多币种
- 跟踪余额、信用额度和利率
- 信用卡账单日期:可配置的到期日和结算日(账单周期关闭日期)
- 仪表板上收藏账户并显示信用卡日期指示器
- 账户对账
- 完整的交易跟踪,包含类别和收款人
- 支持复杂交易的分拆交易
- 交易标签,实现灵活的跨类别标注
- 交易对账与清算
- 基于筛选器的批量更新和批量删除操作
- 收款人自动分类规则、通配符模式别名及合并功能
- 多币种交易,自动汇率跟踪
- 从CSV、OFX/QFX和QIF(Quicken和Microsoft Money)导入,智能列自动匹配
- Quicken全文件导入:从单个QIF导出文件导入所有账户、类别和标签
- 数据重置:清除财务数据并重新导入,保留用户账户和设置
- 跟踪股票、债券、ETF和共同基金
- 支持美国和加拿大交易所(NYSE、NASDAQ、TSX、TSXV)
- 通过Yahoo Finance每日更新股价
- 手动价格管理:添加、编辑和删除单个价格条目
- 从交易历史回填价格(当市场数据不可用时使用买入/卖出价)
- 投资交易:买入、卖出、分红、利息、拆分、转账
- 投资组合跟踪,实时估值
- 历史价格回填
- 支持多种货币(USD、CAD、EUR、GBP、JPY、CHF、AUD、CNY等)
- 每日汇率更新
- 自动货币转换用于报表
- 每个账户的货币设置
- 完整的用户界面翻译,包括服务器生成的消息和电子邮件
- 可用语言:英语、德语、西班牙语、法语、意大利语、荷兰语、波兰语、葡萄牙语和巴西葡萄牙语
- 可在登录和注册屏幕以及设置 -> 偏好中选择语言
- 定期付款跟踪(每日、每周、每两周、每月、每季度、每年)
- 自动交易录入选项
- 跳过和覆盖单次事件
- 账单支付历史跟踪
- 内置报表(服务器端聚合):
- 按类别/收款人支出
- 按来源收入
- 月度支出趋势
- 收入 vs 支出
- 现金流
- 同比比较
- 周末 vs 工作日支出
- 支出异常检测
- 税务摘要
- 定期支出
- 账单支付历史
- 未分类交易
- 重复交易查找器
- 净资产报表:历史净资产跟踪,按月快照
- 自定义报表:使用灵活筛选器创建自己的报表
- 可视化图表(饼图、柱状图、折线图、面积图)
- 创建和管理预算,按类别分配
- 跟踪支出与预算目标的对比
- 预算周期快照和历史跟踪
- 预算阈值通知警报
- 自然语言查询财务信息("我上个月在餐饮上花了多少钱?","我的最大支出类别是什么?")
- 多提供商支持:Anthropic (Claude)、OpenAI (GPT)、Ollama (本地模型) 以及任何兼容OpenAI的端点
- 通过服务器发送事件实现实时流式响应
- 6种财务分析工具:交易搜索/聚合、账户余额、按类别支出、收入摘要、净资产历史、期间比较
- 每个用户的提供商配置,API密钥加密存储(AES-256-GCM)
- 使用跟踪,每次请求的Token和成本分析
- 提供商故障转移链,基于优先级排序
- 连接测试,在使用前验证提供商设置
- 建议查询,帮助快速探索财务数据
- MCP(模型上下文协议)服务器,用于与AI工具集成
- 除必要的查询外,财务数据不会被发送到AI提供商