A beautiful terminal-based German tax calculator using the official BMF (Bundesministerium der Finanzen) API, with support for offline calculation.
SteuerGo is a terminal application written in Go that helps users calculate their German income tax obligations. It primarily uses the official BMF (Federal Ministry of Finance) API to ensure accurate tax calculations based on current German tax laws, but also provides a local calculation option that implements the official tax formulas for offline use.
With its clean, minimalist terminal interface (powered by Bubble Tea), SteuerGo makes it easy to:
- Calculate income tax based on different tax classes (Steuerklasse 1-6)
- View detailed tax breakdowns including income tax and solidarity tax
- See monthly and annual calculations side-by-side
- Visualize the proportion of taxes to net income
- Interactively compare tax rates across different income levels
- Get detailed analysis for any income amount with keyboard navigation
- 🖥️ Clean, intuitive terminal UI
- 🔢 Support for all German tax classes (1-6)
- 📊 Visual breakdown of tax calculations
- 🔄 Real-time calculations via the official BMF API
- 🧮 Offline calculation mode with local implementation of tax formula
- 📝 Detailed tax information on demand
- 📅 Support for recent tax years
- 📊 Interactive tax rate comparison with selectable income levels
- 🎯 Detailed breakdown view for any selected income amount
- ⌨️ Full keyboard navigation with intuitive controls
curl -sSL https://raw.githubusercontent.com/kyco/steuer-go/main/install.sh | bash
This will download the latest release binary for your platform and install it to /usr/local/bin/steuergo
. The script supports macOS (Intel and ARM), Linux, and Windows.
# Clone the repository
git clone https://github.com/kyco/steuer-go.git
cd steuer-go
# Build the application
go build -o steuergo cmd/tax-calculator/main.go
# Run the application
./steuergo
go install github.com/kyco/steuer-go/cmd/tax-calculator@latest
After installation, the application will be available as tax-calculator
. You can rename it to steuergo
if you prefer:
mv $(which tax-calculator) $(dirname $(which tax-calculator))/steuergo
After installation, run the application by typing steuergo
in your terminal:
steuergo
Follow the on-screen instructions:
- Select your tax class using the arrow keys
- Enter your annual income
- Confirm the tax year (default is the current year)
- Press Tab to navigate between fields
- Press Enter on the Calculate button to see your results
In the results screen:
- Press 'd' to toggle detailed tax information
- Press 'c' to compare tax rates across different income levels
- Press 'l' to toggle between online (API) and offline (local) calculation modes
- Press 'b' or 'Esc' to return to the input form
- Use arrow keys to scroll through results if needed
When in comparison mode (press 'c' from results):
- Use ↑/↓ arrow keys to navigate and select different income levels
- Press Enter to view a detailed tax breakdown for the selected income
- Selected items are highlighted with a ▶ indicator
- Press Enter again to return to the comparison list
- Press B to go back to results or Esc to return to main screen
This feature allows you to:
- Compare tax rates across multiple income levels at once
- See detailed breakdowns for any income amount of interest
- Understand how tax obligations change with different income levels
- Visualize tax rate progression with intuitive progress bars
[Coming Soon]
SteuerGo primarily connects to the official BMF API to calculate taxes based on the provided income and tax class. The API returns detailed tax information which is then formatted and displayed in a user-friendly way.
For offline use or when the API is unavailable, SteuerGo can also perform calculations locally by implementing the German tax formula according to the official algorithm published by the BMF. This is based on the XML pseudo-code (PAP - Programmablaufplan) provided by the German tax authorities.
The application is built using:
- Bubble Tea: A powerful TUI framework
- Lip Gloss: For terminal styling
- Go's XML package: For parsing the BMF API responses and tax algorithm definition
- Custom implementation of the official German tax calculation formula
This project is licensed under the MIT License - see the LICENSE file for details.
- The German Federal Ministry of Finance for providing the tax calculation API
- The Charm team for their excellent TUI libraries