Skip to content

Latest commit

 

History

476 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

💰 Zai: personal finance, kept personal

Warning

Zai is in early development. Expect data loss. Features and data models may change without notice. Correct data migration between releases is not guaranteed, and automatic database backup and restore are not implemented yet. Keep independent backups and do not use Zai as the only copy of important data.

📚 Table of contents

Zai (ざい, japanese word for wealth) is a local-first personal finance app for people who want to track their money without cloud sync, telemetry, or bank-login dependencies.

Zai takes significant inspiration from Wealthfolio and Sure, but it is not meant to reproduce either project. It is my own interpretation of what a personal finance app should and could be.

I believe personal finance software should help people understand their money without requiring them to hand their financial history to a third party. Users should stay in control of their data and be able to understand how the app reaches its numbers. Zai is my attempt to build toward that idea from a local-first foundation and discover what becomes possible from there.

Zai is a side project, not a business. It will never be sold or used as a source of income. Monetization is not its goal.

🤖 An agent-driven experiment

Zai is my 100% agent-driven software experiment. I define the product direction, plan work with AI agents, turn requirements into issues, and make the final merge decision. AI agents write and edit every line of code.

I want to test whether entirely AI-written software inevitably becomes low-quality "slop," or can meet high standards through disciplined planning and verification. I chose personal finance because it is a demanding test: sensitive data must stay secure and private, thousands of operations must stay fast, and calculations must remain reliable because even small rounding errors can distort financial data.

These are the standards I want the experiment to meet, not claims about Zai's current maturity. The early-development warning above still applies.

📦 Installation

Official desktop binaries for macOS, Linux, and Windows are available from GitHub Releases. Zai publishes two release channels. Both are built from main through the same checks and artifact pipeline, but they have different release cadences.

Stable

Stable releases are published manually and are the recommended channel for most users. They receive updates less often than Nightly releases and appear on GitHub as full releases named Zai Y.M.D.B. Download the most recent build from the latest Stable release.

"Stable" describes the release channel, not the maturity of Zai or its data format. Zai remains in early development, and the data-loss and migration warning at the top of this README applies to Stable releases too.

Nightly

Nightly releases contain the latest changes from main. A new Nightly is scheduled for 05:00 UTC when changes exist, and maintainers can also trigger one manually. Nightlies appear as prereleases named Zai Nightly Y.M.D.B on the Releases page.

Choose Nightly only if you want to test recent changes and can tolerate more regressions, incomplete behavior, and data loss. Nightly builds are not a safer backup or migration path than Stable builds.

To run Zai from source instead, follow the development instructions below.

🔧 Development

Prerequisites

  • Git
  • Node.js LTS
  • pnpm 10.33.0
  • Rust stable
  • The platform dependencies required by Tauri

Desktop quick start

git clone https://github.com/mastro993/zai.git
cd zai
pnpm install --frozen-lockfile
pnpm dev:tauri

pnpm install also installs the repository’s Lefthook Git hooks.

Local web development

Web mode exists for development and transport verification. The Axum server is restricted to loopback addresses and is not intended for hosted or remote use yet

pnpm dev:web

By default, web mode creates a temporary SQLite directory and removes it during normal shutdown. To keep data between runs:

cp .env.web.example .env.web

Then configure ZAI_HOME with an absolute path in .env.web. Running zai-server directly requires this variable.

💾 Data, privacy and backups

Zai-managed persistent state lives under Zai Home. Desktop defaults to ~/.zai and accepts an absolute ZAI_HOME process override. Web mode requires an absolute ZAI_HOME; its database is {ZAI_HOME}/userdata/zai.db.

The current beta:

  • does not include cloud sync, bank connections, or telemetry;
  • does not encrypt the SQLite database at rest;
  • does not provide automatic full-database backup and restore; and
  • does not guarantee that migrations will preserve existing data between releases.

Back up important source data independently. Never attach a real Zai database, financial statement, or unredacted log to a public issue.

🤝 Contributing

Zai is not ready to accept direct contributions or pull requests because its roadmap and contribution process are not defined yet. For now, contribute only through GitHub issues for bug reports, feature requests, and suggestions. Opening an issue does not authorize a pull request or guarantee implementation.

Read CONTRIBUTING.md for the full policy. By participating, you agree to follow the Code of Conduct. Use synthetic or fully redacted data in issue reports.

🔒 Security

Do not report vulnerabilities through a public issue and do not attach financial records or databases.

Follow the private reporting instructions in SECURITY.md.

About

Local-first personal finance app built with Tauri/Axum

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages