| Name | moneyflow JSON |
| Version |
0.6.1
JSON |
| download |
| home_page | None |
| Summary | Track your moneyflow - A powerful terminal UI for personal finance management |
| upload_time | 2025-10-30 18:35:12 |
| maintainer | None |
| docs_url | None |
| author | None |
| requires_python | >=3.11 |
| license | MIT License
Copyright (c) 2025 Wes McKinney
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. |
| keywords |
budget
cashflow
finance
monarch-money
personal-finance
terminal
transactions
tui
|
| VCS |
 |
| bugtrack_url |
|
| requirements |
textual
polars
aiohttp
gql
oathtool
fuzzywuzzy
python-Levenshtein
|
| Travis-CI |
No Travis.
|
| coveralls test coverage |
No coveralls.
|
# moneyflow
[](https://pypi.org/project/moneyflow/)
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/MIT)
[](https://github.com/wesm/moneyflow)
**Track your moneyflow from the terminal.**
A keyboard-driven terminal UI for managing personal finance transactions. Built for users who prefer efficiency and
direct control over their financial data.

**Supported Platforms:**
- ✅ **Monarch Money** - Full integration with editing and sync
- ✅ **YNAB** - Full integration with editing and sync
- ✅ **Amazon Purchases** - Import and analyze purchase history
- ✅ **Demo Mode** - Try it without an account
**Documentation:** [moneyflow.dev](https://moneyflow.dev)
---
## Installation
```bash
# Install with pip
pip install moneyflow
# Or run without installing (recommended)
uvx moneyflow
# Or use pipx
pipx install moneyflow
```
---
## Quick Start
```bash
# Try demo mode first (no account needed)
moneyflow --demo
# Connect to Monarch Money or YNAB
moneyflow
# Analyze Amazon purchase history
moneyflow amazon import ~/Downloads/"Your Orders"
moneyflow amazon
# Load only recent data
moneyflow --year 2025
```
**First-time Monarch Money setup:** You'll need your 2FA secret key. See the [Monarch Money setup guide](https://moneyflow.dev/guide/monarch).
**First-time YNAB setup:** You'll need a Personal Access Token from your YNAB account settings. See the [YNAB setup guide](https://moneyflow.dev/guide/ynab).
---
## Key Features
- **Keyboard-driven** - Navigate with `g` to cycle views, `Enter` to drill down, `Escape` to go back
- **Multi-select bulk editing** - Select with `Space`, edit with `m`/`c`/`h`, commit with `w`
- **Drill-down and sub-grouping** - Analyze spending from multiple angles
- **Type-to-search** - Filter transactions as you type with `/`
- **Time navigation** - Switch periods with `t`/`y`/`a` and `←`/`→` arrows
- **Review before commit** - Preview all changes before syncing to backend
- **Encrypted credentials** - AES-128 with PBKDF2 (100,000 iterations)
Full keyboard shortcuts and tutorials: [moneyflow.dev](https://moneyflow.dev)
---
## Common Workflows
**Clean up merchant names:**
1. Press `g` until Merchant view
2. Press `m` on a merchant to rename all transactions
3. Press `w` to review and commit
**Recategorize transactions:**
1. Press `d` for detail view
2. Press `Space` to multi-select transactions
3. Press `c` to change category
4. Press `w` to review and commit
**Analyze spending:**
1. Press `g` to cycle to Category view
2. Press `Enter` on a category to drill down
3. Press `g` to sub-group by merchant or account
4. Press `t` for this month, `←`/`→` to navigate periods
Learn more: [Navigation & Search Guide](https://moneyflow.dev/guide/navigation)
---
## Amazon Mode
Import and analyze your Amazon purchase history:
1. Request "Your Orders" export from Amazon (Account Settings → Privacy)
2. Download and unzip "Your Orders.zip"
3. Import: `moneyflow amazon import ~/Downloads/"Your Orders"`
4. Launch: `moneyflow amazon`
See [Amazon Mode Guide](https://moneyflow.dev/guide/amazon-mode) for details.
---
## Troubleshooting
### Login fails with "Incorrect password"
- Enter your **encryption password** (for moneyflow), not your backend password
- If forgotten: Click "Reset Credentials" or delete `~/.moneyflow/`
### Monarch Money - 2FA not working
- Copy the BASE32 secret (long string), not the QR code
- Get fresh secret: Disable and re-enable 2FA in Monarch Money
### YNAB - Connection fails
- Verify your Personal Access Token is correct
- Token may have expired - generate a new one from YNAB Developer Settings
- Make sure you copied the entire token (no spaces before/after)
- Token is only shown once - if lost, generate a new one
### Terminal displays weird characters
- Use a modern terminal with Unicode support (iTerm2, GNOME Terminal, Windows Terminal)
### Complete reset
```bash
rm -rf ~/.moneyflow/
pip install --upgrade --force-reinstall moneyflow
moneyflow
```
More help: [Troubleshooting Guide](https://moneyflow.dev/reference/troubleshooting)
---
## Documentation
**Full documentation available at [moneyflow.dev](https://moneyflow.dev)**
- [Installation](https://moneyflow.dev/getting-started/installation)
- [Quick Start Tutorial](https://moneyflow.dev/getting-started/quickstart)
- [Navigation & Search](https://moneyflow.dev/guide/navigation)
- [Editing Transactions](https://moneyflow.dev/guide/editing)
- [Keyboard Shortcuts](https://moneyflow.dev/guide/keyboard-shortcuts)
- [Monarch Money Setup](https://moneyflow.dev/guide/monarch)
- [YNAB Setup](https://moneyflow.dev/guide/ynab)
- [Amazon Mode](https://moneyflow.dev/guide/amazon-mode)
---
## Security
- Credentials encrypted with AES-128 using PBKDF2 key derivation (100,000 iterations)
- Encryption password never leaves your machine
- Stored in `~/.moneyflow/credentials.enc` with 600 permissions
- See [SECURITY.md](SECURITY.md) for full details
---
## Contributing
Contributions welcome! See [Contributing Guide](https://moneyflow.dev/development/contributing).
**Development setup:**
```bash
git clone https://github.com/wesm/moneyflow.git
cd moneyflow
uv sync
uv run pytest -v
```
**Code quality checks:**
```bash
uv run pytest -v # Tests
uv run pyright moneyflow/ # Type checking
uv run ruff format moneyflow/ tests/ # Formatting
uv run ruff check moneyflow/ tests/ # Linting
```
**Security reviews:**
All PRs from external contributors are automatically reviewed by Claude for security issues.
See [Security Bot Documentation](.github/SECURITY_BOT.md) for details.
See [Developing moneyflow](https://moneyflow.dev/development/developing) for details.
---
## Acknowledgments
### Monarch Money Integration
This project's Monarch Money backend uses code derived from the [monarchmoney](https://github.com/hammem/monarchmoney)
Python client library by hammem, used under the MIT License.
See [licenses/monarchmoney-LICENSE](licenses/monarchmoney-LICENSE) for details.
Monarch Money® is a trademark of Monarch Money, Inc. This project is independent and not affiliated with, endorsed by,
or officially connected to Monarch Money, Inc.
---
## License
MIT License - see [LICENSE](LICENSE) file for details.
**Disclaimer:** Independent open-source project. Not affiliated with or endorsed by Monarch Money, Inc. or YNAB LLC.
Raw data
{
"_id": null,
"home_page": null,
"name": "moneyflow",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": "Wes McKinney <info@wesmckinney.com>",
"keywords": "budget, cashflow, finance, monarch-money, personal-finance, terminal, transactions, tui",
"author": null,
"author_email": "Wes McKinney <info@wesmckinney.com>",
"download_url": "https://files.pythonhosted.org/packages/a4/28/f19d1d6e9728b95644ba7a7c921b9b192e7e00e27c1db8f1b3de8935571f/moneyflow-0.6.1.tar.gz",
"platform": null,
"description": "# moneyflow\n\n[](https://pypi.org/project/moneyflow/)\n[](https://www.python.org/downloads/)\n[](https://opensource.org/licenses/MIT)\n[](https://github.com/wesm/moneyflow)\n\n**Track your moneyflow from the terminal.**\n\nA keyboard-driven terminal UI for managing personal finance transactions. Built for users who prefer efficiency and\ndirect control over their financial data.\n\n\n\n**Supported Platforms:**\n\n- \u2705 **Monarch Money** - Full integration with editing and sync\n- \u2705 **YNAB** - Full integration with editing and sync\n- \u2705 **Amazon Purchases** - Import and analyze purchase history\n- \u2705 **Demo Mode** - Try it without an account\n\n**Documentation:** [moneyflow.dev](https://moneyflow.dev)\n\n---\n\n## Installation\n\n```bash\n# Install with pip\npip install moneyflow\n\n# Or run without installing (recommended)\nuvx moneyflow\n\n# Or use pipx\npipx install moneyflow\n```\n\n---\n\n## Quick Start\n\n```bash\n# Try demo mode first (no account needed)\nmoneyflow --demo\n\n# Connect to Monarch Money or YNAB\nmoneyflow\n\n# Analyze Amazon purchase history\nmoneyflow amazon import ~/Downloads/\"Your Orders\"\nmoneyflow amazon\n\n# Load only recent data\nmoneyflow --year 2025\n```\n\n**First-time Monarch Money setup:** You'll need your 2FA secret key. See the [Monarch Money setup guide](https://moneyflow.dev/guide/monarch).\n\n**First-time YNAB setup:** You'll need a Personal Access Token from your YNAB account settings. See the [YNAB setup guide](https://moneyflow.dev/guide/ynab).\n\n---\n\n## Key Features\n\n- **Keyboard-driven** - Navigate with `g` to cycle views, `Enter` to drill down, `Escape` to go back\n- **Multi-select bulk editing** - Select with `Space`, edit with `m`/`c`/`h`, commit with `w`\n- **Drill-down and sub-grouping** - Analyze spending from multiple angles\n- **Type-to-search** - Filter transactions as you type with `/`\n- **Time navigation** - Switch periods with `t`/`y`/`a` and `\u2190`/`\u2192` arrows\n- **Review before commit** - Preview all changes before syncing to backend\n- **Encrypted credentials** - AES-128 with PBKDF2 (100,000 iterations)\n\nFull keyboard shortcuts and tutorials: [moneyflow.dev](https://moneyflow.dev)\n\n---\n\n## Common Workflows\n\n**Clean up merchant names:**\n\n1. Press `g` until Merchant view\n2. Press `m` on a merchant to rename all transactions\n3. Press `w` to review and commit\n\n**Recategorize transactions:**\n\n1. Press `d` for detail view\n2. Press `Space` to multi-select transactions\n3. Press `c` to change category\n4. Press `w` to review and commit\n\n**Analyze spending:**\n\n1. Press `g` to cycle to Category view\n2. Press `Enter` on a category to drill down\n3. Press `g` to sub-group by merchant or account\n4. Press `t` for this month, `\u2190`/`\u2192` to navigate periods\n\nLearn more: [Navigation & Search Guide](https://moneyflow.dev/guide/navigation)\n\n---\n\n## Amazon Mode\n\nImport and analyze your Amazon purchase history:\n\n1. Request \"Your Orders\" export from Amazon (Account Settings \u2192 Privacy)\n2. Download and unzip \"Your Orders.zip\"\n3. Import: `moneyflow amazon import ~/Downloads/\"Your Orders\"`\n4. Launch: `moneyflow amazon`\n\nSee [Amazon Mode Guide](https://moneyflow.dev/guide/amazon-mode) for details.\n\n---\n\n## Troubleshooting\n\n### Login fails with \"Incorrect password\"\n\n- Enter your **encryption password** (for moneyflow), not your backend password\n- If forgotten: Click \"Reset Credentials\" or delete `~/.moneyflow/`\n\n### Monarch Money - 2FA not working\n\n- Copy the BASE32 secret (long string), not the QR code\n- Get fresh secret: Disable and re-enable 2FA in Monarch Money\n\n### YNAB - Connection fails\n\n- Verify your Personal Access Token is correct\n- Token may have expired - generate a new one from YNAB Developer Settings\n- Make sure you copied the entire token (no spaces before/after)\n- Token is only shown once - if lost, generate a new one\n\n### Terminal displays weird characters\n\n- Use a modern terminal with Unicode support (iTerm2, GNOME Terminal, Windows Terminal)\n\n### Complete reset\n\n```bash\nrm -rf ~/.moneyflow/\npip install --upgrade --force-reinstall moneyflow\nmoneyflow\n```\n\nMore help: [Troubleshooting Guide](https://moneyflow.dev/reference/troubleshooting)\n\n---\n\n## Documentation\n\n**Full documentation available at [moneyflow.dev](https://moneyflow.dev)**\n\n- [Installation](https://moneyflow.dev/getting-started/installation)\n- [Quick Start Tutorial](https://moneyflow.dev/getting-started/quickstart)\n- [Navigation & Search](https://moneyflow.dev/guide/navigation)\n- [Editing Transactions](https://moneyflow.dev/guide/editing)\n- [Keyboard Shortcuts](https://moneyflow.dev/guide/keyboard-shortcuts)\n- [Monarch Money Setup](https://moneyflow.dev/guide/monarch)\n- [YNAB Setup](https://moneyflow.dev/guide/ynab)\n- [Amazon Mode](https://moneyflow.dev/guide/amazon-mode)\n\n---\n\n## Security\n\n- Credentials encrypted with AES-128 using PBKDF2 key derivation (100,000 iterations)\n- Encryption password never leaves your machine\n- Stored in `~/.moneyflow/credentials.enc` with 600 permissions\n- See [SECURITY.md](SECURITY.md) for full details\n\n---\n\n## Contributing\n\nContributions welcome! See [Contributing Guide](https://moneyflow.dev/development/contributing).\n\n**Development setup:**\n\n```bash\ngit clone https://github.com/wesm/moneyflow.git\ncd moneyflow\nuv sync\nuv run pytest -v\n```\n\n**Code quality checks:**\n\n```bash\nuv run pytest -v # Tests\nuv run pyright moneyflow/ # Type checking\nuv run ruff format moneyflow/ tests/ # Formatting\nuv run ruff check moneyflow/ tests/ # Linting\n```\n\n**Security reviews:**\n\nAll PRs from external contributors are automatically reviewed by Claude for security issues.\nSee [Security Bot Documentation](.github/SECURITY_BOT.md) for details.\n\nSee [Developing moneyflow](https://moneyflow.dev/development/developing) for details.\n\n---\n\n## Acknowledgments\n\n### Monarch Money Integration\n\nThis project's Monarch Money backend uses code derived from the [monarchmoney](https://github.com/hammem/monarchmoney)\nPython client library by hammem, used under the MIT License.\nSee [licenses/monarchmoney-LICENSE](licenses/monarchmoney-LICENSE) for details.\n\nMonarch Money\u00ae is a trademark of Monarch Money, Inc. This project is independent and not affiliated with, endorsed by,\nor officially connected to Monarch Money, Inc.\n\n---\n\n## License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n**Disclaimer:** Independent open-source project. Not affiliated with or endorsed by Monarch Money, Inc. or YNAB LLC.\n",
"bugtrack_url": null,
"license": "MIT License\n \n Copyright (c) 2025 Wes McKinney\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.",
"summary": "Track your moneyflow - A powerful terminal UI for personal finance management",
"version": "0.6.1",
"project_urls": {
"Homepage": "https://github.com/wesm/moneyflow",
"Issues": "https://github.com/wesm/moneyflow/issues",
"Repository": "https://github.com/wesm/moneyflow"
},
"split_keywords": [
"budget",
" cashflow",
" finance",
" monarch-money",
" personal-finance",
" terminal",
" transactions",
" tui"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "7d8ee4825e091877cf81659158f7ec4f869a87c3f7b4bd739caa12b6d84eed9c",
"md5": "49cb4c71083e4802968e33267f6e03dd",
"sha256": "8766397ccd6f049bcfcd0e53fc1af1329137fa4a17d28a031b3c899e2d37b548"
},
"downloads": -1,
"filename": "moneyflow-0.6.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "49cb4c71083e4802968e33267f6e03dd",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 148097,
"upload_time": "2025-10-30T18:35:10",
"upload_time_iso_8601": "2025-10-30T18:35:10.712559Z",
"url": "https://files.pythonhosted.org/packages/7d/8e/e4825e091877cf81659158f7ec4f869a87c3f7b4bd739caa12b6d84eed9c/moneyflow-0.6.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a428f19d1d6e9728b95644ba7a7c921b9b192e7e00e27c1db8f1b3de8935571f",
"md5": "22fb655d7394a7abf0380471e406facf",
"sha256": "8ab79f8863bad84c5cb90ec45d4155f5367e9956ae51aca3ec1a2e6e9914dfb1"
},
"downloads": -1,
"filename": "moneyflow-0.6.1.tar.gz",
"has_sig": false,
"md5_digest": "22fb655d7394a7abf0380471e406facf",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 397039,
"upload_time": "2025-10-30T18:35:12",
"upload_time_iso_8601": "2025-10-30T18:35:12.390803Z",
"url": "https://files.pythonhosted.org/packages/a4/28/f19d1d6e9728b95644ba7a7c921b9b192e7e00e27c1db8f1b3de8935571f/moneyflow-0.6.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-30 18:35:12",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "wesm",
"github_project": "moneyflow",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "textual",
"specs": [
[
">=",
"0.47.0"
]
]
},
{
"name": "polars",
"specs": [
[
">=",
"0.20.0"
]
]
},
{
"name": "aiohttp",
"specs": [
[
">=",
"3.8.4"
]
]
},
{
"name": "gql",
"specs": [
[
">=",
"3.4.0"
]
]
},
{
"name": "oathtool",
"specs": [
[
">=",
"2.3.1"
]
]
},
{
"name": "fuzzywuzzy",
"specs": [
[
">=",
"0.18.0"
]
]
},
{
"name": "python-Levenshtein",
"specs": [
[
">=",
"0.21.0"
]
]
}
],
"lcname": "moneyflow"
}