FLUTTER ECOSYSTEM

flow-mn/flow

A personal finance tracker app built with love, and Flutter

flow project cover
Stars
494
Forks
70
Last push (UTC)
Sep 13, 2026
Project status
Active
Flow GitHub avatar
GITHUB Organization

Flow ↗

Official org for Flow

LanguagesDartSwiftKotlinC++CMakeRubyCNixShellObjective-C

Technical topics

Dependencies used

Dependency list 76 items

Rankings

Original README

English project snapshot. Visit GitHub for the latest content.

Expand / collapse project README

Flow logo Flow

Buy me a coffee Website  Flow's GitHub repo

Preface

Flow logo Flow is a free, open-source, and beautifully simple expense tracker — built with a focus on great UX, works fully offline, and runs seamlessly across platforms.

Download Flow (beta)

Google Play Store App Store Obtanium Other build files

You can build and run for Linux and macOS. Haven't tested Windows yet[^2]

Supercharge Flow with Eny: AI receipt parser

I also made an AI-based receipt parser. Snap a photo of your receipt (yes, inside Flow), and it'll be added. Check it out at https://eny.gege.mn/

Supercharged by Eny: Parse receipts straight from Flow

Features

  • Simple UX helping you efficiently track your finances
  • Infinite accounts and currencies (including various cryptos)
  • Categories, tags, file attachments, geo tagging (optional)
  • Reflect on your spendings
  • Fully-offline[^1]
  • Full control over your data
    • No trackers, no analytics
    • Fully recoverable backups (ZIP/JSON)
    • Export CSV, PDFs
    • Periodic auto-backups to iCloud
  • Absolutely free (please donate 🥺)
  • URI-based automation

URI-based automation

You can add one or more transactions using flow-mn schema uris.

Check out the supported JSON Schema file in schemas folder.

Currencies are based on the account, so there's no way to specify it at the moment.

Adding single transaction

When adding single transactions, properties must be provided as query params.

{
  "title": "Tous les jours",
  "amount": 42000.00
}

turns into:

flow-mn:///transaction/new?title=Tous+les+jours&amount=42000.00
Adding multiple transactions

When adding multiple transactions, you must provide stringified version of the following as "json" query param.

{
  "t": [
    {
      "title": "Fresh blueberry piece",
      "amount": "13000.00",
      "transactionDate": "2011-12-05",
      "category": "Food",
      "tags": "My fave cafe",
      "accountUuid": "faa6d523-277f-46af-9493-67768e5b48ab",
    },
    {
      "title": "Caffe Mocha ice",
      "amount": "10000.00",
      "transactionDate": "2011-12-05",
      "category": "Drinks"
    }
  ]
}

turns into

flow-mn:///transaction/new?json=%7B%22t%22%3A%5B%7B%22title%22%3A%22Fresh%20blueberry%20piece%22%2C%22amount%22%3A%2213000.00%22%2C%22transactionDate%22%3A%222011-12-05%22%2C%22category%22%3A%22Food%22%7D%2C%7B%22title%22%3A%22Caffe%20Mocha%20ice%22%2C%22amount%22%3A%2210000.00%22%2C%22transactionDate%22%3A%222011-12-05%22%2C%22category%22%3A%22Drinks%22%7D%5D%7D

Development

Please read Contribuition guide, and Code of Conduct before contributing.

Prerequisites

Other:

  • JDK 11 or later if you're gonna build for Android
  • XCode if you're gonna build for iOS/macOS
  • To run tests on your machine, see Testing

Building for Windows, macOS, and Linux-based systems requires the same dependencies as Flutter. Read more on https://docs.flutter.dev/platform-integration

Testing

If you plan to run tests on your machine, ensure you've installed ObjectBox dynamic libraries.

Install ObjectBox dynamic libraries[^3]:

bash <(curl -s https://raw.githubusercontent.com/objectbox/objectbox-dart/main/install.sh)

Run tests with: flutter test

Support Flow

Flow is a personal project developed during my free time, and it generates no income. Consider helping Flow! Here are some suggestions:

Maintaining Flow on the App Store requires a substantial annual fee (see Apple Developer Program), which I currently cover. To ensure Flow's continued existence and future development, your support is greatly appreciated.

Thank you to all the contributors, supporters, testers, and those who contributed indirectly 🤍

List of supported languages

  • Arabic - thanks to Ultrate
  • English
  • French (France)
  • German (Germany) - thanks to MarkusWangler
  • Italian (Italy) - thanks to albertorizzi
  • Mongolian (Mongolia)
  • Russian (Russia)
  • Spanish (Spain)
  • Turkish (Turkiye) - thanks to NoRiskNoViski
  • Ukranian (Ukrain)
  • Czech (Czechia) - thanks to Miloš Koliáš through email

See Translation guide if you want to make Flow available to your language

[^1]: Flow requires internet to download currency exchage rates. Only necessary if you use more than one currencies

[^2]: Will be available on macOS, Windows, and Linux-based systems, but no plan to enhance the UI for desktop experience for now.

[^3]: Please double-check from the official website, may be outdated. Visit https://docs.objectbox.io/getting-started#add-objectbox-to-your-project (make sure to choose Flutter to see the script).