A personal finance management tool written in Rust with an intuitive CLI interface.
- 💵 Track income and expenses
- 📊 View account balance
- 📋 List all transactions
- 🗂️ Categorize transactions
- 💾 SQLite database for reliability
- 🎯 Interactive UI with arrow navigation
- 🚀 Fast and lightweight
./install.sh
cargo install --path .
cargo run
# Start the application (production mode)
finance
# Development mode (with sample data)
cargo run
# Force production mode (if needed)
RUST_ENV=production cargo run
The application automatically detects the running mode:
-
Development Mode: When running with
cargo run
or from the development directory- Uses in-memory database (resets on restart)
- Loads sample data for testing
- Shows development indicator
-
Production Mode: When running installed binary
- Uses persistent SQLite database
- Starts with empty database
- Clean interface without development indicators
- Arrow keys (↑/↓): Navigate options
- Enter: Select option
- Ctrl+C: Exit application
- Rust 1.70+
- Cargo
# Development build
cargo build
# Release build
cargo build --release
cargo test
# With Make
make build-release
make install-local
# With Just (if installed)
just build-release
just install
# Patch version (0.1.0 -> 0.1.1)
make bump-patch
# Minor version (0.1.0 -> 0.2.0)
make bump-minor
# Create packaged release
make release
# Create distribution package
make package
The application uses SQLite for data storage:
- Development: In-memory database (resets on restart)
- Production: Persistent
finance.db
file
make backup-db
- All data is stored locally on your machine
- No data is sent to external servers
- SQLite database is portable and can be backed up easily
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests:
cargo test
- Submit a pull request
MIT License - see LICENSE file for details.
- Language: Rust
- Database: SQLite
- UI: dialoguer for interactive CLI
- Build: Cargo with optimized release profile
- Export to CSV/JSON
- Monthly/yearly reports
- Budget tracking
- Recurring transactions
- Multi-currency support
- Data visualization
For issues or questions, please open an issue on GitHub.
Made with ❤️ in Rust