Back to Skills
    🦞

    pocketsmith-skill

    Manage PocketSmith transactions, categories

    By @lextoumbourou
    View on GitHub
    SKILL.md
    ---
    name: pocketsmith
    description: Manage PocketSmith transactions, categories, and financial data via the API
    metadata: {"openclaw": {"category": "finance", "requires": {"env": ["POCKETSMITH_DEVELOPER_KEY"]}, "optional_env": ["POCKETSMITH_ALLOW_WRITES"]}}
    ---
    
    # PocketSmith Skill
    
    Manage PocketSmith transactions and categories. Supports listing, searching, creating, updating, and deleting financial data.
    
    ## Prerequisites
    
    Set these environment variables:
    - `POCKETSMITH_DEVELOPER_KEY` - Your PocketSmith developer key (from Settings > Security > Manage Developer Keys)
    - `POCKETSMITH_ALLOW_WRITES` - Set to `true` to enable create, update, and delete operations (disabled by default for safety)
    
    ## Commands
    
    All commands should be run from the skill directory using `uv run pocketsmith`.
    
    ### Authentication
    
    ```bash
    # Check authentication status and get user info
    pocketsmith auth status
    
    # Get current user details
    pocketsmith me
    ```
    
    ### Transactions
    
    ```bash
    # Get a single transaction
    pocketsmith transactions get <transaction_id>
    
    # List transactions for a user
    pocketsmith transactions list-by-user <user_id>
    pocketsmith transactions list-by-user <user_id> --start-date 2024-01-01 --end-date 2024-12-31
    pocketsmith transactions list-by-user <user_id> --search "coffee"
    pocketsmith transactions list-by-user <user_id> --uncategorised
    pocketsmith transactions list-by-user <user_id> --needs-review
    pocketsmith transactions list-by-user <user_id> --type debit
    
    # List transactions by account
    pocketsmith transactions list-by-account <account_id>
    
    # List transactions by category
    pocketsmith transactions list-by-category <category_ids>  # comma-separated
    
    # List transactions by transaction account
    pocketsmith transactions list-by-transaction-account <transaction_account_id>
    
    # Create a transaction (requires POCKETSMITH_ALLOW_WRITES=true)
    pocketsmith transactions create <transaction_account_id> --payee "Store Name" --amount -50.00 --date 2024-01-15
    pocketsmith transactions create <transaction_account_id> --payee "Salary" --amount 5000.00 --date 2024-01-01 --category-id 123
    
    # Update a transaction (requires POCKETSMITH_ALLOW_WRITES=true)
    pocketsmith transactions update <transaction_id> --category-id 456
    pocketsmith transactions update <transaction_id> --payee "New Payee" --note "Updated note"
    pocketsmith transactions update <transaction_id> --labels "groceries,essential"
    
    # Delete a transaction (requires POCKETSMITH_ALLOW_WRITES=true)
    pocketsmith transactions delete <transaction_id>
    ```
    
    ### Categories
    
    ```bash
    # Get a single category
    pocketsmith categories get <category_id>
    
    # List all categories for a user
    pocketsmith categories list <user_id>
    
    # Create a category (requires POCKETSMITH_ALLOW_WRITES=true)
    pocketsmith categories create <user_id> --title "New Category"
    pocketsmith categories create <user_id> --title "Subcategory" --parent-id 123
    pocketsmith categories create <user_id> --title "Bills" --colour "#ff0000" --is-bill true
    
    # Update a category (requires POCKETSMITH_ALLOW_WRITES=true)
    pocketsmith categories update <category_id> --title "Renamed Category"
    pocketsmith categories update <category_id> --parent-id 456
    pocketsmith categories update <category_id> --no-parent  # Make top-level
    pocketsmith categories update <category_id> --colour "#00ff00"
    
    # Delete a category (requires POCKETSMITH_ALLOW_WRITES=true)
    pocketsmith categories delete <category_id>
    ```
    
    ### Labels
    
    ```bash
    # List all labels for a user
    pocketsmith labels list <user_id>
    ```
    
    ### Budget
    
    ```bash
    # List budget for a user (per-category budget analysis)
    pocketsmith budget list <user_id>
    pocketsmith budget list <user_id> --roll-up true
    
    # Get budget summary for a user
    pocketsmith budget summary <user_id> --period months --interval 1 --start-date 2024-01-01 --end-date 2024-12-31
    
    # Get trend analysis (requires category and scenario IDs)
    pocketsmith budget trend <user_id> --period months --interval 1 --start-date 2024-01-01 --end-date 2024-12-31 --categories "123,456" --scenarios "1,2"
    
    # Refresh forecast cache (requires POCKETSMITH_ALLOW_WRITES=true)
    pocketsmith budget refresh <user_id>
    ```
    
    ## Transaction Filter Options
    
    When listing transactions, these filters are available:
    - `--start-date` - Filter from date (YYYY-MM-DD)
    - `--end-date` - Filter to date (YYYY-MM-DD)
    - `--updated-since` - Only transactions updated after this datetime
    - `--uncategorised` - Only uncategorised transactions
    - `--type` - Filter by type: `debit` or `credit`
    - `--needs-review` - Only transactions needing review
    - `--search` - Search term for payee/memo
    - `--page` - Page number for pagination
    
    ## Category Options
    
    When creating/updating categories:
    - `--title` - Category name
    - `--colour` - CSS hex colour (e.g., `#ff0000`)
    - `--parent-id` - Parent category ID for subcategories
    - `--no-parent` - Make category top-level (update only)
    - `--is-transfer` - Mark as transfer category (true/false)
    - `--is-bill` - Mark as bill category (true/false)
    - `--roll-up` - Roll up to parent category (true/false)
    - `--refund-behaviour` - `debit_only` or `credit_only`
    
    ## Output Format
    
    All commands output JSON. Example transaction:
    
    ```json
    {
      "id": 1234567,
      "payee": "Coffee Shop",
      "amount": -5.50,
      "date": "2024-01-15",
      "category": {
        "id": 123,
        "title": "Eating Out"
      },
      "transaction_account": {
        "id": 456,
        "name": "Checking Account"
      }
    }
    ```
    
    ## Date Format
    
    All dates use `YYYY-MM-DD` format (e.g., `2024-01-15`).
    
    ## Write Protection
    
    Write operations (create, update, delete) are **disabled by default** for safety. To enable them:
    
    ```bash
    export POCKETSMITH_ALLOW_WRITES=true
    ```
    
    Without this, write commands will fail with:
    
    ```json
    {"error": "Write operations are disabled by default. Set POCKETSMITH_ALLOW_WRITES=true to enable create, update, and delete operations.", "hint": "export POCKETSMITH_ALLOW_WRITES=true"}
    ```
    
    ## Common Workflows
    
    ### Search and Categorize Transactions
    
    ```bash
    # Find uncategorised transactions
    pocketsmith transactions list-by-user 123456 --uncategorised
    
    # Search for specific transactions
    pocketsmith transactions list-by-user 123456 --search "Netflix"
    
    # Categorize a transaction
    pocketsmith transactions update 789012 --category-id 456
    ```
    
    ### Organize Categories
    
    ```bash
    # List existing categories
    pocketsmith categories list 123456
    
    # Create a new subcategory
    pocketsmith categories create 123456 --title "Streaming" --parent-id 789
    
    # Move a category under a different parent
    pocketsmith categories update 101112 --parent-id 789
    ```
    
    ### Review Transactions
    
    ```bash
    # Find transactions needing review
    pocketsmith transactions list-by-user 123456 --needs-review
    
    # Mark as reviewed by updating
    pocketsmith transactions update 789012 --needs-review false
    ```