🐝 开源记账App,支持iCloud/自建服务器同步(Supabase/WebDAV/S3),AI智能记账 | Open-source finance tracker with iCloud & self-hosted sync (Supabase/WebDAV/S3), AI-powered bookkeeping, cross-platform, privacy-first
Find a file
2026-02-11 12:13:48 +08:00
.github ci: iOS构建自动选择最新Xcode版本 2026-01-21 22:55:32 +08:00
.vscode feat: 重构云服务架构并支持WebDAV同步 2025-10-29 00:44:41 +08:00
android fix: xcode 26sdk编译后ios 26分享报错的问题 2026-02-01 10:19:34 +08:00
assets Remove extra donation links 2026-02-11 12:13:48 +08:00
demo feat: 扩展AppLink支持并新增快捷指令引导页面 2025-12-13 14:07:47 +08:00
docs fix: 修复月报中的笔数错误 2025-12-02 11:36:56 +08:00
ios feat: 分类图标支持裁剪和转账记录自动迁移 2026-01-12 15:54:13 +08:00
lib refactor: 简化AI全局配置系统并移除冗余字段 2026-01-22 22:00:20 +08:00
packages feat: 支持自定义AI服务商和能力绑定 2026-01-17 18:16:47 +08:00
scripts refactor: 整合i18n管理脚本并优化多语言支持 2025-11-19 00:47:20 +08:00
tool feat: MVP 0.1.0 2025-09-10 14:50:02 +08:00
.gitignore refactor: 重构云同步架构迁移至独立packages 2025-11-11 22:58:50 +08:00
.metadata feat: MVP 0.1.0 2025-09-10 14:50:02 +08:00
analysis_options.yaml feat: MVP 0.1.0 2025-09-10 14:50:02 +08:00
devtools_options.yaml feat: MVP 0.1.0 2025-09-10 14:50:02 +08:00
l10n.yaml feat: 实现应用国际化支持中英文切换 2025-09-21 18:59:38 +08:00
LICENSE fix: 修复月报中的笔数错误 2025-12-02 11:36:56 +08:00
LICENSE_EN fix: 修复月报中的笔数错误 2025-12-02 11:36:56 +08:00
PRIVACY.md docs: 添加隐私政策和应用市场图标 2025-10-26 21:08:37 +08:00
pubspec.lock fix: xcode 26sdk编译后ios 26分享报错的问题 2026-02-01 10:19:34 +08:00
pubspec.yaml fix: xcode 26sdk编译后ios 26分享报错的问题 2026-02-01 10:19:34 +08:00
README.md Remove extra donation links 2026-02-11 12:13:48 +08:00
README_EN.md Remove extra donation links 2026-02-11 12:13:48 +08:00

BeeCount

GitHub stars License Platform Flutter Maintenance

Your Data, Your Control - Open Source Accounting App

Core Advantage: iCloud/Supabase/WebDAV/S3 protocol servers - Your data, Your control


Download on App Store Get it on Google Play Join TestFlight Download Android APK

🌐 Website | 📖 Documentation | 💝 Donate | 🇨🇳 中文


📱 Platform Support

🤖 Android - Google Play | Download APK | Supports Android 5.0+

🍎 iOS - App Store | TestFlight Beta | Supports iOS 15.5+

💡 Search for "BeeCount - Simple Ledger" on App Store or Google Play to download

📱 HarmonyOS - Coming Soon | Supports HarmonyOS 5.0+ | HarmonyOS Repository


💡 Why Choose BeeCount?

🔒 Problems with Traditional Apps

  • Data stored on third-party servers
  • Privacy risks, data may be analyzed
  • Data loss if service shuts down
  • Premium features behind paywalls
  • Forced ads and loan recommendations
  • Closed-source, cannot audit code

BeeCount Advantages

  • Self-hosted, complete data control
  • Open source, auditable code
  • Offline-first, works without network
  • Free for personal use, no ads or paywalls (including core features like auto-billing)
  • Privacy-first, developers cannot access your data
  • Open source code, auditable codebase

A lightweight, open-source, privacy-focused personal finance management and expense tracker app for iOS/Android. Features complete ledger management, income and expense tracking, OCR image recognition, photo billing, voice billing, screenshot auto-billing, account transfers, hierarchical categories, category statistics, chart analysis, data import/export, and iCloud (iOS)/Supabase/WebDAV/S3 protocol (Cloudflare R2/AWS S3/MinIO) cloud sync. Supports multiple languages (Simplified/Traditional Chinese, English) and dark mode. Perfect for privacy-conscious individuals and families to manage daily spending and budget tracking.

📱 Core Features Showcase

Quick Accounting 🤖 AI OCR Recognition Data Import 📊 Data Analysis
📸 View More Screenshots

Data Management

Smart Search Edit Transaction Ledger Management Category Details

Personalization & Management

Profile Category Migration Category Management Personalization

Data Import & Export

Import Confirmation

🌙 Dark Mode

Home-Dark Chart Analysis-Dark Discover-Dark Profile-Dark
AI Chat-Dark

🌟 Key Features

View Key Features

☁️ Self-Hosted Cloud Service - Core Differentiator

This is BeeCount's biggest feature: Complete control over your data!

Solution Best For Features
iCloud iOS Users 🆕 Zero config, native integration, seamless Apple ecosystem sync
Supabase Users without NAS Free tier sufficient, easy setup, cloud-hosted
WebDAV Users with NAS Fully localized data, supports Synology/UGREEN/Nextcloud
S3 Protocol Flexibility seekers 🆕 Supports Cloudflare R2/AWS S3/MinIO, generous free tier

Why Self-Hosted?

  • 🔐 Privacy First: Developers cannot access your data
  • 💰 Cost Effective: Supabase free tier sufficient, WebDAV one-time investment
  • 🛡️ Data Security: No worries about service shutdowns or data breaches
  • 🔓 Open Source: All cloud sync code is open source and auditable

📖 View Cloud Service Setup Guide

🔒 Data Security & Privacy

  • Offline First: Based on local SQLite, works without network
  • Open & Transparent: Open source code, auditable
  • Optional Sync: Works completely without cloud configuration
  • Zero Tracking: No analytics, no ads, no data collection

📊 Complete Accounting Features

🤖 AI Smart Billing

  • 🤖 AI Assistant (New!)

    • Intelligent Conversational Billing: Natural language interaction with smart intent understanding
    • Contextual Memory: Remembers conversation history for continuous dialogue
    • Bill Information Extraction: Intelligently identifies amount, merchant, category and more
    • One-Click Confirmation: Confirm and complete billing after AI extraction
    • Powered by Zhipu GLM-4 large model for complex semantic understanding
  • 📸 OCR Image Recognition / Photo Billing

    • Support camera or album to select payment screenshots
    • AI auto-extracts amount, merchant, category and bill info
    • Dual-engine support: Local TFLite model + GLM cloud model
    • Accurately recognizes Alipay, WeChat Pay, UnionPay and other mainstream payment methods
  • 🎤 Voice Billing

    • Press and hold to speak, release to complete billing
    • GLM voice model intelligently understands natural language
    • Support colloquial expressions like: "Spent 50 on groceries today"
    • Auto-recognizes amount, category, notes and more
  • Screenshot Auto-Billing

    • Android: Accessibility service auto-monitors screenshots, auto-bills after payment
    • iOS: Shortcuts integration, support double-tap back trigger
    • Smart recognition of Alipay and WeChat Pay info
    • Auto-create bills, real-time ledger updates

📝 Basic Billing Features

  • Manual Billing: Income/expense categories, amounts, dates, notes
  • Multi-Ledger Management: Separate management for personal, work, investment
  • Independent Account Management: Support for cash, bank cards, credit cards and other account types, each account tracks balance independently
  • Account Transfer Feature: Support inter-account transfer records, auto-update balances for both accounts
  • Hierarchical Category System: Support parent-child category levels for more detailed transaction classification (choose between flat or hierarchical mode)
  • Tag Management (New!): Add custom tags to transactions, support multiple tags, color markers, flexible categorization and filtering
  • Budget Management (New!): Set monthly total and category budgets, real-time spending progress tracking, overspend alerts
  • Recurring Transactions (New!): Support daily/weekly/monthly/yearly automatic recording, suitable for fixed income/expenses (rent, salary, etc.)
  • Chart Analysis: Monthly reports, category rankings, trend analysis
  • Data Import/Export: CSV format, compatible with mainstream apps
  • Home Screen Widgets: iOS/Android widgets for quick overview of income and expenses

🎨 Personalization & Internationalization

  • Dark Mode: Complete dark theme support, eye-friendly and OLED-optimized
    • Pure black background + theme color accents for minimalist aesthetics
    • All pages, dialogs, and keyboards fully adapted
    • Auto-switch with system or manual setting
  • Theme Customization: Multiple theme colors for personalized style
  • 3 Languages: Simplified Chinese, Traditional Chinese, English
    • Complete UI translation + smart category mapping
    • Localized date/number formats
    • CSV import auto-recognizes multi-language categories

💡 Want to add a new language? Welcome to create an Issue!

☁️ Cloud Backup Configuration (Optional)

📖 Click to view detailed configuration guide

Why Choose Self-Hosted Cloud Service?

  • Data Sovereignty: Data completely stored in servers or cloud platforms you control
  • Privacy Protection: Developers cannot access any of your data
  • Cost Control: Most solutions offer free tiers or one-time purchase options
  • Stable & Reliable: No dependency on third-party hosting services, full control
  • Flexible Choice: Choose the most suitable solution based on your needs

Use Case: iOS users seeking zero-configuration, seamless sync experience

Advantages:

  • Zero Configuration: Works out of the box, no setup required
  • Native Integration: Auto-sync using your Apple ID
  • Privacy Protection: Data stored in your own iCloud Drive
  • Multi-Device Sync: Automatic sync across iPhone and iPad

How to Use:

  1. Ensure your iOS device is signed into iCloud with iCloud Drive enabled
  2. Open BeeCount → Profile → Cloud Service
  3. Select iCloud and start syncing

💡 Note: iCloud sync only supports iOS devices. For cross-platform sync (iOS + Android), please use Supabase or WebDAV.

Use Case: Suitable for users without NAS devices who want to get started quickly

Configuration Steps:

  1. Create Supabase Project

    • Visit supabase.com to register an account
    • Create a new project, select appropriate region
    • Get URL and anon key from project settings
  2. Configure Storage

    • Create a Storage Bucket named beecount-backups in Supabase console
    • Set as Private (uncheck Public bucket)
    • Configure RLS Access Policies: Create 4 policies to ensure users can only access their own data
      • Go to the bucket's Policies tab
      • Create the following 4 policies (each with the same configuration):
        • SELECT: Allow users to read their own backup files
        • INSERT: Allow users to create new backup files
        • UPDATE: Allow users to update their own backup files
        • DELETE: Allow users to delete their own backup files
      • Configuration for each policy:
        • Policy name: Customizable (e.g., Allow user access to own backups)

        • Target roles: Select authenticated

        • Policy definition: Enter the following expression

          ((bucket_id = 'beecount-backups'::text) AND ((storage.foldername(name))[1] = 'users'::text) AND ((storage.foldername(name))[2] = (auth.uid())::text))
          
        • This policy ensures users can only access files under beecount-backups/users/<their-user-id>/ path

  3. App Configuration

    • Open BeeCount → Profile → Cloud Service
    • Tap "Add Custom Cloud Service"
    • Select service type: Supabase
    • Enter your Supabase URL and anon key
    • Save and enable configuration
    • Tap "Login", register/sign in and start syncing

Use Case: For users with NAS devices or private cloud storage

Supported Services:

  • UGREEN Cloud NAS
  • Synology NAS
  • Nextcloud
  • Nutstore WebDAV
  • ownCloud
  • Any server supporting WebDAV protocol

Configuration Steps:

  1. Enable WebDAV Service

    • Enable WebDAV functionality on your NAS or cloud storage platform
    • Note the WebDAV server address (e.g., http://nas.local:5005)
    • Create or use existing user account
  2. Prepare Storage Directory (Optional)

    • Create a BeeCount folder in WebDAV root directory
    • Or use any path (specify during configuration)
  3. App Configuration

    • Open BeeCount → Profile → Cloud Service
    • Tap "Add Custom Cloud Service"
    • Select service type: WebDAV
    • Fill in configuration:
      • WebDAV Server URL: e.g., http://nas.local:5005
      • Username: Your WebDAV username
      • Password: Your WebDAV password
      • Remote Path: Storage path (e.g., /home/BeeCount or /BeeCount)
    • Tap "Test Connection" to verify configuration
    • Save and enable configuration
    • WebDAV requires no additional login, can sync directly after configuration

Common WebDAV Configuration Examples:

UGREEN Cloud NAS:
- URL: http://your-nas-address:5005
- Remote Path: /home/BeeCount

Synology NAS:
- URL: http://your-nas-address:5005 or https://your-domain
- Remote Path: /BeeCount

Nutstore:
- URL: https://dav.jianguoyun.com/dav/
- Remote Path: /BeeCount

Use Case: Users who need flexible cloud provider choice or want to leverage generous free tiers

Supported Services:

  • Cloudflare R2 (Recommended, 10GB free storage)
  • AWS S3 (World's most popular object storage)
  • MinIO (Open-source self-hosted solution)
  • Alibaba Cloud OSS (S3 protocol compatible)
  • Tencent Cloud COS (S3 protocol compatible)
  • Other S3 protocol-compatible object storage services

Advantages:

  • Generous Free Tier: Cloudflare R2 offers 10GB free storage
  • Flexible Choice: Support for multiple cloud providers, easy to switch
  • Standard Protocol: S3 is an industry-standard protocol with excellent compatibility
  • Excellent Performance: CDN acceleration, fast global access

Configuration Steps (Using Cloudflare R2 as Example):

  1. Create R2 Bucket

    • Log in to Cloudflare Dashboard
    • Go to R2 service
    • Create a new bucket, e.g., named beecount-backups
    • Record the bucket name
  2. Get API Credentials

    • On the R2 page, click Manage R2 API Tokens
    • Create a new API Token
    • Select Object Read & Write permissions
    • Record the following information:
      • Access Key ID (access key)
      • Secret Access Key (secret key)
      • Endpoint (e.g., <account-id>.r2.cloudflarestorage.com)
  3. In-App Configuration

    • Open BeeCount → Profile → Cloud Service
    • Click "Add Custom Cloud Service"
    • Select service type: S3 Protocol Storage
    • Fill in configuration:
      • Endpoint: Cloudflare R2 endpoint (without https:// prefix)
      • Region: auto (R2 auto-selects region)
      • Access Key: Your Access Key ID
      • Secret Key: Your Secret Access Key
      • Bucket Name: Created bucket name (e.g., beecount-backups)
      • Use HTTPS: Enable (recommended)
      • Port: Leave empty (use default port)
    • Click "Test Connection" to verify configuration
    • Save and enable configuration
    • S3 requires no additional login, can sync directly after configuration

Other S3 Service Configuration Examples:

Cloudflare R2:
- Endpoint: <account-id>.r2.cloudflarestorage.com
- Region: auto
- Use HTTPS: Yes

AWS S3:
- Endpoint: s3.amazonaws.com
- Region: us-east-1 (fill in according to your bucket region)
- Use HTTPS: Yes

MinIO (Self-hosted):
- Endpoint: minio.example.com
- Region: us-east-1 or auto
- Use HTTPS: Based on your configuration
- Port: 9000 (or custom port)

Alibaba Cloud OSS (S3 Compatible Mode):
- Endpoint: oss-cn-hangzhou.aliyuncs.com
- Region: oss-cn-hangzhou
- Use HTTPS: Yes

💡 Tips:

  • Endpoint address should NOT include http:// or https:// prefix
  • Cloudflare R2 free tier: 10GB storage + 10M Class A operations per month
  • S3 protocol supports cross-platform sync (iOS + Android)

Future Plans

We will continue expanding cloud service support, planning to add:

  • 📦 Google Drive
  • 📦 Dropbox
  • 📦 OneDrive
  • 📦 More...

If you'd like to prioritize support for a specific cloud service, welcome to create a feature request in Issues!


🛠️ Development Guide

View development guide

Tech Stack

  • Flutter 3.27+: Cross-platform UI framework
  • Riverpod: State management solution
  • Drift (SQLite): Local database ORM
  • Supabase: Cloud backup and sync service

Quick Start

# Install dependencies
flutter pub get

# Code generation
dart run build_runner build --delete-conflicting-outputs

# Run app
flutter run --flavor dev

# Build release version
flutter build apk --flavor prod --release

🤝 Contributing

View contribution guidelines

We welcome all forms of contributions!

Quick Start:

  1. Fork this project
  2. Create feature branch (git checkout -b feature/AmazingFeature)
  3. Commit changes (git commit -m 'feat: add some feature')
  4. Push to branch (git push origin feature/AmazingFeature)
  5. Create Pull Request

For detailed standards, please refer to the Complete Contributing Guide.


💬 FAQ

View frequently asked questions

Q: Can I use it normally without configuring cloud services? A: Absolutely! The app uses local storage by default, and all features work normally. You can still export CSV backups at any time.

Q: Should I choose iCloud, Supabase, WebDAV or S3? A:

  • If you're an iOS user and only sync between Apple devices, we recommend iCloud (zero config, native integration)
  • If you need cross-platform sync (iOS + Android), we recommend Supabase or S3 (free, stable, easy to configure)
  • If you have a NAS device or private cloud, we recommend WebDAV (fully localized data)
  • If you want flexible cloud provider choice, we recommend S3 (supports Cloudflare R2/AWS S3/MinIO)
  • All options support complete sync functionality, choose based on your needs

Q: Why can't I upload after configuring WebDAV? A:

  • Check if WebDAV service is enabled and port is correct
  • Verify username and password are correct
  • Some NAS WebDAV requires specific paths for write access (e.g., UGREEN Cloud requires /home/ path)
  • Click "Test Connection" button to view detailed error messages

Q: Why does S3 connection fail? A:

  • Ensure endpoint address does NOT include http:// or https:// prefix
  • Verify Access Key and Secret Key are correct
  • Confirm bucket name spelling is correct
  • Check bucket region matches (AWS S3 requires accurate region, Cloudflare R2 uses auto)
  • Click "Test Connection" button to view detailed error messages

Q: Can I switch back to default mode after configuring custom cloud service? A: Yes, you can switch anytime. The saved custom configuration won't be lost and can be re-enabled.

Q: How to ensure data security? A:

  • Use your own Supabase project, WebDAV server or S3 bucket
  • Regularly export CSV backups to local storage
  • Use strong passwords and enable two-factor authentication (if supported)
  • For WebDAV and S3, recommend using HTTPS for encrypted transmission
  • Keep your S3 Access Key and Secret Key secure

Q: What data formats are supported? A: Currently supports CSV format for import/export, compatible with data formats from most mainstream accounting apps.

Q: How to sync data across multiple devices? A:

  • iCloud: Simply sign in with the same Apple ID on iOS devices, data syncs automatically
  • Supabase: Configure same URL and anon key on all devices, log in with same account
  • WebDAV: Configure same WebDAV server address and credentials on all devices
  • S3: Configure same S3 endpoint, Access Key and bucket name on all devices

💡 More questions? Visit Issues or Discussions


💝 Donate

Why We Need Your Support?

BeeCount is a completely free and open-source project with no ads or paid features. However, to make it available for iOS users, we need an Apple Developer Account ($99/year) to sign the app.

Your donation will be used for:

  • 📱 Renew Apple Developer Account - Keep iOS TestFlight beta accessible ($99/year)
  • 🔧 Support continuous development and maintenance - Keep the project actively developed

Donation Methods

🌍 International

🇨🇳 China

Click to view Alipay/WeChat QR codes
Alipay WeChat Pay
Alipay WeChat Pay

🪙 Cryptocurrency

  • USDT (TRC20): TKBV69B2AoU67p3vDhnJUbMJtZ1DxuUF5C
  • Binance:
Click to view QR code

Binance

📊 Funding Progress

  • 🎯 Goal: $99 (Apple Developer Account annual fee)
  • 💰 Raised: ¥732 (≈ $101)
  • 📈 Progress: 101.67%
Progress: [██████████] 101.67% - 🎉 Goal Achieved!

Completed:

  • Apple Developer Account registration (¥688/year, ≈$95/year)
  • iOS TestFlight public beta launched
  • Lightweight cloud server (¥79/year, ≈$11/year) - For ICP filing
  • Google Play Developer Account registration (¥177, ≈$25, one-time)

Ongoing Costs:

  • 📱 Apple Developer Account renewal: ¥688/year (≈$95/year)
  • ☁️ Lightweight cloud server: ¥79/year (≈$11/year)

Total Annual Cost: ¥767/year (≈$106/year) (+ one-time cost ¥177/≈$25)

All donation fund usage will be transparently disclosed here.

🌟 Special Thanks to Our Supporters

Thank you to the following generous supporters (in chronological order):

💡 Already donated? Click here to submit your info to be featured in the supporters list!

Qiao Rui fishdivinity Shao Ge Te Wen Anonymous birdnofoots Charies 542474846
*Qiao ¥12 *Rui ¥720 fishdivinity ¥100 *Shao ¥15 *Ge ¥6 *Te ¥15 *Wen ¥50 Anonymous ¥50 birdnofoots ¥10 Charies ¥10 542474846 ¥66

📄 Open Source License

View license details

This project is licensed under the Business Source License:

  • Personal Use - Completely Free
  • Learning & Research - Completely Free
  • Open Source Contribution - Welcome
  • Commercial Use - Paid License Required

What is Commercial Use?

Commercial license is required for:

  • Providing this software as part of commercial products or services
  • Using this software in for-profit organizations
  • Developing commercial products based on this software
  • Providing paid cloud services based on this software

For commercial use, please contact us via GitHub Issues.

See LICENSE for details.


Repository Description
BeeCount-Website Website & Documentation
beecount-openharmony HarmonyOS Version
BeeShot App Store Screenshot Generator

🙏 Acknowledgments

Thanks to all friends who have contributed code, suggestions, and feedback to the BeeCount project!

If you have questions or suggestions, feel free to raise them in Issues or participate in discussions at Discussions.

BeeCount 🐝 - Making Accounting Simple and Secure