你可能只需要一个记账软件。
Cent 是一个 完全免费、开源的多人协作记账 Web App,
基于 GitHub 仓库 实现数据同步与版本控制,无需服务器,即可实现跨平台实时同步。
🔗 在线体验:https://cent.linkai.work
💾 开源仓库:https://github.com/glink25/Cent
📖 博客:https://glink25.github.io/tag/Cent/
- 💾 数据完全自持:账本数据保存在你的 GitHub/Gitee 私人仓库/Web DAV中,无需任何第三方服务器。
- 👥 多人协作:通过 GitHub/Gitee Collaborator 功能即可共享账本,实时同步修改。
- 🖼️ 导入导出:自由导入和导出账单数据,摆脱数据焦虑,支持微信/支付宝账单导入
- ⚡️ 增量同步:只上传/下载变更数据,大幅缩短同步时间。
- 📊 丰富的统计分析:支持多维度筛选与走势分析,可自定义分析视图。
- 🏷️ 分类与标签系统:支持二级分类、自定义标签、图标、排序。
- 💰 预算管理:按分类或标签设置预算并实时监控进度。
- 🖼️ 附件支持:可为账单上传图片附件。
- 📱 PWA 支持:可安装到桌面,像原生 App 一样使用,支持 iOS 与 Android。
- 🔒 完全开源:部署成本几乎为零,代码完全可审计、可自建。
Cent 1.1 正式推出,新功能包括快捷指令自动记账、多币种等。
Cent 是一个“纯前端”的 PWA 应用。
除 GitHub/Gitee OAuth 登录外,Cent 不依赖任何后端服务。
了解详情:现在开始将Github作为数据库
- 每个账本(Book)即为一个 GitHub/Gitee 仓库。
- 数据以 JSON 格式存储在仓库中,支持历史版本回滚。
- 通过仓库名识别账本,实现多账本管理。
Cent 内置一套自定义的增量同步策略,仅同步增量差异:
- 首次同步:完整下载数据。
- 后续同步:仅传输新增或修改部分。
- 支持离线缓存与断点续传。
该机制显著提升了同步效率,使得多人协作体验流畅自然。
同步逻辑经过抽象封装,未来将支持:
- 自建服务器
- 网盘(如 Dropbox、OneDrive)
- 本地离线账本
| 功能 | 截图 |
|---|---|
| 二级分类 & 标签管理 | ![]() |
| 自定义标签 | ![]() |
| 统计与分析视图 | ![]() |
| 预算管理 | ![]() |
| GitHub 协作 | ![]() |
- 打开 https://cent.linkai.work
- 使用 GitHub 登录授权
- 新建账本(将自动创建一个仓库)
- 开始记账 🎉
- Fork 本仓库
- 在 Cloudflare Pages 或任意静态托管平台部署
- 在登录界面手动输入 GitHub Token 使用
- 所有账本与数据均存储于你的 GitHub 仓库中
出于安全考虑,self-hosted 方式无法支持 Github/Gitee 一键登录,需要自行在Github/Gitee设置页面生成具有Repo读写权限的token,通过手动输入token功能使用。 Cent使用Cloudflare Workers部署了一个线上鉴权服务,该服务只针对受信任的域名提供服务。如果需要快捷登录服务,可以参考这个项目cent-github-backend项目创建自己的后端服务,并自己申请对应平台的OAuth app。
- ✅ 增量同步核心实现
- ✅ 多人协作账本
- 🚧 自动测试体系
- 🚧 地图支出可视化
- 🚧 更多同步端点(网盘 / 自建服务器)
- 🚧 移动端交互优化
Cent 欢迎所有开发者与用户参与贡献,提交代码前请参考贡献指南:
QQ交流群:861180883
# 克隆项目
git clone https://github.com/glink25/Cent.git
# 安装依赖
pnpm install
# 本地运行
pnpm dev
# 格式校验
pnpm lint本项目采用 Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) 协议。
- 允许共享、改编与再发布
- 必须署名原作者
- 禁止商业使用
- 派生作品须使用相同许可协议
感谢您对本项目的支持!Cent目前仅由单人支持开发,您的捐赠将用于维护和持续开发。
You might only need an accounting software.
Cent is a completely free, open-source, collaborative accounting Web App,
which uses a GitHub Repository for data synchronization and version control, enabling real-time cross-platform sync without a server.
🔗 Live Demo: https://cent.linkai.work
💾 Open Source Repository: https://github.com/glink25/Cent
📖 Blog: https://glink25.github.io/tag/Cent/
- 💾 Fully Self-Contained Data: Ledger data is stored in your private GitHub repository, without any third-party servers.
- 👥 Multi-User Collaboration: Share ledgers and synchronize changes in real-time using the GitHub Collaborator feature.
- ⚡️ Incremental Sync: Only uploads/downloads changed data, significantly reducing sync time.
- 📊 Rich Statistical Analysis: Supports multi-dimensional filtering and trend analysis, with customizable analysis views.
- 🏷️ Category and Tag System: Supports two-level categories, custom tags, icons, and sorting.
- 💰 Budget Management: Set budgets by category or tag and monitor progress in real-time.
- 🖼️ Attachment Support: Allows uploading image attachments for bills.
- 📱 PWA Support: Can be installed to the desktop and used like a native App, supported on iOS and Android.
- 🔒 Completely Open Source: Deployment cost is nearly zero, the code is fully auditable and can be self-hosted.
Cent is a "pure frontend" PWA application.
Apart from GitHub OAuth login, Cent does not rely on any backend services.
- Each ledger (Book) corresponds to a GitHub repository.
- Data is stored in JSON format within the repository, supporting historical version rollback.
- Multi-ledger management is achieved by identifying ledgers via repository names.
Cent incorporates a custom incremental synchronization strategy, only syncing the differential changes:
- Initial Sync: Full data download.
- Subsequent Sync: Only transfers newly added or modified parts.
- Supports offline caching and resume capability.
This mechanism significantly improves sync efficiency, leading to a smooth and natural collaborative experience.
The synchronization logic has been abstracted and encapsulated, with future support planned for:
- Self-hosted Servers
- Cloud Drives (e.g., Dropbox, OneDrive)
- Local Offline Ledgers
| Feature | Screenshot |
|---|---|
| Two-Level Categories & Tag Management | ![]() |
| Custom Tags | ![]() |
| Statistics and Analysis View | ![]() |
| Budget Management | ![]() |
| GitHub Collaboration | ![]() |
- Open https://cent.linkai.work
- Log in and authorize with GitHub
- Create a new ledger (a new repository will be created automatically)
- Start recording transactions 🎉
- Fork this repository
- Deploy on Cloudflare Pages or any static hosting platform
- Manually input your GitHub Token on the login screen to use it
- All ledgers and data are stored in your GitHub repositories
For security reasons, the self-hosted method cannot support GitHub/Gitee one-click-authentication. You will need to manually generate a token with read and write permissions for the repository (Repo) on the Github/Gitee settings page, and use it through the manual token input feature. Cent uses Cloudflare Workers to deploy an online authentication service, which only provides services for trusted domains. If you require a quick login service, you can refer to the project cent-github-backend to create your own backend service and apply for an OAuth app on the corresponding platform yourself.
- ✅ Incremental sync core implementation
- ✅ Multi-user collaborative ledgers
- 🚧 Automated testing system
- 🚧 Map visualization of expenditures
- 🚧 More sync endpoints (Cloud Drives / Self-hosted Servers)
- 🚧 Mobile interaction optimization
Cent welcomes all developers and users to contribute:
# Clone the project
git clone [https://github.com/glink25/Cent.git](https://github.com/glink25/Cent.git)
# Install dependencies
pnpm install
# Run locally
pnpm dev
# Lint
pnpm lint- This project is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) License.
- You are free to share, adapt, and redistribute.
- You must give appropriate credit.
- You may not use the material for commercial purposes.
- If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original.






