Skip to content

Command Line

brookie edited this page Nov 7, 2026 · 6 revisions

Command Line

Everything is under one command, financial_plan. Run it with pixi run financial_plan … from the financial_planner folder (or directly if installed another way; python -m financial_planner … also works). financial_plan --help and financial_plan <command> --help list the options.

Contents

init

Create a plan folder.

financial_plan init [DIR] [--demo]
Option Meaning
DIR Folder to create (default: the current folder). It may exist but must not already contain config/.
--demo Copy the fictional demo plan instead of the blank template.

start

Run the app and open the browser.

financial_plan start [DIR] [--port 8765] [--no-browser]
Option Meaning
DIR The plan. Without it: the current folder if it's a plan, else the last plan used, else ~/FinancialPlan (created if missing).
--port Port (default 8765). Use another if 8765 is busy.
--no-browser Don't open a browser.

The app runs at http://127.0.0.1:<port>/ until you press Ctrl+C. The plan is remembered for next time.

validate

Check the config and CSVs.

financial_plan validate [DIR]

Prints the number of partners, children, sources, categories and rules, the transaction count, the averaging window and "today", plus warnings (missing files, skipped rows). A config error prints where and what, and exits with status 1.

inspect-csv

Describe a CSV and suggest a sources entry.

financial_plan inspect-csv FILE [--name NAME] [--skip-rows N] [--delimiter ,]

Prints the row count, columns, sample rows and a suggested YAML entry (date column and format, description, amount style and sign, category column). Paste it into config/sources.yaml and check it. See Data Sources.

categorize

Per-category monthly averages.

financial_plan categorize [DIR] [--unmatched]

Prints each category's kind, average, lowest and highest month. --unmatched also lists every transaction no rule matched (it fell to the default category), which is handy for writing rules.

export

Pack the whole plan into one .zip to share.

financial_plan export [DIR] [-o FILE] [--no-state]

Default file name: <title> <date>.zip in the current folder. --no-state leaves out planner edits and saved scenarios.

import

Unpack a shared plan.

financial_plan import FILE [DIR] [--replace]

Default folder: ~/FinancialPlan, or ~/FinancialPlan 2 if that's already a plan. --replace replaces an existing plan there; the old one is kept as a backup folder next to it. Only config/, data/ and the app state are ever unpacked, and unsafe paths are refused.

uninstall

Remove the desktop app and its files.

financial_plan uninstall [--yes]

Lists and removes Financial Planner.app (in /Applications or ~/Applications), the app's support folder (~/Library/Application Support/FinancialPlanner) and the remembered-plan setting, after asking (--yes skips the question). Plans are never removed. Quit the app first. To remove the Python package too: pip uninstall financial-planner.

launcher

Create a double-click launcher.

financial_plan launcher [--plan-dir DIR] [--desktop FOLDER]
System Creates
macOS /Applications/Financial Planner.app (or ~/Applications if that isn't writable): the menu-bar app, using this environment
Linux / Windows A .desktop / .bat shortcut on the Desktop that starts the planner

--plan-dir opens that plan (otherwise the last one used, or the app asks on first launch); --desktop puts the launcher in another folder. See Desktop App.

pixi tasks

From the financial_planner folder:

Task Runs
pixi run demo financial_plan start examples/demo
pixi run start financial_plan start
pixi run -e dev test Python tests
pixi run -e dev web-test Forecast-math tests
pixi run -e dev web-build Type-check and rebuild the web app
pixi run -e dev web-check Type-check only
pixi run -e dev demo-data Regenerate the demo CSVs
pixi run -e dev test-all Both test suites
pixi run -e dev dist-check Build the package into dist/ and check it
pixi run -e dev publish-test / publish Upload to TestPyPI / PyPI (see Releasing)

Clone this wiki locally