Personal finance skill
AI-powered personal finance skill — 75 tools across 7 extensions for banking (Plaid), trading (Alpaca), portfolio monitoring (IBKR), tax optimization, market intelligence, and social sentiment. Built for the Agent Skills Protocol, works with 40+ AI agents.
npx -y skills add 6missedcalls/personal-finance-skillAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 11 stars11 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Personal finance management skill providing 75 tools across 7 extensions for bank account aggregation (Plaid), brokerage trading (Alpaca), portfolio monitoring (IBKR), tax optimization, market intelligence (Finnhub, SEC EDGAR, FRED, BLS, Alpha Vantage), social sentiment (StockTwits, X/Twitter, Quiver), and financial analysis. Supports scheduled scans, anomaly detection, net worth tracking, tax-loss harvesting, and approval-gated execution of financial actions.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
18.6 KB, as published. Nobody here has run it
Personal Finance Skill
A comprehensive personal finance management skill with 75 tools across 7 extensions for banking, investing, tax, market intelligence, social sentiment, and financial analysis workflows.
When to Use
Activate this skill when a user asks for:
- Account aggregation — connecting bank accounts, viewing balances, syncing transactions
- Net worth / cash flow — computing totals, tracking spending, savings rate analysis
- Portfolio monitoring — positions, allocation, performance, drift detection
- Trading — placing/canceling orders, market data, asset lookup (Alpaca)
- Tax optimization — estimated liability, TLH candidates, wash sale checks, quarterly payments
- Tax document processing — parsing W-2, 1099-B/DIV/INT, K-1, Form 1040, Schedules A-E/SE, Form 8949, Form 6251 (AMT), state returns
- Market intelligence — company news, SEC filings, analyst recommendations, economic data (FRED, BLS), news sentiment
- Social sentiment — StockTwits sentiment, X/Twitter cashtag analysis, trending symbols, congressional trading
- Recurring expense tracking — subscriptions, bills, income streams
- Anomaly detection — unusual transactions, balance drops, duplicate charges
- Financial briefings — weekly/monthly summaries with action items
- Scheduled finance workflows — cron-based scans, alerts, reports
Architecture Overview
Seven extensions organized in three layers:
Intelligence Layer
tax-engine (23 tools) — parsing (15), liability, TLH, wash sales, lots,
Schedule D computation, state tax, AMT
market-intel (10 tools) — news, fundamentals, SEC filings, economic data
social-sentiment (6 tools) — StockTwits, X/Twitter, congressional trades
Data Source Adapters
plaid-connect (8) alpaca-trading (10) ibkr-portfolio (9)
Foundation Layer
finance-core (9 tools) — canonical models, storage, normalization,
policy checks, anomaly detection, briefs
Data flow: Adapters fetch provider data → finance-core normalizes and stores → intelligence layer analyzes → policy engine gates actions.
Tool Catalog
finance-core — 9 tools
| Tool | Description | Risk |
|---|---|---|
finance_upsert_snapshot | Store normalized financial data snapshot (idempotent) | LOW |
finance_get_state | Get current financial state (accounts, positions, etc.) | READ |
finance_get_transactions | Query transactions with filters and pagination | READ |
finance_get_net_worth | Calculate net worth breakdown by category/account | READ |
finance_detect_anomalies | Scan for unusual transactions, balance drops, fee spikes | READ |
finance_cash_flow_summary | Income vs expenses by category with savings rate | READ |
finance_subscription_tracker | Identify recurring charges and subscription patterns | READ |
finance_generate_brief | Create structured financial summary with action items | READ |
finance_policy_check | Validate proposed action against policy rules | READ |
Full schemas: references/ext-finance-core.md
plaid-connect — 8 tools
| Tool | Description | Risk |
|---|---|---|
plaid_create_link_token | Initialize Plaid Link for account connection | LOW |
plaid_exchange_token | Exchange public token for permanent access | MED |
plaid_get_accounts | List connected accounts with balances | READ |
plaid_get_transactions | Fetch transactions via cursor-based sync | READ |
plaid_get_investments | Fetch holdings, securities, investment transactions | READ |
plaid_get_liabilities | Fetch credit, student loan, and mortgage data | READ |
plaid_get_recurring | Identify recurring inflow/outflow streams | READ |
plaid_webhook_handler | Process incoming Plaid webhook events | LOW |
Full schemas: references/ext-plaid-connect.md
alpaca-trading — 10 tools
| Tool | Description | Risk |
|---|---|---|
alpaca_get_account | Get account balances, buying power, status | READ |
alpaca_list_positions | List all open positions | READ |
alpaca_get_position | Get single position by symbol | READ |
alpaca_list_orders | List orders with status/date filters | READ |
alpaca_create_order | Submit buy/sell order with safety checks | HIGH |
alpaca_cancel_order | Cancel a pending order | MED |
alpaca_portfolio_history | Historical equity and P/L over time | READ |
alpaca_get_assets | Search tradable assets by class/exchange | READ |
alpaca_market_data | Get snapshots, bars, or quotes for symbols | READ |
alpaca_clock | Check if market is open, next open/close | READ |
Full schemas: references/ext-alpaca-trading.md
ibkr-portfolio — 9 tools
| Tool | Description | Risk |
|---|---|---|
ibkr_auth_status | Check gateway authentication status | READ |
ibkr_tickle | Keep gateway session alive (~1 min interval) | LOW |
ibkr_list_accounts | List accounts (must call first) | READ |
ibkr_get_positions | Get positions for an account (paginated) | READ |
ibkr_portfolio_allocation | Allocation by asset class, sector, group | READ |
ibkr_portfolio_performance | NAV time series and returns | READ |
ibkr_search_contracts | Search contracts by symbol/name/type | READ |
ibkr_market_snapshot | Real-time market data for contracts | READ |
ibkr_get_orders | Get current live orders | READ |
Full schemas: references/ext-ibkr-portfolio.md
tax-engine — 23 tools
| Tool | Description | Risk |
|---|---|---|
tax_parse_1099b | Parse 1099-B (proceeds, cost basis, wash sales) | READ |
tax_parse_1099div | Parse 1099-DIV (dividends, capital gains) | READ |
tax_parse_1099int | Parse 1099-INT (interest, bond premiums) | READ |
tax_parse_w2 | Parse W-2 (wages, withholding, SS/Medicare) | READ |
tax_parse_k1 | Parse Schedule K-1 (partnership pass-through) | READ |
tax_parse_1040 | Parse Form 1040 (main federal return) | READ |
tax_parse_schedule_a | Parse Schedule A (itemized deductions, SALT cap) | READ |
tax_parse_schedule_b | Parse Schedule B (interest/dividend payors) | READ |
tax_parse_schedule_c | Parse Schedule C (self-employment income) | READ |
tax_parse_schedule_d | Parse Schedule D (capital gains netting) | READ |
tax_parse_schedule_e | Parse Schedule E (rental/royalty/partnership) | READ |
tax_parse_schedule_se | Parse Schedule SE (self-employment tax) | READ |
tax_parse_form_8949 | Parse Form 8949 (sales and dispositions) | READ |
tax_parse_state_return | Parse state return (CA 540, NY IT-201, etc.) | READ |
tax_parse_form_6251 | Parse Form 6251 (AMT) | READ |
tax_estimate_liability | Calculate federal/state tax with brackets | READ |
tax_find_tlh_candidates | Identify tax-loss harvesting opportunities | READ |
tax_check_wash_sales | Validate wash sale rule compliance (61-day window) | READ |
tax_lot_selection | Compare FIFO/LIFO/specific ID for a proposed sale | READ |
tax_quarterly_estimate | Quarterly estimated payments with safe harbor | READ |
tax_compute_schedule_d | Compute Schedule D netting with loss carryover | READ |
tax_compute_state_tax | Compute state tax for CA/NY/NJ/IL/PA/MA/TX/FL | READ |
tax_compute_amt | Compute Alternative Minimum Tax (Form 6251) | READ |
Full schemas: references/ext-tax-engine.md
market-intel — 10 tools
| Tool | Description | Risk |
|---|---|---|
intel_company_news | Get recent news articles for a company (Finnhub) | READ |
intel_market_news | Get general market news by category (Finnhub) | READ |
intel_stock_fundamentals | Get reported financial statements (Finnhub) | READ |
intel_analyst_recommendations | Get analyst buy/hold/sell consensus (Finnhub) | READ |
intel_sec_filings | List SEC filings for a company by ticker (EDGAR) | READ |
intel_sec_search | Full-text search across SEC filings (EDGAR) | READ |
intel_fred_series | Fetch economic time series (GDP, CPI, rates) (FRED) | READ |
intel_fred_search | Search for FRED series by keyword | READ |
intel_bls_data | Fetch labor/price statistics time series (BLS) | READ |
intel_news_sentiment | Get news with AI-scored sentiment (Alpha Vantage) | READ |
Full schemas: references/ext-market-intel.md
social-sentiment — 6 tools
| Tool | Description | Risk |
|---|---|---|
social_stocktwits_sentiment | Get bull/bear sentiment for a stock (StockTwits) | READ |
social_stocktwits_trending | Get currently trending symbols (StockTwits) | READ |
social_x_search | Search recent tweets by keyword (X/Twitter) | READ |
social_x_user_timeline | Get recent tweets from a user (X/Twitter) | READ |
social_x_cashtag | Search cashtag with keyword sentiment scoring (X) | READ |
social_quiver_congress | Get congressional stock trading disclosures (Quiver) | READ |
Full schemas: references/ext-social-sentiment.md
Key Workflows
1. Onboarding — Connect Accounts
plaid_create_link_token(products: ["transactions", "investments", "liabilities"])
→ User completes Plaid Link
→ plaid_exchange_token(publicToken)
→ plaid_get_accounts → finance_upsert_snapshot(source: "plaid")
→ plaid_get_transactions → finance_upsert_snapshot
→ plaid_get_investments → finance_upsert_snapshot
→ finance_get_net_worth → present baseline to user
2. Daily Scan — Anomaly Detection
plaid_get_transactions(cursor) → finance_upsert_snapshot
alpaca_list_positions → finance_upsert_snapshot(source: "alpaca")
ibkr_auth_status → ibkr_get_positions → finance_upsert_snapshot(source: "ibkr")
→ finance_detect_anomalies(lookbackDays: 7)
→ Alert on medium/high severity findings
3. Tax-Loss Harvesting
finance_get_state(include: ["positions"])
→ tax_find_tlh_candidates(positions, marginalRate)
→ tax_check_wash_sales(proposedSales, recentPurchases)
→ tax_lot_selection(symbol, qty, lots)
→ finance_policy_check(actionType: "tax_move")
→ [If approved] alpaca_create_order(side: "sell", ...)
4. Quarterly Tax Review
tax_parse_w2 + tax_parse_1099b + tax_parse_1099div + tax_parse_1099int
→ tax_estimate_liability(filingStatus, income)
→ tax_quarterly_estimate(projectedIncome, priorYearTax, paymentsMade)
→ finance_generate_brief(period: "quarterly")
5. Portfolio Monitoring
alpaca_list_positions + ibkr_get_positions
→ finance_upsert_snapshot (both sources)
→ ibkr_portfolio_allocation (check drift)
→ alpaca_portfolio_history (performance trend)
→ finance_detect_anomalies
→ finance_generate_brief(period: "weekly")
6. Company Research — Market Intelligence
intel_company_news(symbol: "AAPL", limit: 10)
→ intel_analyst_recommendations(symbol: "AAPL")
→ intel_stock_fundamentals(symbol: "AAPL", freq: "quarterly")
→ intel_sec_filings(symbol: "AAPL", formType: "10-K")
→ intel_news_sentiment(tickers: "AAPL")
→ social_stocktwits_sentiment(symbol: "AAPL")
→ social_x_cashtag(symbol: "AAPL")
7. Economic Overview
intel_fred_series(seriesId: "GDP")
→ intel_fred_series(seriesId: "CPIAUCSL")
→ intel_fred_series(seriesId: "UNRATE")
→ intel_bls_data(seriesIds: ["CES0000000001"])
→ intel_fred_series(seriesId: "DFF")
8. Full Tax Return Processing
tax_parse_1040(rawData) → tax_parse_schedule_a(rawData)
→ tax_parse_schedule_b(rawData) → tax_parse_schedule_c(rawData)
→ tax_parse_schedule_d(rawData) → tax_parse_schedule_e(rawData)
→ tax_parse_form_8949(rawData) → tax_parse_schedule_se(rawData)
→ tax_compute_schedule_d(gains, losses, carryovers)
→ tax_compute_state_tax(stateCode, taxableIncome, filingStatus)
→ tax_compute_amt(taxableIncome, adjustments, regularTax)
→ tax_parse_state_return(rawData)
9. Congressional Trading Signals
social_quiver_congress(daysBack: 30)
→ Filter for large purchases
→ intel_company_news(symbol: <top_ticker>)
→ alpaca_market_data(symbols: <top_ticker>)
→ social_stocktwits_sentiment(symbol: <top_ticker>)
Configuration
Environment Variables
| Variable | Extension | Description |
|---|---|---|
PLAID_CLIENT_ID | plaid-connect | Plaid API client ID |
PLAID_SECRET | plaid-connect | Plaid API secret key |
PLAID_ENV | plaid-connect | sandbox / development / production |
ALPACA_API_KEY | alpaca-trading | Alpaca API key |
ALPACA_API_SECRET | alpaca-trading | Alpaca API secret |
ALPACA_ENV | alpaca-trading | paper / live |
IBKR_BASE_URL | ibkr-portfolio | Client Portal Gateway URL |
FINNHUB_API_KEY | market-intel | Finnhub API key (finnhub.io) |
FRED_API_KEY | market-intel | FRED API key (fred.stlouisfed.org) |
BLS_API_KEY | market-intel | BLS registration key (v2) |
ALPHA_VANTAGE_API_KEY | market-intel | Alpha Vantage API key |
X_API_BEARER_TOKEN | social-sentiment | X/Twitter OAuth 2.0 Bearer Token |
QUIVER_API_KEY | social-sentiment | Quiver Quantitative API key |
Extension Config
Each extension has an openclaw.plugin.json with a configSchema. Key settings:
- finance-core:
storageDir,anomalyThresholds,policyRulesPath - plaid-connect:
plaidEnv,webhookUrl,clientName,countryCodes - alpaca-trading:
env(paper/live),maxOrderQty,maxOrderNotional - ibkr-portfolio:
baseUrl,defaultAccountId - tax-engine:
defaultFilingStatus,defaultState,defaultTaxYear - market-intel:
finnhubApiKeyEnv,fredApiKeyEnv,blsApiKeyEnv,alphaVantageApiKeyEnv,secEdgarUserAgent - social-sentiment:
xApiBearerTokenEnv,quiverApiKeyEnv
Cron Examples
Weekly Financial Brief
openclaw cron add \
--name "Finance Weekly Brief" \
--cron "0 8 * * 1" \
--tz "America/Los_Angeles" \
--session isolated \
--message "Run personal-finance-skill weekly workflow: sync all providers, compute net worth delta, top spend changes, upcoming bills, tax posture, and portfolio drift. Send concise brief with action queue."
Daily Anomaly Scan
openclaw cron add \
--name "Finance Daily Anomaly" \
--cron "15 7 * * *" \
--tz "America/Los_Angeles" \
--session isolated \
--message "Sync latest transactions, run finance_detect_anomalies. Alert on medium/high/critical findings only."
Quarterly Tax Check
openclaw cron add \
--name "Quarterly Tax Review" \
--cron "0 9 1 1,4,6,9 *" \
--tz "America/Los_Angeles" \
--session isolated \
--message "Run quarterly tax review: estimate liability, check withholding gap, find TLH opportunities, assess quarterly payment risk."
Portfolio Drift Monitor
openclaw cron add \
--name "Portfolio Drift Monitor" \
--cron "*/30 13-21 * * 1-5" \
--tz "America/New_York" \
--session isolated \
--message "Check portfolio allocation vs target bands. Alert if drift exceeds threshold for 2 consecutive scans."
Non-Negotiable Guardrails
These rules apply to all AI agents using this skill:
- Always run
finance_policy_checkbefore any side-effecting action (trades, transfers, tax moves). - Never bypass approval requirements. If policy requires user or advisor approval, halt and request it.
- Numeric outputs must come from deterministic calculators. Never use LLM arithmetic for tax amounts, P/L, or net worth — always use the tool.
- Recommendations must include assumptions and data freshness. Every financial recommendation states what data it used and when that data was last updated.
- Never expose raw access tokens or API keys in tool outputs or conversation.
- Never auto-execute in live trading without explicit user confirmation, even if policy rules allow it.
- All investment-related outputs must include disclaimer: "This is informational only, not financial advice. Consult a qualified advisor before making financial decisions."
- If data is stale, say so. Report data freshness before advising.
Reference Index
Detailed documentation is available in the references/ directory:
| File | Contents |
|---|---|
| references/ext-finance-core.md | 9 tools, storage layer, normalization functions |
| references/ext-plaid-connect.md | 8 tools, Plaid Link flow, webhook handling |
| references/ext-alpaca-trading.md | 10 tools, order lifecycle, safety limits |
| references/ext-ibkr-portfolio.md | 9 tools, session management, market data fields |
| references/ext-tax-engine.md | 23 tools, 15 parsers + 8 calculators/strategy, form field mappings |
| references/ext-market-intel.md | 10 tools, Finnhub/SEC EDGAR/FRED/BLS/Alpha Vantage |
| references/ext-social-sentiment.md | 6 tools, StockTwits/X/Twitter/Quiver Quantitative |
| references/data-models-and-schemas.md | Canonical types, enums, entity schemas |
| references/risk-and-policy-guardrails.md | Policy engine, approval tiers, hard rules |
| references/api-plaid.md | Full Plaid API reference |
| references/api-alpaca-trading.md | Full Alpaca API reference |
| references/api-ibkr-client-portal.md | IBKR Client Portal Web API reference |
| references/api-openclaw-framework.md | OpenClaw architecture reference |
| references/api-openclaw-extension-patterns.md | How to build OpenClaw extensions |
| references/api-irs-tax-forms.md | IRS tax form schemas and rules |