25
stars
271
commits
Go
primary language
Sep 7, 2026
updated
A beautiful command-line interface for your Lunch Money account

Manage your finances directly from your terminal with style and efficiency
brew tap rshep3087/lunchtui
brew install --cask lunchtui
Download the latest release from the releases page and extract the binary to a location in your PATH.
go install github.com/Rshep3087/lunchtui@latest
git clone https://github.com/Rshep3087/lunchtui.git
cd lunchtui
go build -o lunchtui
# Set your API token
export LUNCHMONEY_API_TOKEN="your-api-token-here"
# Launch lunchtui
lunchtui
Once lunchtui is running, use these keyboard shortcuts to navigate:
| Key | View | Description |
|---|---|---|
o | Overview | Account balances and financial summary |
t | Transactions | Browse and manage your transactions |
b | Budgets | View budget progress and spending by category |
r | Recurring | Monitor recurring expenses and subscriptions |
g | Configuration | View current configuration settings (sensitive values are masked) |
[ / ] | - | Navigate between previous/next time periods |
s | - | Switch between time period types (month/year) |
? | - | Toggle help menu |
q | - | Quit the application |
# Use a specific API token
lunchtui --token="your-token-here"
# Show debits as negative values
lunchtui --debits-as-negative
# Use a custom configuration file
lunchtui --config /path/to/my-config.toml
# Enable debug logging
lunchtui --debug
# Combine options (flags override config file)
lunchtui --token="your-token" --debits-as-negative --debug
In addition to the interactive TUI interface, lunchtui provides powerful CLI commands for automation and scripting.
lunchtui transaction insertInsert a new transaction directly from the command line.
Usage:
lunchtui transaction insert --payee "Coffee Shop" --amount "4.50" [options]
# Basic transaction
lunchtui transaction insert --payee "Grocery Store" --amount "45.67"
# Transaction with category and notes
lunchtui transaction insert --payee "Gas Station" --amount "35.00" --category 123 --notes "Weekly fill-up"
# Income transaction (negative amount)
lunchtui transaction insert --payee "Freelance Work" --amount "-500.00" --status cleared
# Transaction with tags
lunchtui transaction insert --payee "Restaurant" --amount "25.50" --tags 1 --tags 2
lunchtui categories listList all categories with their IDs and details.
Usage:
# List categories in table format
lunchtui categories list
# List categories in JSON format
lunchtui categories list --output json
lunchtui accounts listList all accounts (both assets and Plaid accounts) with their IDs and details.
Usage:
lunchtui accounts list [options]
All commands support these global flags:
--token - Lunch Money API token (can use LUNCHMONEY_API_TOKEN env var)--debits-as-negative - Show debits as negative numbers--debug - Enable debug loggingUse the --help flag with any command to see detailed usage information:
# General help
lunchtui --help
# Command-specific help
lunchtui transaction --help
lunchtui categories list --help
Lunchtui supports TOML configuration files to set default values for commonly used options. This eliminates the need to specify flags repeatedly.
Configuration file locations (in order of precedence):
lunchtui.toml~/.config/lunchtui/config.toml~/.lunchtui.toml/etc/lunchtui/config.tomlExample configuration file:
# lunchtui.toml
debug = true
token = "your-api-token-here"
debits_as_negative = false
You can also specify a custom config file with --config path/to/config.toml.
For complete configuration documentation, see CONFIG.md
# Option 1: Configuration file
echo 'token = "your-api-token-here"' > lunchtui.toml
# Option 2: Environment variable - will override setting in lunchtui.toml
export LUNCHMONEY_API_TOKEN="your-api-token-here"
# Option 3: Command-line flag - will override config file and env var settings
lunchtui --token="your-api-token-here" user
By default, lunchtui uses the Lunch Money API endpoint configured in the library. If you need to use a different API endpoint (e.g., for testing or custom deployments), you can configure it:
# Option 1: Configuration file
echo 'api_base_url = "https://api.lunchmoney.dev"' >> lunchtui.toml
# Option 2: Environment variable - will override the setting in lunchtui.toml
export LUNCHMONEY_API_BASE_URL="https://api.lunchmoney.dev"
# Option 3: Command-line flag - will override config file and env var settings
lunchtui --api-base-url="https://api.lunchmoney.dev" user
Monitor your spending against budgets with detailed progress tracking
Key Features:
Budget View Information:

Easily track and manage your recurring expenses and subscriptions

Browse through your transactions with powerful filtering and search capabilities
Quickly categorize transactions with an intuitive interface
Contributions are welcome!
This project is licensed under the MIT License - see the LICENSE file for details.
Enjoyed using lunchtui? Give it a ⭐ to show your support!
You can customize the colors used throughout the TUI application by adding a [colors] section to your configuration file. Colors can be specified using either hex values (e.g., "#ff0000") or ANSI color codes (e.g., "21").
| Setting | Default | Description |
|---|---|---|
primary | "#ffd644" | Primary accent color (highlights, selected items, key bindings) |
error | "#ff0000" | Error messages and failed transactions |
success | "#22ba46" | Successful/cleared transactions and positive values |
warning | "#e05951" | Uncleared transactions and warnings |
muted | "#7f7d78" | Pending transactions and secondary text |
income | "#00ff00" | Positive income values |
expense | "#ff0000" | Negative expense values |
border | "#7D56F4" | Borders and separators |
background | "#7D56F4" | Highlighted backgrounds |
text | "#FAFAFA" | Primary text |
secondary_text | "#888888" | Less important text and separators |
[colors]
primary = "21" # ANSI blue instead of default yellow
error = "#ff5555" # Slightly lighter red
success = "28" # ANSI green
warning = "#ff8800" # Orange instead of red
muted = "240" # ANSI dark gray
income = "#00cc00" # Darker green
expense = "#cc0000" # Darker red
border = "27" # ANSI bright blue
background = "54" # ANSI purple
text = "#ffffff" # Pure white
secondary_text = "245" # ANSI light gray
"#ff0000" for red"21" for bright blue
The application will fall back to default colors if any color value is invalid or missing.
Go
100.0%
25
stars
271
commits
Go
primary language
Sep 7, 2026
updated
A beautiful command-line interface for your Lunch Money account

Manage your finances directly from your terminal with style and efficiency
brew tap rshep3087/lunchtui
brew install --cask lunchtui
Download the latest release from the releases page and extract the binary to a location in your PATH.
go install github.com/Rshep3087/lunchtui@latest
git clone https://github.com/Rshep3087/lunchtui.git
cd lunchtui
go build -o lunchtui
# Set your API token
export LUNCHMONEY_API_TOKEN="your-api-token-here"
# Launch lunchtui
lunchtui
Once lunchtui is running, use these keyboard shortcuts to navigate:
| Key | View | Description |
|---|---|---|
o | Overview | Account balances and financial summary |
t | Transactions | Browse and manage your transactions |
b | Budgets | View budget progress and spending by category |
r | Recurring | Monitor recurring expenses and subscriptions |
g | Configuration | View current configuration settings (sensitive values are masked) |
[ / ] | - | Navigate between previous/next time periods |
s | - | Switch between time period types (month/year) |
? | - | Toggle help menu |
q | - | Quit the application |
# Use a specific API token
lunchtui --token="your-token-here"
# Show debits as negative values
lunchtui --debits-as-negative
# Use a custom configuration file
lunchtui --config /path/to/my-config.toml
# Enable debug logging
lunchtui --debug
# Combine options (flags override config file)
lunchtui --token="your-token" --debits-as-negative --debug
In addition to the interactive TUI interface, lunchtui provides powerful CLI commands for automation and scripting.
lunchtui transaction insertInsert a new transaction directly from the command line.
Usage:
lunchtui transaction insert --payee "Coffee Shop" --amount "4.50" [options]
# Basic transaction
lunchtui transaction insert --payee "Grocery Store" --amount "45.67"
# Transaction with category and notes
lunchtui transaction insert --payee "Gas Station" --amount "35.00" --category 123 --notes "Weekly fill-up"
# Income transaction (negative amount)
lunchtui transaction insert --payee "Freelance Work" --amount "-500.00" --status cleared
# Transaction with tags
lunchtui transaction insert --payee "Restaurant" --amount "25.50" --tags 1 --tags 2
lunchtui categories listList all categories with their IDs and details.
Usage:
# List categories in table format
lunchtui categories list
# List categories in JSON format
lunchtui categories list --output json
lunchtui accounts listList all accounts (both assets and Plaid accounts) with their IDs and details.
Usage:
lunchtui accounts list [options]
All commands support these global flags:
--token - Lunch Money API token (can use LUNCHMONEY_API_TOKEN env var)--debits-as-negative - Show debits as negative numbers--debug - Enable debug loggingUse the --help flag with any command to see detailed usage information:
# General help
lunchtui --help
# Command-specific help
lunchtui transaction --help
lunchtui categories list --help
Lunchtui supports TOML configuration files to set default values for commonly used options. This eliminates the need to specify flags repeatedly.
Configuration file locations (in order of precedence):
lunchtui.toml~/.config/lunchtui/config.toml~/.lunchtui.toml/etc/lunchtui/config.tomlExample configuration file:
# lunchtui.toml
debug = true
token = "your-api-token-here"
debits_as_negative = false
You can also specify a custom config file with --config path/to/config.toml.
For complete configuration documentation, see CONFIG.md
# Option 1: Configuration file
echo 'token = "your-api-token-here"' > lunchtui.toml
# Option 2: Environment variable - will override setting in lunchtui.toml
export LUNCHMONEY_API_TOKEN="your-api-token-here"
# Option 3: Command-line flag - will override config file and env var settings
lunchtui --token="your-api-token-here" user
By default, lunchtui uses the Lunch Money API endpoint configured in the library. If you need to use a different API endpoint (e.g., for testing or custom deployments), you can configure it:
# Option 1: Configuration file
echo 'api_base_url = "https://api.lunchmoney.dev"' >> lunchtui.toml
# Option 2: Environment variable - will override the setting in lunchtui.toml
export LUNCHMONEY_API_BASE_URL="https://api.lunchmoney.dev"
# Option 3: Command-line flag - will override config file and env var settings
lunchtui --api-base-url="https://api.lunchmoney.dev" user
Monitor your spending against budgets with detailed progress tracking
Key Features:
Budget View Information:

Easily track and manage your recurring expenses and subscriptions

Browse through your transactions with powerful filtering and search capabilities
Quickly categorize transactions with an intuitive interface
Contributions are welcome!
This project is licensed under the MIT License - see the LICENSE file for details.
Enjoyed using lunchtui? Give it a ⭐ to show your support!
You can customize the colors used throughout the TUI application by adding a [colors] section to your configuration file. Colors can be specified using either hex values (e.g., "#ff0000") or ANSI color codes (e.g., "21").
| Setting | Default | Description |
|---|---|---|
primary | "#ffd644" | Primary accent color (highlights, selected items, key bindings) |
error | "#ff0000" | Error messages and failed transactions |
success | "#22ba46" | Successful/cleared transactions and positive values |
warning | "#e05951" | Uncleared transactions and warnings |
muted | "#7f7d78" | Pending transactions and secondary text |
income | "#00ff00" | Positive income values |
expense | "#ff0000" | Negative expense values |
border | "#7D56F4" | Borders and separators |
background | "#7D56F4" | Highlighted backgrounds |
text | "#FAFAFA" | Primary text |
secondary_text | "#888888" | Less important text and separators |
[colors]
primary = "21" # ANSI blue instead of default yellow
error = "#ff5555" # Slightly lighter red
success = "28" # ANSI green
warning = "#ff8800" # Orange instead of red
muted = "240" # ANSI dark gray
income = "#00cc00" # Darker green
expense = "#cc0000" # Darker red
border = "27" # ANSI bright blue
background = "54" # ANSI purple
text = "#ffffff" # Pure white
secondary_text = "245" # ANSI light gray
"#ff0000" for red"21" for bright blue
The application will fall back to default colors if any color value is invalid or missing.
Go
100.0%