treeline
Chat with your finances from Treeline Money. Query balances, spending, budgets, and transactions.
What this skill does
# Treeline Money **Chat with your finances.** Ask questions like "What's my net worth?", "How much did I spend on groceries?", or "Am I over budget?" and get instant answers from your own financial data. --- ## Quick Start ```bash # 1. Install the CLI (OpenClaw handles this automatically) # 2. Enable demo mode (sample data) tl demo on # 3. Try it out tl status ``` --- ## First Time Setup > **For agents:** If `tl` commands fail with "command not found", the CLI needs to be installed. OpenClaw handles installation automatically via the skill metadata. Start with demo mode so users can try queries immediately. ### Installing the CLI The Treeline CLI is installed automatically by OpenClaw when this skill is added. The binary is downloaded directly from [GitHub releases](https://github.com/treeline-money/treeline/releases). Verify with `tl --version`. **Optional:** Download the [desktop app](https://treeline.money/download) for visual exploration of your data. ### Demo Mode Demo mode loads sample data so users can try queries without connecting a bank: ```bash tl demo on ``` To switch to real data later: ```bash tl demo off ``` Demo data is separate from real data. ### CLI Behavior Notes - `tl demo on` prints a success message — if it seems to hang, wait a few seconds (first run initializes the database) - Use `tl demo status` to verify demo mode is enabled - Some commands may take a few seconds on first run due to database initialization - If you see errors about missing tables, try `tl demo on` again ### Connecting Real Data **SimpleFIN** ($1.50/month, US & Canada) 1. Sign up at [beta-bridge.simplefin.org](https://beta-bridge.simplefin.org/) 2. Connect bank accounts and create a setup token 3. Run `tl setup simplefin <setup-token>` 4. Run `tl sync` **Lunch Flow** (~$3/month, global: US, Canada, Brazil, EU, UK, Asia) 1. Sign up at [lunchflow.app](https://www.lunchflow.app/?atp=treeline) 2. Connect bank accounts and create an API destination 3. Run `tl setup lunchflow <api-key>` 4. Run `tl sync` **CSV Import** (free, CLI or desktop app) 1. Export transactions as CSV from bank website 2. Find the account to import into: `tl status --json` (grab the account name or UUID) 3. Preview: `tl import export.csv --account "Checking" --dry-run` 4. Import: `tl import export.csv --account "Checking"` Auto-detection handles most CSVs. If columns don't match, specify them: ```bash tl import export.csv --account "Checking" \ --date-column "Trans Date" \ --amount-column "Amount" \ --description-column "Memo" ``` For European formats: `--number-format eu` (1.234,56) or `--number-format eu_space` (1 234,56). For credit cards where charges are positive: `--flip-signs`. For CSVs with separate debit/credit columns: `--debit-column "Debit" --credit-column "Credit"`. For CSVs with bank letterhead rows before the header: `--skip-rows 3`. --- ## What is Treeline? [Treeline Money](https://treeline.money) is a local-first personal finance app. All your data stays on your device in a local DuckDB database. No cloud accounts, no subscriptions required (sync services are optional), full SQL access to your financial data. --- ## Limitations **Encrypted databases not supported.** If the user has enabled database encryption in Treeline, CLI commands will fail. They'll need to either: - Disable encryption if they want OpenClaw access - Use the Treeline app directly for encrypted databases If you see "database is encrypted" errors, explain this limitation. --- ## Response Formatting **Format all responses for mobile/chat:** - Use bullet points, not markdown tables - Round numbers for readability ($1,234 not $1,234.56) - Lead with the answer, details second - Keep responses concise — chat isn't a spreadsheet - Use line breaks to separate sections **Example good response:** ``` Your net worth is $125k Assets: $180k - Retirement: $85k - Savings: $25k - Checking: $10k - Home equity: $60k Liabilities: $55k - Mortgage: $52k - Credit cards: $3k ``` **Example bad response:** ``` | Account | Type | Balance | |---------|------|---------| | My 401k Account | asset | 85234.56 | ... ``` --- ## CLI Commands The `tl` CLI can do more than just queries: ```bash tl status # Quick account summary with balances tl status --json # Same, but JSON output tl query "SQL" --json # Run any SQL query (read-only by default) tl sql "SQL" --json # Same as tl query (alias) tl query "SQL" --allow-writes # Enable write operations (INSERT, UPDATE, DELETE) tl sync # Sync accounts/transactions from bank integrations tl sync --dry-run # Preview what would sync tl import FILE -a ACCOUNT # Import transactions from CSV tl import FILE -a ACCOUNT --dry-run # Preview import without applying tl import FILE -a ACCOUNT --json # JSON output for scripting tl backup create # Create a backup tl backup list # List available backups tl backup restore NAME # Restore a backup tl doctor # Check database health tl compact # Compact database (reclaim space, optimize) tl tag "groceries" --ids ID1,ID2 # Apply tags to transactions tl demo on|off # Toggle demo mode (sample data) ``` > **Note:** `tl query` and `tl sql` are identical — use whichever you prefer. The database is opened read-only by default. Use `--allow-writes` to enable write operations. **Use `tl status` for quick balance checks** — it's faster than a SQL query. **Use `tl compact` if the user mentions slow queries** — it optimizes the database. ### CSV Import Details `tl import` auto-detects column mappings from CSV headers. Most bank CSVs work out of the box: ```bash tl import bank_export.csv --account "Chase Checking" ``` The `--account` / `-a` flag accepts an account name (case-insensitive, substring match) or UUID. **Always preview first** with `--dry-run` to verify columns were detected correctly: ```bash tl import bank_export.csv -a "Checking" --dry-run --json ``` **All import flags** (all optional except `--account`): | Flag | Purpose | Example | |------|---------|---------| | `--date-column` | Override date column | `--date-column "Post Date"` | | `--amount-column` | Override amount column | `--amount-column "Amt"` | | `--description-column` | Override description column | `--description-column "Memo"` | | `--debit-column` | Use debit column (instead of amount) | `--debit-column "Debit"` | | `--credit-column` | Use credit column (instead of amount) | `--credit-column "Credit"` | | `--balance-column` | Running balance (creates snapshots) | `--balance-column "Balance"` | | `--flip-signs` | Negate amounts (credit card CSVs) | `--flip-signs` | | `--debit-negative` | Negate positive debits | `--debit-negative` | | `--skip-rows N` | Skip N rows before header | `--skip-rows 3` | | `--number-format` | `us`, `eu`, or `eu_space` | `--number-format eu` | | `--profile NAME` | Load a saved profile | `--profile chase` | | `--save-profile NAME` | Save settings as profile | `--save-profile chase` | | `--dry-run` | Preview without importing | `--dry-run` | | `--json` | JSON output | `--json` | **Common patterns for agents:** ```bash # Step 1: Find the account UUID tl status --json # Step 2: Preview import tl import transactions.csv -a "550e8400-e29b-41d4-a716-446655440000" --dry-run --json # Step 3: Execute import tl import transactions.csv -a "550e8400-e29b-41d4-a716-446655440000" --json ``` Duplicate transactions are automatically detected and skipped on re-import via fingerprinting. --- ## User Context **Before answering finance questions, check for `CONTEXT.md` in this skill directory.** If it exists, read it first — it contains user-specific knowledge: - Account meanings (which accounts are retirement vs brokerage, etc.) - Tag conventions and cash flow rules - Plugin configurations - Personal preferences **Learning new context:** When you discover something about the user's setup: 1. For small observations, n
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.