| Crates.io | envelope-cli |
| lib.rs | envelope-cli |
| version | 0.2.6 |
| created_at | 2025-11-28 21:45:32.055046+00 |
| updated_at | 2025-11-30 17:16:25.250459+00 |
| description | Terminal-based zero-based budgeting application |
| homepage | https://github.com/KayleeBeyene/EnvelopeCLI |
| repository | https://github.com/KayleeBeyene/EnvelopeCLI |
| max_upload_size | |
| id | 1956077 |
| size | 1,252,758 |
A terminal-based zero-based budgeting application inspired by YNAB. Every dollar gets a job.
: keycargo install envelope-cli
brew tap KayleeBeyene/tap
brew install envelope-cli
Note: Use
envelope-cli(notenvelope) to avoid conflict with an unrelated package in homebrew-core.
curl -fsSL https://github.com/KayleeBeyene/EnvelopeCLI/releases/latest/download/envelope-installer.sh | sh
irm https://github.com/KayleeBeyene/EnvelopeCLI/releases/latest/download/envelope-installer.ps1 | iex
git clone https://github.com/KayleeBeyene/EnvelopeCLI.git
cd EnvelopeCLI
cargo install --path .
Requires Rust 1.70+
# Initialize with default categories
envelope init
# Create your first account
envelope account create "Checking" --balance 2500.00
# Launch the TUI
envelope tui
envelope account create "Savings" --type savings --balance 5000.00
envelope account create "Visa" --type credit --balance 1200.00
envelope account list # Show all active accounts
envelope account list --all # Include archived accounts
envelope account show "Checking" # View account details
envelope account edit "Checking" --name "Primary Checking"
envelope account archive "Old Account" # Hide without deleting
envelope account unarchive "Old Account"
envelope transaction add "Checking" -50.00 --payee "Grocery Store" --category "Groceries"
envelope transaction list --account "Checking" --limit 20
envelope txn add "Checking" 2000.00 --payee "Employer" --memo "Paycheck"
envelope transfer "Checking" "Savings" 500.00 --memo "Monthly savings"
envelope budget overview # Current month overview
envelope budget overview --period 2025-01 # Specific month
envelope budget assign "Groceries" 400.00 # Assign funds to category
envelope budget move "Dining Out" "Groceries" 50.00 # Move funds between categories
envelope budget rollover # Apply previous month's rollover
envelope budget overspent # List overspent categories
envelope budget periods --count 6 # Show recent budget periods
envelope target set "Rent" 1500.00 --cadence monthly
envelope target set "Car Insurance" 600.00 --cadence yearly
envelope target set "Vacation" 2000.00 --cadence by-date --date 2025-06-01
envelope target list # Show all targets
envelope target show "Rent" # View target details
envelope target auto-fill # Fill budgets from targets
envelope target delete "Rent" # Remove a target
envelope income set 5000.00 # Set expected income for current month
envelope income set 5000.00 --period 2025-01 # Set for specific month
envelope income set 5000.00 --notes "Salary only" # With notes
envelope income show # Show expected income for current month
envelope income show --period 2025-01 # Show for specific month
envelope income compare # Compare expected income vs budgeted
envelope income remove # Remove expected income for current month
envelope category create "Coffee" --group "Wants"
envelope category list
envelope category create-group "Side Hustle"
envelope report budget # Budget overview
envelope report spending --period 2025-01 # Spending by category
envelope report spending --top 5 # Top 5 spending categories
envelope report register "Checking" # Account transaction history
envelope report net-worth # Assets vs liabilities
envelope report register "Checking" --output transactions.csv
envelope export all backup.json --format json --pretty
envelope export all backup.yaml --format yaml
envelope export transactions transactions.csv
envelope export accounts accounts.csv
envelope export allocations budget-history.csv --months 12
envelope export info # Show data summary
envelope import bank-export.csv --account "Checking"
envelope encrypt enable # Enable AES-256-GCM encryption
envelope encrypt status # Check encryption status
envelope encrypt verify # Verify your passphrase
envelope encrypt change-passphrase # Change passphrase
envelope encrypt disable # Remove encryption
envelope backup create # Create manual backup
envelope backup list # List available backups
envelope backup restore <backup-file> # Restore from backup
envelope config # Show configuration and paths
envelope init # Initialize new budget
envelope tui # Launch interactive TUI
envelope --help # Show all commands
| Key | Action |
|---|---|
q |
Quit |
? |
Help dialog |
: |
Command palette |
Tab |
Switch panel focus |
h/l |
Focus sidebar/main panel |
j/k |
Navigate down/up |
1 |
Accounts view |
2 |
Budget view |
3 |
Reports view |
| Key | Action |
|---|---|
a |
Add transaction |
e |
Edit selected transaction |
c |
Toggle cleared status |
Ctrl+d |
Delete transaction |
v |
Multi-select mode |
Space |
Toggle selection (in multi-select) |
g |
Go to top |
G |
Go to bottom |
| Key | Action |
|---|---|
[ / ] |
Previous/next period |
m |
Move funds between categories |
a |
Add category |
A |
Add category group |
Enter |
Edit budget/target for category |
| Key | Action |
|---|---|
a |
Add account |
Enter |
Select account |
A |
Toggle archived accounts |
| Key | Action |
|---|---|
Esc |
Close/cancel |
Enter |
Confirm |
Tab |
Next field |
All data is stored locally in ~/.config/envelope-cli/ (Linux/macOS) or %APPDATA%\envelope-cli\ (Windows):
~/.config/envelope-cli/
├── config.json # Settings and encryption config
├── data/
│ ├── accounts.json # Account definitions
│ ├── categories.json # Category groups and categories
│ ├── allocations.json # Budget allocations per period
│ ├── transactions.json
│ ├── payees.json # Payee rules for auto-categorization
│ └── targets.json # Recurring budget targets
├── audit.log # Change history
└── backups/ # Automatic backups
ENVELOPE_CLI_DATA_DIR environment variable (if set)$XDG_CONFIG_HOME/envelope-cli (if XDG_CONFIG_HOME is set)~/.config/envelope-cli (Linux/macOS default)%APPDATA%\envelope-cli (Windows default)Use envelope config to see the active paths on your system.
src/
├── main.rs # CLI entry point
├── lib.rs # Library root
├── cli/ # CLI command handlers
├── tui/ # Terminal UI (ratatui)
│ ├── app.rs # Application state
│ ├── views/ # Main views (accounts, register, budget)
│ ├── dialogs/ # Modal dialogs
│ └── widgets/ # Reusable UI components
├── models/ # Data models (Account, Transaction, Category, etc.)
├── services/ # Business logic layer
├── storage/ # JSON persistence layer
├── reports/ # Report generation
├── export/ # CSV, JSON, YAML export
├── crypto/ # Encryption (AES-256-GCM, Argon2)
├── backup/ # Backup management
├── audit/ # Audit logging
└── error.rs # Error types
cargo build # Build
cargo test # Run tests
cargo run -- --help # Run with args
cargo clippy # Lint
cargo fmt # Format
MIT License - See LICENSE for details.
Kaylee Beyene (@coderkaylee)