CLI Usage Examples
This section provides comprehensive examples of how to use the Portfolio Toolkit command-line interface (CLI). The CLI has been built using the Click framework for an intuitive and user-friendly experience.
Installation
Install the package using pip:
pip install portfolio-toolkit
After installation, you can access the CLI directly:
# View available commands
portfolio-toolkit --help
# Check version
portfolio-toolkit --version
Creating Your Portfolio File
Before using the CLI commands, you need to create a portfolio JSON file that describes your investments. For detailed information about the portfolio file format, see Portfolio JSON Format.
Here’s a basic example of a portfolio file:
{
"name": "My Investment Portfolio",
"currency": "USD",
"account": [
{
"date": "2023-01-15",
"type": "deposit",
"amount": 10000,
"currency": "USD"
}
],
"assets": [
{
"ticker": "AAPL",
"transactions": [
{
"date": "2023-01-20",
"type": "buy",
"quantity": 50,
"price": 150.25,
"currency": "USD"
}
]
},
{
"ticker": "MSFT",
"transactions": [
{
"date": "2023-02-10",
"type": "buy",
"quantity": 30,
"price": 280.50,
"currency": "USD"
}
]
}
]
}
Save this as portfolio.json
to use with the examples below.
Available Commands
The CLI is organized around portfolio analysis commands. Here are the main command groups and their usage:
Portfolio Transactions
List and export transaction data from your portfolio.
List asset transactions:
# Show all asset transactions
portfolio-toolkit portfolio transactions portfolio.json
# Export asset transactions to CSV
portfolio-toolkit portfolio transactions portfolio.json --output transactions.csv
List cash transactions:
# Show cash account transactions (deposits, withdrawals)
portfolio-toolkit portfolio transactions portfolio.json --cash
# Export cash transactions to CSV
portfolio-toolkit portfolio transactions portfolio.json --cash --output cash_transactions.csv
Example output:
📊 Portfolio asset transactions
============================================================
ticker date type quantity price currency
AAPL 2023-01-20 buy 50.0 150.25 USD
MSFT 2023-02-10 buy 30.0 280.50 USD
Portfolio Positions
View current portfolio positions and create visualizations.
Show current positions:
# Show positions for a specific date
portfolio-toolkit portfolio positions portfolio.json 2025-07-30
Position visualizations:
# Create a pie chart of current positions
portfolio-toolkit portfolio positions portfolio.json 2025-07-30 --plot
# Group positions by country
portfolio-toolkit portfolio positions portfolio.json 2025-07-30 --country
# Group positions by sector
portfolio-toolkit portfolio positions portfolio.json 2025-07-30 --sector
Example output:
📊 Portfolio Positions as of 2025-07-30
============================================================
Ticker Quantity Current Price Market Value % of Portfolio
AAPL 50 208.62 10,431.00 55.2%
MSFT 30 445.91 13,377.30 44.8%
============================================================
Total Portfolio Value: $23,808.30
Performance Analysis
Analyze portfolio performance across different time periods.
Basic performance analysis:
# Compare returns over the last 4 weeks (default)
portfolio-toolkit portfolio performance portfolio.json
Customized time periods:
# Last 4 weeks (explicit)
portfolio-toolkit portfolio performance portfolio.json --period-type weeks -n 4
# Last 6 months
portfolio-toolkit portfolio performance portfolio.json --period-type months -n 6
# Last 6 quarters
portfolio-toolkit portfolio performance portfolio.json --period-type quarters -n 6
Export performance data:
# Export returns to CSV file
portfolio-toolkit portfolio performance portfolio.json --output performance.csv
Display options:
# Show percentage returns (default)
portfolio-toolkit portfolio performance portfolio.json --display return
# Show absolute position values
portfolio-toolkit portfolio performance portfolio.json --display value
Example output:
📊 Performance Summary - Last 4 Weeks
============================================================
W27 2025 W28 2025 W29 2025 W30 2025
AAPL - 3.33% 2.86% 1.92%
MSFT - -1.25% 4.17% 2.10%
============================================================
Note: Percentage returns vs previous period
Portfolio Evolution
Visualize how your portfolio has evolved over time.
# Plot portfolio evolution chart
portfolio-toolkit portfolio evolution portfolio.json
This command creates a time-series chart showing your portfolio’s value evolution, including:
Total portfolio value over time
Individual asset performance
Cash position changes
Overall return trends
Tax Reporting
Generate tax reports for a specific year.
# Generate tax report for 2025
portfolio-toolkit portfolio tax-report portfolio.json 2025
Example output:
📊 Tax Report for 2025
============================================================
Realized Gains/Losses:
Asset Sale Date Quantity Buy Price Sale Price Gain/Loss
AAPL 2025-06-15 10 150.25 180.50 +302.50
MSFT 2025-09-20 5 280.50 275.00 -27.50
============================================================
Total Realized Gain: +$275.00
Command Reference
Complete command reference with all available options:
portfolio transactions
Usage: portfolio-toolkit portfolio transactions [OPTIONS] FILE
Show portfolio transactions
Options:
--output PATH Save results to CSV file instead of printing to console
--cash Show cash transactions instead of asset transactions
--help Show this message and exit
portfolio positions
Usage: portfolio-toolkit portfolio positions [OPTIONS] FILE DATE
Show portfolio positions for a specific date
Options:
--plot Create pie chart visualization
--country Group positions by country
--sector Group positions by sector
--help Show this message and exit
portfolio performance
Usage: portfolio-toolkit portfolio performance [OPTIONS] FILE
Show performance summary across multiple periods
Options:
--display [return|value] Display mode: returns or values [default: return]
-n, --periods INTEGER Number of periods to analyze [default: 4]
--period-type [weeks|months|quarters|years] Period type [default: weeks]
--output PATH Save results to CSV file
--help Show this message and exit
portfolio evolution
Usage: portfolio-toolkit portfolio evolution [OPTIONS] FILE
Plot portfolio evolution over time
Options:
--help Show this message and exit
portfolio tax-report
Usage: portfolio-toolkit portfolio tax-report [OPTIONS] FILE YEAR
Generate tax report for a specific year
Options:
--help Show this message and exit
Development Usage
For development purposes, you can run commands using the module directly:
# Using the module directly (for development)
python -m portfolio_toolkit.cli.cli portfolio transactions portfolio.json
python -m portfolio_toolkit.cli.cli portfolio positions portfolio.json 2025-07-30
python -m portfolio_toolkit.cli.cli portfolio performance portfolio.json
python -m portfolio_toolkit.cli.cli portfolio tax-report portfolio.json 2025
Common Workflows
Daily Portfolio Check:
# Check current positions
portfolio-toolkit portfolio positions portfolio.json $(date +%Y-%m-%d)
# Check recent performance
portfolio-toolkit portfolio performance portfolio.json --period-type weeks -n 2
Monthly Review:
# Monthly performance analysis
portfolio-toolkit portfolio performance portfolio.json --period-type months -n 6
# Export data for spreadsheet analysis
portfolio-toolkit portfolio transactions portfolio.json --output monthly_transactions.csv
portfolio-toolkit portfolio performance portfolio.json --output monthly_performance.csv
Tax Season Preparation:
# Generate tax report
portfolio-toolkit portfolio tax-report portfolio.json 2025
# Export all transactions for tax software
portfolio-toolkit portfolio transactions portfolio.json --output tax_transactions.csv
Portfolio Analysis Session:
# Comprehensive analysis
portfolio-toolkit portfolio positions portfolio.json $(date +%Y-%m-%d) --plot
portfolio-toolkit portfolio performance portfolio.json --period-type quarters -n 4
portfolio-toolkit portfolio evolution portfolio.json
Getting Help
For more help with any command:
# General help
portfolio-toolkit --help
# Portfolio commands help
portfolio-toolkit portfolio --help
# Specific command help
portfolio-toolkit portfolio transactions --help
portfolio-toolkit portfolio positions --help
portfolio-toolkit portfolio performance --help
Error Handling
The CLI provides helpful error messages for common issues:
File not found:
$ portfolio-toolkit portfolio positions missing.json 2025-07-30
Error: Portfolio file 'missing.json' not found.
Invalid date format:
$ portfolio-toolkit portfolio positions portfolio.json 07-30-2025
Error: Invalid date format. Use YYYY-MM-DD format.
Missing arguments:
$ portfolio-toolkit portfolio positions portfolio.json
Usage: portfolio-toolkit portfolio positions [OPTIONS] FILE DATE
Error: Missing argument 'DATE'.
For more detailed information about portfolio file formats and data structures, see the Portfolio JSON Format documentation.