{
  "schemaVersion": "1.0",
  "item": {
    "slug": "copilot-money-mac",
    "name": "Copilot Money Mac",
    "source": "tencent",
    "type": "skill",
    "category": "数据分析",
    "sourceUrl": "https://clawhub.ai/chardigio/copilot-money-mac",
    "canonicalUrl": "https://clawhub.ai/chardigio/copilot-money-mac",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/copilot-money-mac",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=copilot-money-mac",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/copilot-money-mac"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/copilot-money-mac",
    "agentPageUrl": "https://openagent3.xyz/skills/copilot-money-mac/agent",
    "manifestUrl": "https://openagent3.xyz/skills/copilot-money-mac/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/copilot-money-mac/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Copilot Money",
        "body": "Query local data from the Copilot Money Mac app to analyze transactions, spending patterns, account balances, investments, and budgets. Data is stored in both SQLite (transactions, balances) and Firestore LevelDB cache (recurring names, budgets, investments)."
      },
      {
        "title": "Database Location",
        "body": "~/Library/Group Containers/group.com.copilot.production/database/CopilotDB.sqlite"
      },
      {
        "title": "Transactions Table",
        "body": "Primary table for all financial transactions.\n\nColumnTypeDescriptionidTEXTPrimary keydateDATETransaction datenameTEXTMerchant/transaction nameoriginal_nameTEXTRaw name from bankamountDOUBLETransaction amount (positive = expense)iso_currency_codeTEXTCurrency (e.g., \"USD\")account_idTEXTLinked account referencecategory_idTEXTCategory referencependingBOOLEANWhether transaction is pendingrecurringBOOLEANWhether transaction is recurringrecurring_idTEXTLinks to recurring definition (see Firestore)user_noteTEXTUser-added notesuser_deletedBOOLEANSoft-deleted by user"
      },
      {
        "title": "accountDailyBalance Table",
        "body": "Daily balance snapshots per account.\n\nColumnTypeDescriptiondateTEXTSnapshot dateaccount_idTEXTAccount referencecurrent_balanceDOUBLEBalance on that dateavailable_balanceDOUBLEAvailable balance"
      },
      {
        "title": "Firestore Cache (LevelDB)",
        "body": "Additional data is stored in Firestore's local LevelDB cache, not in the SQLite database.\n\nLocation:\n\n~/Library/Containers/com.copilot.production/Data/Library/Application Support/firestore/__FIRAPP_DEFAULT/copilot-production-22904/main/*.ldb"
      },
      {
        "title": "Collections",
        "body": "CollectionDescriptionitemsLinked bank accounts/institutionsinvestment_pricesHistorical security pricesinvestment_performanceTWR (time-weighted return) per holdinginvestment_splitsStock split historysecuritiesStock/fund metadatausers/.../budgetsBudget definitions (amount, category_id)users/.../recurringsRecurring transaction definitionsamazonAmazon order matching data"
      },
      {
        "title": "Recurring Definitions",
        "body": "FieldDescriptionnameDisplay name (e.g., \"Water / Sewer\", \"Rent\")match_stringTransaction name to match (e.g., \"CHECK PAID\")plaid_category_idCategory ID for the recurringstate\"active\" or \"inactive\""
      },
      {
        "title": "Data Not in SQLite",
        "body": "Recurring names - human-readable names like \"Rent\", \"Netflix\"\nBudget amounts - monthly budget per category\nInvestment data - holdings, prices, performance, splits\nAccount/institution names - Chase, Fidelity, etc.\nCategory names - Restaurants, Travel, Groceries, etc."
      },
      {
        "title": "Extracting Data from LevelDB",
        "body": "List all recurring names:\n\nfor f in ~/Library/Containers/com.copilot.production/Data/Library/Application\\ Support/firestore/__FIRAPP_DEFAULT/copilot-production-22904/main/*.ldb; do\n  strings \"$f\" 2>/dev/null | grep -B10 \"^state$\" | grep -A1 \"^name$\" | grep -v \"^name$\" | grep -v \"^--$\"\ndone | sort -u | grep -v \"^$\"\n\nList all collections:\n\nfor f in ~/Library/Containers/com.copilot.production/Data/Library/Application\\ Support/firestore/__FIRAPP_DEFAULT/copilot-production-22904/main/*.ldb; do\n  strings \"$f\" 2>/dev/null\ndone | grep -oE \"documents/[a-z_]+/\" | sort | uniq -c | sort -rn\n\nFind category names:\n\nfor f in ~/Library/Containers/com.copilot.production/Data/Library/Application\\ Support/firestore/__FIRAPP_DEFAULT/copilot-production-22904/main/*.ldb; do\n  strings \"$f\" 2>/dev/null\ndone | grep -iE \"^(groceries|restaurants|shopping|entertainment|travel|transportation|utilities)$\" | sort -u"
      },
      {
        "title": "Recent Transactions",
        "body": "SELECT date, name, amount, category_id\nFROM Transactions\nWHERE user_deleted = 0\nORDER BY date DESC\nLIMIT 20;"
      },
      {
        "title": "Monthly Spending Summary",
        "body": "SELECT strftime('%Y-%m', date) as month, SUM(amount) as total\nFROM Transactions\nWHERE amount > 0 AND user_deleted = 0\nGROUP BY month\nORDER BY month DESC;"
      },
      {
        "title": "Spending by Category",
        "body": "SELECT category_id, SUM(amount) as total, COUNT(*) as count\nFROM Transactions\nWHERE amount > 0 AND user_deleted = 0 AND date >= date('now', '-30 days')\nGROUP BY category_id\nORDER BY total DESC;"
      },
      {
        "title": "Search Transactions",
        "body": "SELECT date, name, amount\nFROM Transactions\nWHERE name LIKE '%SEARCH_TERM%' AND user_deleted = 0\nORDER BY date DESC;"
      },
      {
        "title": "List Recurring Transactions",
        "body": "SELECT DISTINCT name, recurring_id\nFROM Transactions\nWHERE recurring = 1 AND user_deleted = 0\nORDER BY name;"
      },
      {
        "title": "Usage",
        "body": "Use sqlite3 to query the database:\n\nsqlite3 ~/Library/Group\\ Containers/group.com.copilot.production/database/CopilotDB.sqlite \"YOUR_QUERY\"\n\nFor formatted output:\n\nsqlite3 -header -column ~/Library/Group\\ Containers/group.com.copilot.production/database/CopilotDB.sqlite \"YOUR_QUERY\""
      },
      {
        "title": "Notes",
        "body": "Category IDs are opaque strings - group by them for analysis (names are in Firestore cache)\nAmounts are positive for expenses, negative for income\nFilter user_deleted = 0 to exclude deleted transactions\nBoth databases are actively used by the app; read-only access is safe\nSQLite has recurring_id linking to Firestore recurring definitions\nUse strings on LevelDB files to extract human-readable data from Firestore cache"
      }
    ],
    "body": "Copilot Money\n\nQuery local data from the Copilot Money Mac app to analyze transactions, spending patterns, account balances, investments, and budgets. Data is stored in both SQLite (transactions, balances) and Firestore LevelDB cache (recurring names, budgets, investments).\n\nDatabase Location\n~/Library/Group Containers/group.com.copilot.production/database/CopilotDB.sqlite\n\nSchema\nTransactions Table\n\nPrimary table for all financial transactions.\n\nColumn\tType\tDescription\nid\tTEXT\tPrimary key\ndate\tDATE\tTransaction date\nname\tTEXT\tMerchant/transaction name\noriginal_name\tTEXT\tRaw name from bank\namount\tDOUBLE\tTransaction amount (positive = expense)\niso_currency_code\tTEXT\tCurrency (e.g., \"USD\")\naccount_id\tTEXT\tLinked account reference\ncategory_id\tTEXT\tCategory reference\npending\tBOOLEAN\tWhether transaction is pending\nrecurring\tBOOLEAN\tWhether transaction is recurring\nrecurring_id\tTEXT\tLinks to recurring definition (see Firestore)\nuser_note\tTEXT\tUser-added notes\nuser_deleted\tBOOLEAN\tSoft-deleted by user\naccountDailyBalance Table\n\nDaily balance snapshots per account.\n\nColumn\tType\tDescription\ndate\tTEXT\tSnapshot date\naccount_id\tTEXT\tAccount reference\ncurrent_balance\tDOUBLE\tBalance on that date\navailable_balance\tDOUBLE\tAvailable balance\nFirestore Cache (LevelDB)\n\nAdditional data is stored in Firestore's local LevelDB cache, not in the SQLite database.\n\nLocation:\n\n~/Library/Containers/com.copilot.production/Data/Library/Application Support/firestore/__FIRAPP_DEFAULT/copilot-production-22904/main/*.ldb\n\nCollections\nCollection\tDescription\nitems\tLinked bank accounts/institutions\ninvestment_prices\tHistorical security prices\ninvestment_performance\tTWR (time-weighted return) per holding\ninvestment_splits\tStock split history\nsecurities\tStock/fund metadata\nusers/.../budgets\tBudget definitions (amount, category_id)\nusers/.../recurrings\tRecurring transaction definitions\namazon\tAmazon order matching data\nRecurring Definitions\nField\tDescription\nname\tDisplay name (e.g., \"Water / Sewer\", \"Rent\")\nmatch_string\tTransaction name to match (e.g., \"CHECK PAID\")\nplaid_category_id\tCategory ID for the recurring\nstate\t\"active\" or \"inactive\"\nData Not in SQLite\nRecurring names - human-readable names like \"Rent\", \"Netflix\"\nBudget amounts - monthly budget per category\nInvestment data - holdings, prices, performance, splits\nAccount/institution names - Chase, Fidelity, etc.\nCategory names - Restaurants, Travel, Groceries, etc.\nExtracting Data from LevelDB\n\nList all recurring names:\n\nfor f in ~/Library/Containers/com.copilot.production/Data/Library/Application\\ Support/firestore/__FIRAPP_DEFAULT/copilot-production-22904/main/*.ldb; do\n  strings \"$f\" 2>/dev/null | grep -B10 \"^state$\" | grep -A1 \"^name$\" | grep -v \"^name$\" | grep -v \"^--$\"\ndone | sort -u | grep -v \"^$\"\n\n\nList all collections:\n\nfor f in ~/Library/Containers/com.copilot.production/Data/Library/Application\\ Support/firestore/__FIRAPP_DEFAULT/copilot-production-22904/main/*.ldb; do\n  strings \"$f\" 2>/dev/null\ndone | grep -oE \"documents/[a-z_]+/\" | sort | uniq -c | sort -rn\n\n\nFind category names:\n\nfor f in ~/Library/Containers/com.copilot.production/Data/Library/Application\\ Support/firestore/__FIRAPP_DEFAULT/copilot-production-22904/main/*.ldb; do\n  strings \"$f\" 2>/dev/null\ndone | grep -iE \"^(groceries|restaurants|shopping|entertainment|travel|transportation|utilities)$\" | sort -u\n\nCommon Queries\nRecent Transactions\nSELECT date, name, amount, category_id\nFROM Transactions\nWHERE user_deleted = 0\nORDER BY date DESC\nLIMIT 20;\n\nMonthly Spending Summary\nSELECT strftime('%Y-%m', date) as month, SUM(amount) as total\nFROM Transactions\nWHERE amount > 0 AND user_deleted = 0\nGROUP BY month\nORDER BY month DESC;\n\nSpending by Category\nSELECT category_id, SUM(amount) as total, COUNT(*) as count\nFROM Transactions\nWHERE amount > 0 AND user_deleted = 0 AND date >= date('now', '-30 days')\nGROUP BY category_id\nORDER BY total DESC;\n\nSearch Transactions\nSELECT date, name, amount\nFROM Transactions\nWHERE name LIKE '%SEARCH_TERM%' AND user_deleted = 0\nORDER BY date DESC;\n\nList Recurring Transactions\nSELECT DISTINCT name, recurring_id\nFROM Transactions\nWHERE recurring = 1 AND user_deleted = 0\nORDER BY name;\n\nUsage\n\nUse sqlite3 to query the database:\n\nsqlite3 ~/Library/Group\\ Containers/group.com.copilot.production/database/CopilotDB.sqlite \"YOUR_QUERY\"\n\n\nFor formatted output:\n\nsqlite3 -header -column ~/Library/Group\\ Containers/group.com.copilot.production/database/CopilotDB.sqlite \"YOUR_QUERY\"\n\nNotes\nCategory IDs are opaque strings - group by them for analysis (names are in Firestore cache)\nAmounts are positive for expenses, negative for income\nFilter user_deleted = 0 to exclude deleted transactions\nBoth databases are actively used by the app; read-only access is safe\nSQLite has recurring_id linking to Firestore recurring definitions\nUse strings on LevelDB files to extract human-readable data from Firestore cache"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/chardigio/copilot-money-mac",
    "publisherUrl": "https://clawhub.ai/chardigio/copilot-money-mac",
    "owner": "chardigio",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/copilot-money-mac",
    "downloadUrl": "https://openagent3.xyz/downloads/copilot-money-mac",
    "agentUrl": "https://openagent3.xyz/skills/copilot-money-mac/agent",
    "manifestUrl": "https://openagent3.xyz/skills/copilot-money-mac/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/copilot-money-mac/agent.md"
  }
}