pp-usage
Skill0 starsChanged 3 months agoMITView on GitHub
Reference guide for the pp CLI — how to query Portfolio Performance XML files. Use when the user asks how to use pp, what commands are available, or needs help constructing a pp command.
- Installs packages
In this repository5 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- full-stock-analysisSkill
- market-dataSkill
- portfolio-managementSkill
- quick-stock-analysisSkill
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 2 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 12
When the user asks how to do something, show them the exact command.
- Very specific: line 36
All commands require --file / -f.
- Distinctive: line 136
All transactions across all accounts and portfolios, merged and sorted by date.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
You are a usage guide for pp, a CLI tool for querying Portfolio Performance XML files without a GUI.
When the user asks how to do something, show them the exact command. Be concise and example-driven.
Always use -o json in every command example. JSON output is mandatory — never show table, csv, or tsv examples unless the user explicitly asks about those formats.
Installation
pp is a Go program. Install or update it with:
go install github.com/from68/pp-cli/cmd/pp@latestIt lands in $(go env GOPATH)/bin (usually ~/go/bin) — invoke it by that full path if the
directory is not on PATH. The command is idempotent, so re-running it at the start of a
session is cheap; portfolio-management does exactly that on every run. pp --version prints
pp version dev regardless of the release installed, so use it only to confirm the binary
runs. If go itself is missing, the Go toolchain has to be installed first.
Global Flags
All commands require --file / -f. Output format is controlled by --output / -o.
pp --file <path.xml> -o json <command>Always pass -o json. This ensures structured, parseable output.
Command Reference
pp info
Show a summary of the portfolio file.
pp -f portfolio.xml -o json infoOutput: Version, base currency, count of securities/accounts/portfolios, transaction date range.
pp securities list
List all securities with latest price.
pp -f portfolio.xml -o json securities list
pp -f portfolio.xml -o json securities list --retired # include retired securitiesColumns: Name, ISIN, Ticker, Currency, Price Count, Latest Price, Latest Date
pp securities show <name-or-uuid>
Show a security's details and full price history. Accepts UUID, exact name, or case-insensitive substring.
pp -f portfolio.xml -o json securities show "Apple"
pp -f portfolio.xml -o json securities show "US0378331005"pp accounts list
List all accounts with computed balances.
pp -f portfolio.xml -o json accounts listColumns: Name, Currency, Balance, Note
Balance = DEPOSIT + TRANSFER_IN + SELL + INTEREST + DIVIDENDS − (REMOVAL + TRANSFER_OUT + BUY + INTEREST_CHARGE + FEES)
pp accounts transactions <account-name>
List transactions for a specific account. Accepts UUID or case-insensitive name.
pp -f portfolio.xml -o json accounts transactions "Checking"
pp -f portfolio.xml -o json accounts transactions "Checking" --from 2024-01-01 --to 2024-12-31
pp -f portfolio.xml -o json accounts transactions "Checking" --type BUYFlags:
--from <YYYY-MM-DD>— start date (inclusive)--to <YYYY-MM-DD>— end date (inclusive)--type <TYPE>— filter by transaction type (case-insensitive)
Columns: Date, Type, Amount, Currency, Shares, Security, Note
pp portfolios list
List all portfolios.
pp -f portfolio.xml -o json portfolios listColumns: Name, Reference Account
pp portfolios transactions <portfolio-name>
List transactions for a specific portfolio.
pp -f portfolio.xml -o json portfolios transactions "Main Portfolio"
pp -f portfolio.xml -o json portfolios transactions "Main Portfolio" --from 2024-01-01 --type BUY,SELLFlags:
--from <YYYY-MM-DD>— start date (inclusive)--to <YYYY-MM-DD>— end date (inclusive)--type <TYPE1,TYPE2>— filter by comma-separated transaction types (case-insensitive)
Columns: Date, Type, Shares, Amount, Currency, Security, Note
pp portfolios holdings <portfolio-name>
Show current net share positions (allocation) for a single portfolio. Use this to see what a portfolio holds and its value breakdown.
pp -f portfolio.xml -o json portfolios holdings "Main Portfolio"
pp -f portfolio.xml -o json portfolios holdings "Main Portfolio" --include-zero # include zero/negative positionsColumns: Security, ISIN, Shares, Latest Price, Value, Currency
To see the allocation of a specific portfolio (e.g. how much of each security you hold):
pp -f portfolio.xml -o json portfolios holdings "Main Portfolio"The JSON output includes each position's value and currency, which you can use to compute percentage allocations.
pp transactions
All transactions across all accounts and portfolios, merged and sorted by date.
pp -f portfolio.xml -o json transactions
pp -f portfolio.xml -o json transactions --from 2024-01-01 --to 2024-12-31
pp -f portfolio.xml -o json transactions --type BUY,SELL --security "Apple"Flags:
--from <YYYY-MM-DD>— start date (inclusive)--to <YYYY-MM-DD>— end date (inclusive)--type <TYPE1,TYPE2>— filter by comma-separated transaction types (case-insensitive)--security <name-or-isin>— filter by security name or ISIN (case-insensitive substring)
Columns: Date, Source, Type, Amount, Currency, Shares, Security, Note
pp validate
Validate the portfolio file for integrity issues.
pp -f portfolio.xml -o json validateChecks:
- Unresolved security references
- Negative transaction amounts
- Negative share counts
- Cross-entry consistency (BUY/SELL in portfolio without matching account transaction)
Output: ERROR: and WARN: lines, plus a summary. Exit code 1 on errors.
Quick Reference
pp --file <path> -o json
├── info
├── securities
│ ├── list [--retired]
│ └── show <name-or-uuid>
├── accounts
│ ├── list
│ └── transactions <name> [--from DATE] [--to DATE] [--type TYPE]
├── portfolios
│ ├── list
│ ├── transactions <name> [--from DATE] [--to DATE] [--type TYPES]
│ └── holdings <name> [--include-zero]
├── transactions [--from DATE] [--to DATE] [--type TYPES] [--security QUERY]
└── validateNumber Formats
- Monetary amounts: 2 decimal places (e.g.,
1234.56) - Share quantities: 8 decimal places (e.g.,
10.00000000) - Missing values:
—(em-dash)
Transaction Types
Account: DEPOSIT, REMOVAL, TRANSFER_IN, TRANSFER_OUT, BUY, SELL, INTEREST, INTEREST_CHARGE, DIVIDENDS, FEES
Portfolio: BUY, SELL, TRANSFER_IN, TRANSFER_OUT, DELIVERY_INBOUND, DELIVERY_OUTBOUND
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

