⚠️ Warning: This project is in early development and may not be fully functional.
A terminal user interface (TUI) for Firefly III personal finance manager. Manage your finances directly from the terminal with an intuitive interface.
- 📊 View and manage transactions, assets, categories, expenses, and revenue accounts
- 🔍 Search and filter transactions
- 💰 Real-time insights with account balances and spending analysis
- 📝 Create transactions directly from the terminal interface
- 🎨 Clean TUI built with Charm's Bubble Tea framework
- Create new transactions with guided forms
- View transaction details and splits
- Navigate between different time periods
- Filter by account, category, or search terms
- Go 1.21 or higher
- Access to a Firefly III instance
- Firefly III API key (How to get an API key)
parm is a cross-platform binary package manager for GitHub releases. This is the easiest way to get started:
-
Install parm (if not already installed):
curl -fsSL https://raw.githubusercontent.com/alxrw/parm/master/scripts/install.sh | sh -
Install ffiii-tui:
parm install ewok/ffiii-tui
-
Initialize configuration:
ffiii-tui init-config -k YOUR_API_KEY -u https://your-firefly-instance.com/api/v1
-
Run the application:
ffiii-tui
To update ffiii-tui later, simply run:
parm update ewok/ffiii-tui-
Clone and build:
git clone https://github.com/yourusername/ffiii-tui cd ffiii-tui go mod tidy go build -
Initialize configuration:
./ffiii-tui init-config -k YOUR_API_KEY -u https://your-firefly-instance.com/api/v1
-
Run the application:
./ffiii-tui
# Start with default config
./ffiii-tui
# Use custom config file
./ffiii-tui --config path/to/your/config.yaml
# Pass API credentials directly
./ffiii-tui -k YOUR_API_KEY -u https://your-firefly-instance.com/api/v1
# Initialize config file
./ffiii-tui init-configThe application uses a YAML configuration file. Generate one with:
./ffiii-tui init-config# Required Firefly III API settings
firefly:
api_key: YOUR_API_KEY # Your Firefly III API token
api_url: https://your-instance.com/api/v1 # API endpoint URL
# Optional UI settings
ui:
full_view: false # Full-width transaction view
# Optional logging
logging:
file: "ffiii-tui.log" # Log file pathffiii-tui/
├── cmd/ # CLI commands
├── internal/
│ ├── firefly/ # Firefly III API client
│ ├── ui/ # TUI components
│ └── logging/ # Logging utilities
├── config.yaml # Configuration file
└── main.go # Entry point
# Install dependencies
go mod tidy
# Run tests
go test ./...
# Build
go build -o ffiii-tui
# Run with debug logging
./ffiii-tui --debugContributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Create new transactions
- Edit existing transactions
- Delete transactions
- Create accounts, categories
- Edit accounts, categories
- Delete accounts, categories
- Advanced filtering and search
- Not only in current period
- Budget management
- Piggy banks
- Subscriptions
- Reporting and charts
| Package | Purpose |
|---|---|
| Bubble Tea | TUI framework |
| Bubbles | TUI components |
| Lip Gloss | Styling |
| Cobra | CLI framework |
| Viper | Configuration management |
| Zap | Logging |
This project is licensed under the Apache-2.0 License - see the LICENSE file for details.





