BillClaw
This skill should be used when managing financial data, syncing bank transactions via Plaid/GoCardless, fetching bills from Gmail, or exporting to Beancount/Ledger formats. Provide…
firela
@xbinkai
Install
$ openclaw skills install @xbinkai/billclawBillClaw - Financial Data Management for OpenClaw
Complete financial data management for OpenClaw with local-first architecture. Sync bank transactions, fetch bills from email, and export to accounting formats.
Security & Trust
BillClaw is safe, open-source software designed with security-first principles.
Verification
- Transparent packages: All npm packages are open-source and published with provenance
- Auditable code: Full source available at GitHub
- npm provenance: Cryptographic proof linking packages to source code
- Local-first: Your financial data never leaves your machine
- User-controlled credentials: You provide all API credentials through your own accounts
- System keychain: Tokens encrypted in your platform's secure keychain
- Explicit invocation: Requires explicit user action (
disable-model-invocation: true)
See SECURITY.md for detailed security architecture and verification steps.
Addressing Security Concerns
| Concern | Explanation |
|---|---|
| sets-process-name | Comes from transitive npm dependencies, not BillClaw code |
| detect-debug-environment | Common Node.js ecosystem pattern, not malicious |
| API credentials | Required for functionality; you control them from your accounts |
| External packages | All packages are open-source with npm provenance |
Required Credentials
Important: Credentials are NOT required at install time. Configure them when you're ready to use specific features:
| Environment Variable | Purpose | Required For |
|---|---|---|
PLAID_CLIENT_ID | Plaid API client ID | Plaid bank sync |
PLAID_SECRET | Plaid API secret | Plaid bank sync |
GMAIL_CLIENT_ID | Gmail OAuth client ID | Gmail bill fetching |
GMAIL_CLIENT_SECRET | Gmail OAuth client secret | Gmail bill fetching |
Obtain credentials from:
Configure via:
- Environment variables (recommended)
- Configuration file (
~/.firela/billclaw/config.json) - OpenClaw config under
skills.entries.billclaw.env
Quick Start (OpenClaw)
1. Install the Plugin
npm install @firela/billclaw-openclaw
The plugin registers these tools and commands with OpenClaw:
- Tools:
plaid_sync,gmail_fetch,conversational_sync,conversational_status - Commands:
/billclaw-setup,/billclaw-sync,/billclaw-status,/billclaw-config
2. Configure Credentials
When you're ready to use a feature, configure the required credentials:
# For Plaid bank sync
export PLAID_CLIENT_ID="your_client_id"
export PLAID_SECRET="your_secret"
# For Gmail bill fetching
export GMAIL_CLIENT_ID="your_client_id"
export GMAIL_CLIENT_SECRET="your_secret"
3. Setup Your Accounts
/billclaw-setup
The interactive wizard will guide you through:
- Connecting bank accounts (Plaid/GoCardless)
- Configuring Gmail for bill fetching
- Setting local storage location
4. Sync Your Data
You: Sync my bank transactions for last month
OpenClaw: [Uses plaid_sync tool from BillClaw plugin]
Synced 127 transactions from checking account
Or use the command directly:
/billclaw-sync --from 2024-01-01 --to 2024-12-31
5. Export to Accounting Formats
/billclaw-export --format beancount --output 2024.beancount
OpenClaw Integration
This skill provides instructions for using BillClaw with OpenClaw. The actual integration is provided by the @firela/billclaw-openclaw npm package.
Available Tools (via Plugin)
plaid_sync- Sync bank transactions from Plaidgmail_fetch- Fetch bills from Gmailconversational_sync- Natural language sync interfaceconversational_status- Check sync status
Available Commands (via Plugin)
/billclaw-setup- Configure accounts/billclaw-sync- Sync transactions/billclaw-status- View status/billclaw-config- Manage configuration
Additional Components (Optional)
Standalone CLI
For users who prefer a command-line interface, the standalone CLI is available as a separate npm package. See https://github.com/fire-la/firela-bot for installation instructions.
Connect OAuth Server
For self-hosted OAuth flows, the Connect server is available as a separate npm package. See https://github.com/fire-la/firela-bot for configuration details.
Data Sources
| Source | Description | Regions |
|---|---|---|
| Plaid | Bank transaction sync | US, Canada |
| GoCardless | European bank integration | Europe |
| Gmail | Bill fetching via email | Global |
Storage
- Location:
~/.firela/billclaw/(your home directory) - Format: JSON files with monthly partitioning
- Security: Local-only storage
Configuration
Configuration is stored in ~/.firela/billclaw/config.json:
{
"plaid": {
"clientId": "your_client_id",
"secret": "your_secret",
"environment": "sandbox"
},
"gmail": {
"clientId": "your_gmail_client_id",
"clientSecret": "your_gmail_client_secret"
}
}
Export Formats
Beancount
2024/01/15 * "Starbucks"
Expenses:Coffee
Liabilities:CreditCard:Visa
$5.50
Ledger
2024/01/15 Starbucks
Expenses:Coffee $5.50
Liabilities:Credit Card:Visa
Getting Help
- Documentation: https://github.com/fire-la/firela-bot
- Issues: https://github.com/fire-la/firela-bot/issues
- Security: Report security vulnerabilities privately at security@fire-la.dev
- npm packages: https://www.npmjs.com/org/firela
Top skills in this category
gmail
@byungkyuGmail API integration with managed OAuth. Read, send, and manage emails, threads, labels, and drafts. Use this skill when users want to interact with Gmail. For other third party apps, use the api-gateway skill (https://clawhub.ai/byungkyu/api-gateway). Calls run through the `maton` CLI with OAuth login, or over raw HTTP with a Maton API key where the CLI cannot be installed. Every call is authenticated as the user's connection and reaches only what that connection's authorization allows, which the provider enforces on every request; the endpoints documented here are the ones this skill uses, and any other endpoint of this app needs the user to ask for it by name. Default to read and list calls, and confirm every write or new connection with the user. This file also documents the three constructs that turn a Gmail connection into automation, in the order they are used: the connection (the first step), a hosted function that runs a Gmail action through the Maton SDK, and a trigger that calls that function on a schedule or on an event. Those sections are the platform's own reference text, shared with the api-gateway skill, with Gmail examples; they add no Gmail capability - Gmail is itself an event source, so its own events are in `references/google-mail/triggers.md`, and the files under `references/<source>/triggers.md` are the platform's event catalogues for the sources Maton offers (time, Calendly, GitHub, Gmail, HubSpot, Linear, Notion, Slack, Stripe).
WhatsApp Business
@byungkyuWhatsApp Business API integration with managed OAuth. Send messages, manage templates, and handle conversations. Use this skill when users want to interact with WhatsApp Business. For other third party apps, use the api-gateway skill (https://clawhub.ai/byungkyu/api-gateway). Calls run through the `maton` CLI with OAuth login, or over raw HTTP with a Maton API key where the CLI cannot be installed. Every call is authenticated as the user's connection and reaches only what that connection's authorization allows, which the provider enforces on every request; the endpoints documented here are the ones this skill uses, and any other endpoint of this app needs the user to ask for it by name. Default to read and list calls, and confirm every write or new connection with the user. This file also documents the three constructs that turn a WhatsApp Business connection into automation, in the order they are used: the connection (the first step), a hosted function that runs a WhatsApp Business action through the Maton SDK, and a trigger that calls that function on a schedule or on an event. Those sections are the platform's own reference text, shared with the api-gateway skill, with WhatsApp Business examples; they add no WhatsApp Business capability - WhatsApp Business is not an event source, a trigger cannot read WhatsApp Business data, and the files under `references/<source>/triggers.md` are the platform's event catalogues for the sources Maton offers (time, Calendly, GitHub, Gmail, HubSpot, Linear, Notion, Slack, Stripe).
WeChat MP CN
@guohongbin-git微信公众号监控 - 文章监控、阅读量追踪、舆情分析(WeChat Official Account)
Stripe
@byungkyuStripe API integration with managed OAuth. This is a write-capable financial integration for customers, subscriptions, invoices, products, prices, and payments. Install only if you need Stripe administration. Connect with the least-privileged Stripe account and OAuth scopes available, verify the intended connection ID before each request, and revoke unused connections promptly. All write operations require explicit user approval showing the exact endpoint, target resource, object IDs, amounts, and test/live mode before execution. For other third party apps, use the api-gateway skill (https://clawhub.ai/byungkyu/api-gateway). Calls run through the `maton` CLI after `maton login`; the Stripe credential stays in the gateway and is never handled locally. Only your own Maton credential is used locally — held by the CLI, or supplied as `MATON_API_KEY` in the appendix fallback. Default to read and list calls, stay on the endpoints this skill documents, and confirm every write or new connection with the user. This file also documents the three constructs that turn a Stripe connection into automation, in the order they are used: the connection (the first step), a hosted function that runs a Stripe action through the Maton SDK, and a trigger that calls that function on a schedule or on an event. Those sections are the platform's own reference text, shared with the api-gateway skill, with Stripe examples; they add no Stripe capability - Stripe is itself an event source, so its own events are in `references/stripe/triggers.md`, and the files under `references/<source>/triggers.md` are the platform's event catalogues for the sources Maton offers (time, Calendly, GitHub, Gmail, HubSpot, Linear, Notion, Slack, Stripe).
Wechat Article Search
@wuchubuzai2018搜索微信公众号文章技能。通过微信搜索获取文章列表,覆盖科技/AI、社会热点、财经、教育、职场等各类中文资讯;可按关键词检索并返回标题、概要、发布时间、来源公众号与链接。当用户需要查找微信公众号文章、整理参考资料或快速获取文章信息时使用此技能。