Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
AI bookkeeping agent for Mercury bank accounts. Pulls transactions, categorizes them (rule-based + AI), and generates Excel workbooks with P&L, Balance Sheet...
AI bookkeeping agent for Mercury bank accounts. Pulls transactions, categorizes them (rule-based + AI), and generates Excel workbooks with P&L, Balance Sheet...
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
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. Summarize what changed and any follow-up checks I should run.
AI bookkeeping skill for Mercury bank accounts.
scripts/init_db.mjs β creates DB + seeds ~90 universal vendorβcategory rules scripts/connect_mercury.sh <MERCURY_API_TOKEN> [entity_name] β discovers accounts (Optional) scripts/connect_stripe.sh <entity_id> <stripe_api_key> β connect Stripe for exact revenue + fees (If Stripe connected) scripts/pull_stripe_revenue.sh <entity_id> <start_date> <end_date> β pull monthly revenue data scripts/pull_transactions.sh <entity_id> <start_date> <end_date> scripts/categorize.sh <entity_id> β rule-based first, AI for unknowns Review ambiguous items, correct with scripts/set_category.sh scripts/generate_books.sh <entity_id> <start_date> <end_date> [output_path]
Get from Mercury Dashboard β Settings β API Tokens. The token gives read-only access to transactions.
Without Stripe API: Mercury shows net Stripe deposits (revenue minus fees). The system estimates gross revenue using a configurable fee rate (default 2.3% + $0.30). With Stripe API: You get exact gross revenue, exact fees, and proper refund tracking. Always prefer this when available. To connect: scripts/connect_stripe.sh <entity_id> <stripe_api_key> Then pull data: scripts/pull_stripe_revenue.sh <entity_id> <start_date> <end_date> The P&L generator automatically uses Stripe data when available, falling back to Mercury estimates otherwise.
Configure per-entity via the entity_settings table: SettingDefaultDescriptionaccounting_basisaccrualaccrual or cash β cash basis uses posted dates onlymonth_offset1Fiscal year month offset (1 = calendar year)stripe_fee_rate0.023Stripe percentage fee for gross-up calculationstripe_fee_fixed0.30Stripe fixed fee per transactionamortization_monthlynullMonthly amortization amount for acquired assets
Connect Mercury β scripts/connect_mercury.sh <token> [name] discovers accounts, creates entity Pull transactions β scripts/pull_transactions.sh <entity_id> <start_date> <end_date> Categorize β scripts/categorize.sh <entity_id> [max_transactions] β rule-based first, then AI for unknowns Review ambiguous β Script outputs low-confidence items. Ask user, then update with scripts/set_category.sh <transaction_id> <category> [subcategory] Generate books β scripts/generate_books.sh <entity_id> <start_date> <end_date> [output_path]
All scripts are in scripts/. Run with bash or node. Database is SQLite at data/heath.db. ScriptPurposeinit_db.mjsCreate/migrate SQLite database + seed rulesconnect_mercury.shConnect Mercury API, discover accountspull_transactions.shPull transactions for date rangecategorize.shCategorize transactions (rules + AI)set_category.shManually set category for a transactionadd_rule.shAdd/update a categorization rulegenerate_books.shGenerate Excel workbooklist_entities.shList all entitiesconnect_stripe.shConnect Stripe API to an entitypull_stripe_revenue.shPull Stripe balance transactions by monthstatus.shShow entity status (accounts, tx counts)
See references/chart-of-accounts.md for the full chart with P&L sections and cash flow classifications.
Heath Ledger gets smarter over time through a layered rule system:
Entity-specific rules (highest priority) β per-company overrides Global rules (entity_id = NULL) β apply to all entities Seed rules β universal vendor mappings shipped with the skill AI categorization β used when no rule matches
Every manual correction creates or updates a categorization rule Rules track usage_count β heavily-used rules are more reliable source field tracks provenance: seed, ai, human, manual Human-confirmed rules get confidence: 0.95-1.0 AI-generated rules start at 0.85 and can be promoted Entity-specific rules can be promoted to global when they prove universal
After categorizing ~5,000 transactions across 2 entities, the system now auto-categorizes ~95% of transactions without AI. Each new entity benefits from all previous learnings.
Mercury deposits from Stripe are net amounts (revenue minus ~2.9% + $0.30 fees). Without the Stripe API: We estimate gross revenue using configurable fee rates This creates "synthetic" Stripe Fee entries Accuracy depends on your actual Stripe fee rate (varies by plan, card type, international) Solution: Connect Stripe API for exact numbers
Deel combines platform fees and contractor payroll in one transaction stream. Pattern: Small fixed amounts (~$2-5) β Deel Platform Fee β categorize as "Software expenses" Larger variable amounts β Contractor Payroll β categorize as "Wages & Salaries" The system learns this pattern but may need initial human guidance
Only returns posted transactions (not pending) Some counterparty names are truncated or normalized differently Wire descriptions may include reference numbers that create duplicate rules
Wise transfers create both a debit (USD) and may show FX fees separately International wire fees from Mercury appear as separate line items FX gains/losses are not tracked (would need multi-currency ledger)
The categorize.sh script calls the host agent's model via stdin/stdout JSON protocol. It sends transaction batches and expects category assignments back. The script writes a prompt to stdout that the agent should process and return results for. When AI confidence < 0.85, transactions are flagged as ambiguous for user review.
Cash or accrual basis β configurable per entity Multiple entities supported β each with own connections and rules Rules persist β categorization rules saved to SQLite, reused across runs Seed rules β ~90 universal vendor mappings loaded on init Excel output β 4-tab workbook: P&L, Balance Sheet, Cash Flow, Transaction Detail
Agent frameworks, memory systems, reasoning layers, and model-native orchestration.
Largest current source with strong distribution and engagement signals.