Transactions

Transactions are the source of truth for your portfolio. Holdings and average cost are derived from them. There is no separate holdings table to keep in sync.

Lists all transactions with their running average cost after each entry. Pass a ticker to filter to a single holding. The ID column is used when editing or deleting a specific record.
$firma show txns TSLA
IDDATETYPESHARESPRICETOTALAVG COST
#862026-04-08buy5$351.69$1,758.43$245.68
#82026-04-01buy5$354.75$1,773.75$244.24
#392026-03-25buy8$387.85$3,102.80$242.72
#282026-02-28buy18$396.37$7,134.66$237.22
#1012025-11-17buy8$406.45$3,251.60$228.60
#12025-01-02deposit100$78.00$7,800.00$78.00
24 transactions
Transaction types: buy, sell, deposit (transfer-in), dividend, tax. Only buy and deposit with a price affect average cost.
Interactive prompts for recording a new transaction. Average cost is recalculated automatically after each entry.
$firma add txn
◆ TickerAAPL
◆ Typebuy
◆ Shares15
◆ Price per share$211.00
◆ Date2026-04-25
Transaction recorded. AAPL avg cost → $196.40
You can also add trades from Claude Desktop. Say "I bought 15 AAPL at $211" and Claude calls add_txn directly.
Edit an existing transaction by ID. If you omit the ID, an interactive picker lets you select from your recent transactions. Only the fields you change are updated. The rest stay as-is.
$firma edit txn 86
◆ Price per share ($351.69)$349.00
Transaction #86 updated.
Delete a transaction permanently. Holdings and average cost are recalculated immediately. Omit the ID for an interactive picker.
$firma delete txn 86
◆ Delete #86 · TSLA buy 5 @ $351.69 on 2026-04-08?Yes
Transaction #86 deleted.
MIT License