portfolio-tracker

An investment portfolio tracker that runs entirely locally. All data stays in ~/.portfolio-tracker/.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "portfolio-tracker" with this command: npx skills add aigeneralstore/portfolio-tracking-skill

Portfolio Tracker Skill

An investment portfolio tracker that runs entirely locally. All data stays in ~/.portfolio-tracker/.

Architecture

  • Data: ~/.portfolio-tracker/data.json (portfolios, assets, prices)
  • Config: ~/.portfolio-tracker/config.json (API keys, wallet addresses, user profile)
  • Scripts: TypeScript CLI tools in <skill-path>/scripts/, run via npx tsx

First-Time Setup

Before running any script, ensure dependencies are installed:

npm install --prefix <skill-path>/scripts

Replace <skill-path> with the actual installed path of this skill.

How Scripts Work

Each script is a standalone CLI tool. Run them with:

npx tsx <skill-path>/scripts/<script>.ts <command> [args]

Scripts read from stdin when needed and output JSON to stdout.

data-store.ts

  • load — Read portfolio data (creates default if missing)
  • save — Write portfolio data (JSON from stdin)
  • load-config — Read config
  • save-config — Write config (JSON from stdin)

fetch-prices.ts

  • crypto <symbol> — Get crypto price (Binance → CoinGecko)
  • stock <symbol> — Get stock price (Yahoo Finance)
  • fx — Get USD/CNY/HKD exchange rates
  • historical <symbol> — Get 3yr monthly historical data
  • search <query> — Search for assets by name/symbol
  • refresh — Batch refresh prices (assets JSON from stdin)

binance-sync.ts

  • sync <apiKey> <apiSecret> — Fetch all Binance balances (6 account types)
  • validate <apiKey> <apiSecret> — Validate API credentials

ibkr-sync.ts

  • sync <token> <queryId> — Fetch IBKR positions via Flex Query
  • validate <token> <queryId> — Validate IBKR credentials

blockchain-sync.ts

  • sync <address> [chain] — Fetch wallet balances (single chain or all 5 EVM chains)
  • validate <address> — Validate EVM address

Data Types

Asset

{
  "id": "unique-id",
  "type": "CRYPTO | USSTOCK | HKSTOCK | ASHARE | CASH",
  "symbol": "BTC",
  "name": "Bitcoin",
  "quantity": 1.5,
  "avgPrice": 40000,
  "currentPrice": 50000,
  "currency": "USD | CNY | HKD",
  "transactions": [],
  "source": { "type": "manual | binance | wallet | ibkr" }
}

Portfolio

{
  "id": "unique-id",
  "name": "Main",
  "assets": [...]
}

Workflow Patterns

Viewing Portfolio

  1. Load data via data-store.ts load
  2. Find current portfolio by currentPortfolioId
  3. Calculate total value using quantity * currentPrice per asset
  4. Convert to display currency using exchangeRates
  5. Present as a formatted table

Adding Assets

  1. Load data
  2. Search for the asset using fetch-prices.ts search <query>
  3. Get current price via fetch-prices.ts crypto/stock <symbol>
  4. Add asset to current portfolio with a generated unique ID
  5. Save data

Refreshing Prices

  1. Load data
  2. Pipe current portfolio assets to fetch-prices.ts refresh via stdin
  3. Also run fetch-prices.ts fx for exchange rates
  4. Update each asset's currentPrice and the exchangeRates
  5. Set lastPriceRefresh to current ISO timestamp
  6. Save data

Syncing from Exchange/Wallet

  1. Load config to get credentials
  2. Run the appropriate sync script
  3. Merge results: update existing assets (match by symbol+source), add new ones
  4. Save data

Commands

Available user commands:

  • /portfolio — View and manage portfolios
  • /prices — Refresh all prices
  • /setup — Configure API keys and wallets
  • /sync-binance — Sync from Binance
  • /sync-ibkr — Sync from Interactive Brokers
  • /sync-wallet — Sync from blockchain wallet
  • /advise — Get AI investment advice

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

Digicert

DigiCert integration. Manage Certificates, Orders, Users, Organizations. Use when the user wants to interact with DigiCert data.

Registry SourceRecently Updated
General

Dialpad

Dialpad integration. Manage Users, Groups, Departments, Offices. Use when the user wants to interact with Dialpad data.

Registry SourceRecently Updated
General

Darwinbox

Darwinbox integration. Manage Organizations, Goals, Roles, Projects, Pipelines, Leads and more. Use when the user wants to interact with Darwinbox data.

Registry SourceRecently Updated
General

Creatio

Creatio integration. Manage Leads, Organizations, Users. Use when the user wants to interact with Creatio data.

Registry SourceRecently Updated