← 返回
未分类

erpclaw

AI-native ERP system. Full accounting, invoicing, inventory, purchasing, tax, billing, HR, payroll, advanced accounting (ASC 606/842, intercompany, consolidation), and financial reporting. 483 actions across 14 domains, 45 optional expansion modules (user-approved install from GitHub). Double-entry GL, immutable audit trail, US GAAP compliant. Licensed under GNU GPL v3 (the marketplace "MIT-0" badge is a ClawHub platform default; the LICENSE.txt in the bundle is GPL v3).
AI-native ERP system. Full accounting, invoicing, inventory, purchasing, tax, billing, HR, payroll, advanced accounting (ASC 606/842, intercompany, consolidation), and financial reporting. 483 actions across 14 domains, 45 optional expansion modules (user-approved install from GitHub). Double-entry GL, immutable audit trail, US GAAP compliant. Licensed under GNU GPL v3 (the marketplace "MIT-0" badge is a ClawHub platform default; the LICENSE.txt in the bundle is GPL v3).
yjkj999999
未分类 community v1.0.0 1 版本 95833.3 Key: 无需
★ 0
Stars
📥 23
下载
💾 0
安装
1
版本
#latest

概述

erpclaw

Full-Stack ERP Controller for ERPClaw. Company setup, chart of accounts, journal entries, payments, tax, financial reports, customers, sales, suppliers, purchasing, inventory, billing, HR, US payroll, advanced accounting (ASC 606/842, intercompany, consolidation), and 45 optional industry modules. Local-first SQLite, double-entry GL, immutable audit trail.

Security: Local-first. Parameterized queries. RBAC (PBKDF2). Immutable GL. Sensitive fields encrypted at the column level. Network access limited to fetch-exchange-rates (public API) and user-approved install-module from github.com/avansaber/*.

System of record (the ERP is authoritative)

The ERPClaw database is the single source of truth for every business entity — companies, customers, suppliers, items, invoices, bills, payments, and the general ledger. Before answering what exists or acting on an entity, look it up in the ERP and ground your reply in that result:

  • "Which companies/customers/items do we have?" → query it (list-companies, list-customers, list-items). Never answer from memory, earlier conversations, workspace files, or any other context.
  • Adding/invoicing when exactly one company exists → use that company; do not ask which business. When several exist, offer only the ones from list-companies and ask which.
  • Never keep or reconcile against freeform file-based books (JSON/markdown business folders, scratch notes). They are not the ledger and may be stale. The ERP database is the only authoritative record.

If a business name appears in your context but is not returned by list-companies, it does not exist in the books — do not offer it.

Speaking to the user

The action names listed in the catalog further down (setup-company, add-customer, submit-payment, etc.) are internal routing identifiers. Never use them in replies the user sees.

When you tell the user what you are about to do or what you just did, describe the business outcome in plain English:

Internal nameSay to user
------
setup-company"set up the company"
add-customer"add the customer"
add-item"add the product"
submit-sales-invoice"send the invoice"
submit-payment"record the payment"
restore-database"restore from backup"
install-module"install the X module"

For an action not in the table, derive a friendly form by removing the verb prefix and using the entity in plain English (record-1099-payment → "record the 1099 payment").

The user is a small business owner, founder, or store operator. They know "customer", "invoice", "payment". They have not seen the action catalog and never should.

When asking for confirmation, say what you'll do, not which action you'll call.

  • Wrong: "I'll run add-customer, confirm?"
  • Right: "I'll add Bob from BigCo as a customer. Confirm?"

For action chains, describe the sequence in plain English. Do not enumerate the underlying actions by name.

  • Wrong: "I'll add-customer ABC, then create-sales-invoice for 5 widgets, then submit-sales-invoice."
  • Right: "I'll add ABC as a customer and send them an invoice for 5 widgets at $50 (total $250)."

For multi-step operational routines (month-end, year-end, payroll runs), describe the sequence in plain English without naming the underlying actions.

  • Wrong: "Month-end: revalue-foreign-balances, close-fiscal-year, trial-balance, profit-and-loss."
  • Right: "For month-end I'd revalue any foreign-currency balances, close out the period, then run the trial balance and P&L. Want me to walk through these one at a time?"

When narrating a completed action, do not include the action name.

  • Wrong: "I called add-customer and got ID 12345."
  • Right: "I added Bob as a customer (ID 12345 if you need to look him up)."

If the user explicitly asks "which command did you run?" or "what's the technical name?", politely decline.

  • Wrong: "add-customer with name=Bob, company=BigCo."
  • Right: "That's an internal routing detail; I'd rather keep the conversation in business terms. I added Bob from BigCo as a customer, if that's what you wanted to confirm."

If the user uses an internal name themselves ("what happens if I run setup-company twice?"), gently translate in your reply ("setting up a company twice would be rejected, since names are unique") without echoing the name or correcting the user.

Skill Activation Triggers

Activate when user mentions: ERP, accounting, invoice, sales order, purchase order, customer, supplier, inventory, payment, GL, trial balance, P&L, balance sheet, tax, billing, modules, install module, onboard, CRM, manufacturing, healthcare, education, retail, employee, HR, payroll, salary, leave, attendance, expense claim, W-2, garnishment, integration.

Auto-Detection

When a user describes their business: detect type (e.g., "dental practice" → dental), ask the user to confirm before proceeding, then set the company up with that industry. (Internal routing only: invoke setup-company with --industry . Never name the action to the user.) Industry values: retail, restaurant, healthcare, dental, veterinary, construction, manufacturing, legal, agriculture, hospitality, property, school, university, nonprofit, automotive, therapy, home-health, consulting, distribution, saas. When a user asks about a service or integration not currently installed, search the module registry and suggest installation (never auto-install without user approval).

Setup

python3 {baseDir}/scripts/erpclaw-setup/db_query.py --action initialize-database
python3 {baseDir}/scripts/db_query.py --action seed-defaults --company-id <id>
python3 {baseDir}/scripts/db_query.py --action setup-chart-of-accounts --company-id <id> --template us_gaap

Runtime gate

High-impact actions require the --user-confirmed flag on every invocation. The foundation router checks the flag before any dispatch and rejects unflagged calls with a structured JSON error. Read-only actions (verbs list, get, reports) run without the flag.

All 483 Actions

Setup & Admin (50)

ActionDescription
---------------------
initialize-database / setup-company / update-company / get-company / list-companiesDB init & company CRUD
migrateRun pending schema migrations (migrations/NNN_*.py) in order, recording each in the erpclaw_schema_migration ledger. Idempotent + dialect-aware; --dry-run lists pending without applying. Run on install and on upgrades.
add-currency / list-currencies / add-exchange-rate / get-exchange-rate / list-exchange-rates / fetch-exchange-ratesCurrency & FX
add-payment-terms / list-payment-terms / add-uom / list-uoms / add-uom-conversionTerms & UoMs
seed-defaults / seed-demo-data / check-installation / install-guide / setup-web-dashboard / tutorial / onboarding-step / statusSeeding & utilities
add-account-type / list-account-types / deactivate-account-type / add-voucher-type / list-voucher-types / deactivate-voucher-type / validate-registry-completenessType/status registry admin (M0): register/inspect/soft-disable the account_type / voucher_type values that replaced hardcoded CHECK constraints
add-custom-field / list-custom-fields / remove-custom-field / set-custom-field-value / get-custom-field-valuesCustom fields (M1): define user-defined fields on any core table and store/read their values. Write-side actions in selling/buying/inventory accept --custom-fields '{"name":"value"}' and return them on get
set-advance-accountAdvances (S2): configure a company's B1-style advance sub-account (--type customer→liability, --type supplier→asset); submit-payment then routes the unallocated advance leg there
add-user / update-user / get-user / list-users / set-passwordUser management
add-role / list-roles / assign-role / revoke-role / seed-permissionsRBAC & security
link-telegram-user / unlink-telegram-user / check-telegram-permissionTelegram integration
backup-database / list-backups / verify-backup / restore-database / cleanup-backupsDB backup/restore
set-credential / get-credential / list-credentials / delete-credential / migrate-credentialsEncrypted credential management
import-master-key-from-backupCross-machine restore: install master key from a backup taken on another machine
get-audit-log / get-schema-version / update-regional-settings / onboardSystem admin

General Ledger (26)

ActionDescription
---------------------
setup-chart-of-accounts / add-account / update-account / get-account / list-accountsAccount CRUD
freeze-account / unfreeze-account / get-account-balance / check-gl-integrityAccount management
post-gl-entries / reverse-gl-entries / list-gl-entriesGL posting
add-fiscal-year / list-fiscal-years / validate-period-close / close-fiscal-year / reopen-fiscal-yearFiscal year
add-cost-center / list-cost-centers / add-budget / list-budgetsCost centers & budgets
seed-naming-series / next-series / revalue-foreign-balancesNaming & FX revaluation
import-chart-of-accounts / import-opening-balancesCSV import

Journal Entries (16)

ActionDescription
---------------------
add-journal-entry / update-journal-entry / get-journal-entry / list-journal-entriesJE CRUD
submit-journal-entry / cancel-journal-entry / amend-journal-entry / delete-journal-entry / duplicate-journal-entryJE lifecycle
create-intercompany-jeIntercompany JE
add-recurring-template / update-recurring-template / list-recurring-templates / get-recurring-template / process-recurring / delete-recurring-templateRecurring JEs

Payments (13)

ActionDescription
---------------------
add-payment / update-payment / get-payment / list-payments / submit-payment / cancel-payment / delete-paymentPayment CRUD & lifecycle
create-payment-ledger-entry / get-outstanding / get-unallocated-payments / allocate-payment / reconcile-payments / bank-reconciliationReconciliation
list-open-advances / apply-advance-to-invoiceAdvances (S2): SAP-B1-vocabulary aliases for get-unallocated-payments / allocate-payment (same semantics)

Tax (17)

ActionDescription
---------------------
add-tax-template / update-tax-template / get-tax-template / list-tax-templates / delete-tax-templateTax template CRUD
resolve-tax-template / calculate-tax / add-tax-category / list-tax-categories / add-tax-rule / list-tax-rulesTax rules
add-item-tax-template / add-tax-withholding-category / get-withholding-detailsWithholding
record-withholding-entry / record-1099-payment / generate-1099-data1099 reporting

Financial Reports (20)

ActionDescription
---------------------
trial-balance / profit-and-loss / balance-sheet / cash-flow / general-ledger / party-ledgerCore statements
ar-aging / ap-aging / budget-vs-actual (alias: budget-variance)Aging & budget
tax-summary / payment-summary / gl-summary / comparative-pl / check-overdueSummaries
add-elimination-rule / list-elimination-rules / run-elimination / list-elimination-entriesIntercompany

Selling (53)

ActionDescription
---------------------
add-customer / update-customer / get-customer / list-customers / import-customersCustomer CRUD (add/update accept --email / --phone — dedicated structured columns)
add-quotation / update-quotation / get-quotation / list-quotations / submit-quotation / convert-quotation-to-soQuotations
add-sales-order / update-sales-order / get-sales-order / list-sales-orders / submit-sales-order / cancel-sales-order / amend-sales-order / close-sales-orderSales orders
add-blanket-order / get-blanket-order / list-blanket-orders / submit-blanket-order / create-so-from-blanketBlanket orders
create-delivery-note / get-delivery-note / list-delivery-notes / submit-delivery-note / cancel-delivery-note / add-packing-slip / get-packing-slip / list-packing-slipsDelivery & packing
create-sales-invoice / update-sales-invoice / get-sales-invoice / list-sales-invoices / submit-sales-invoice / cancel-sales-invoiceInvoicing
create-credit-note / list-credit-notes / update-invoice-outstandingCredit notes
add-sales-partner / list-sales-partnersSales partners
add-recurring-template / update-recurring-template / list-recurring-templates / generate-recurring-invoicesRecurring invoices
add-intercompany-account-map / list-intercompany-account-maps / create-intercompany-invoice / list-intercompany-invoices / cancel-intercompany-invoiceIntercompany
check-credit-limit / place-customer-on-holdCredit control: compute available credit (limit minus outstanding AR); place customer on hold / suspend / restore active
add-dunning-level / run-dunning-cycle / list-dunning-runsDunning: configure escalation levels (at N days overdue → email / call / hold / suspend); run a cycle that matches overdue invoices to their highest applicable level and applies the configured action — email levels enqueue a dunning email via the erpclaw-alerts send-email action and record the outbox id on dunning_run.generated_email_id (missing customer email or template skips-with-note, never failing the cycle); view run history

Buying (40)

ActionDescription
---------------------
add-supplier / update-supplier / get-supplier / list-suppliers / import-suppliersSupplier CRUD (add/update accept --email / --phone — dedicated structured columns)
add-material-request / submit-material-request / list-material-requestsMaterial requests
add-rfq / submit-rfq / list-rfqs / add-supplier-quotation / list-supplier-quotations / compare-supplier-quotationsRFQs & quotes
add-purchase-order / update-purchase-order / get-purchase-order / list-purchase-orders / submit-purchase-order / cancel-purchase-order / close-purchase-orderPurchase orders
add-blanket-po / get-blanket-po / list-blanket-pos / submit-blanket-po / create-po-from-blanket / create-po-from-so / create-drop-ship-orderBlanket POs & drop ship
create-purchase-receipt / get-purchase-receipt / list-purchase-receipts / submit-purchase-receipt / cancel-purchase-receiptReceipts
create-purchase-invoice / update-purchase-invoice / get-purchase-invoice / list-purchase-invoices / submit-purchase-invoice / cancel-purchase-invoicePurchase invoices
create-debit-note / add-landed-cost-voucher / update-receipt-tolerance / update-three-way-match-policyAdjustments

Inventory (42)

ActionDescription
---------------------
add-item / update-item / get-item / list-items / import-items / add-item-group / list-item-groupsItem master
add-item-attribute / create-item-variant / generate-item-variants / list-item-variantsItem variants
add-item-supplier / list-item-suppliers / set-item-purchase-uomItem suppliers
add-warehouse / update-warehouse / list-warehousesWarehouses
add-stock-entry / get-stock-entry / list-stock-entries / submit-stock-entry / cancel-stock-entryStock entries
create-stock-ledger-entries / reverse-stock-ledger-entriesStock ledger
get-stock-balance / stock-balance / stock-balance-report / stock-ledger-report / get-projected-qtyStock reports
add-batch / list-batches / add-serial-number / list-serial-numbersBatch & serial
add-price-list / add-item-price / get-item-price / add-pricing-rulePricing
add-stock-reconciliation / submit-stock-reconciliationReconciliation
revalue-stock / list-stock-revaluations / get-stock-revaluation / cancel-stock-revaluation / check-reorderRevaluation & reorder

Billing & Metering (23)

ActionDescription
---------------------
add-meter / update-meter / get-meter / list-meters / add-meter-reading / list-meter-readingsMeters
add-usage-event / add-usage-events-batchUsage tracking
add-rate-plan / update-rate-plan / get-rate-plan / list-rate-plans / rate-consumptionRate plans
create-billing-period / run-billing / generate-invoices / get-billing-period / list-billing-periodsBilling cycles
add-billing-adjustment / add-prepaid-credit / get-prepaid-balanceAdjustments & prepaid
add-recurring-bill-template / list-recurring-bill-templates / generate-recurring-billsRecurring bills

Advanced Accounting (45)

ActionDescription
---------------------
add-revenue-contract / update-revenue-contract / get-revenue-contract / list-revenue-contractsRevenue contracts
add-performance-obligation / list-performance-obligations / satisfy-performance-obligationASC 606
add-variable-consideration / list-variable-considerations / modify-contractVariable consideration
calculate-revenue-schedule / generate-revenue-entries / revenue-waterfall-report / revenue-recognition-summaryRevenue recognition
recognize-schedule-entry / update-performance-obligation / update-schedule-amountsRevenue schedule management
add-lease / update-lease / get-lease / list-leases / classify-leaseASC 842 leases
calculate-rou-asset / calculate-lease-liability / generate-amortization-schedule / record-lease-paymentLease calculations
lease-maturity-report / lease-disclosure-report / lease-summaryLease reports
add-ic-transaction / update-ic-transaction / get-ic-transaction / list-ic-transactionsIntercompany
approve-ic-transaction / post-ic-transaction / add-transfer-price-rule / list-transfer-price-rulesIC approvals
ic-reconciliation-report / ic-elimination-reportIC reports
add-consolidation-group / list-consolidation-groups / add-group-entity / add-currency-translationConsolidation setup
run-consolidation / generate-elimination-entries / consolidation-trial-balance-report / consolidation-summaryConsolidation
standards-compliance-dashboardASC 606/842 compliance

HR & Payroll (58)

ActionDescription
---------------------
add-employee / update-employee / get-employee / list-employees / record-lifecycle-eventEmployee CRUD
add-employee-bank-account / list-employee-bank-accounts / add-employee-document / get-employee-document / list-employee-documents / check-expiring-documentsEmployee details
add-department / list-departments / add-designation / list-designationsOrg structure
add-leave-type / list-leave-types / add-leave-allocation / get-leave-balanceLeave config
add-leave-application / approve-leave / reject-leave / list-leave-applicationsLeave requests
mark-attendance / bulk-mark-attendance / list-attendance / add-holiday-listAttendance
add-shift-type / update-shift-type / list-shift-types / assign-shift / list-shift-assignmentsShift management
add-regularization-rule / apply-attendance-regularizationAttendance regularization
add-expense-claim / submit-expense-claim / approve-expense-claim / reject-expense-claim / update-expense-claim-status / list-expense-claimsExpenses
add-salary-component / list-salary-components / add-salary-structure / get-salary-structure / list-salary-structuresSalary config
add-salary-assignment / list-salary-assignments / add-income-tax-slab / add-state-tax-slab / update-employee-state-configPayroll config
update-fica-config / update-futa-suta-config / add-overtime-policy / calculate-overtime / calculate-retro-payTax & overtime
create-payroll-run / generate-salary-slips / get-salary-slip / list-salary-slips / submit-payroll-run / cancel-payroll-runPayroll processing
generate-w2-data / generate-nacha-file / add-garnishment / update-garnishment / get-garnishment / list-garnishmentsW-2, NACHA, garnishments
get-amendment-historyAmendment tracking

Module Management & Schema (19)

ActionDescription
---------------------
install-module / remove-module / update-modules / list-modules / available-modules / search-modules / module-statusModule catalog (install/remove require user approval)
rebuild-action-cache / list-all-actions / list-profiles / onboard / list-industriesActions & profiles
validate-module / list-articles / build-table-registryConstitution + module discovery (read-only)
schema-plan / schema-apply / schema-rollback / schema-driftSchema migration (apply/rollback require user approval)
regenerate-skill-mdRegenerate SKILL.md
update-foundation / rollback-foundation / verify-trust-rootReconcile installed foundation files with the published manifest; reconcile actions require user approval

> Foundation reconciliation. Reconciliation verifies an ed25519 signature on the registry against an embedded public key before trusting any file hash. Two user-invoked actions keep an installed foundation aligned with the published manifest in module_registry.json. update-foundation --user-confirmed compares each installed file's SHA256 against the signed manifest, and for any drift, replaces the file from the published source after re-verifying the declared hash; a pre-flight verifies all replacements before any rename, so a hash failure leaves the install unchanged. Each replaced file is preserved as .bak for one cycle, and rollback-foundation --user-confirmed reverts that cycle. verify-trust-root prints the embedded key fingerprint for out-of-band verification. A periodic convenience check, suppressed by the marker file ~/.openclaw/erpclaw/.skip_reconcile or the per-invocation flag --no-reconcile-check, may surface a reminder when version drift is present; the user runs update-foundation to apply. The router never modifies installed code without an explicit gated invocation. Signature verification is mandatory on the reconciliation path; the only exception is a documented operator recovery path that records to the audit log.

> Module authoring + variant analysis (developer tooling): module generation, in-module feature injection, sandboxed test execution, deploy pipeline, variant analysis, gap detection, heartbeat analysis, semantic checks, and the OS-engine status command live in the optional erpclaw-os-engine addon (~30 actions, all os- prefixed). The addon is GitHub-only and not installed by default. Install via module_manager.py --action install-module --module-name erpclaw-os-engine. Foundation does not run module-generation or auto-deploy code paths.

Always ask the user to confirm before doing any of the following. Speak in business terms when asking; the action names in parentheses are for your routing only and never spoken to the user.

  • Set up a company (setup-company)
  • Run onboarding (onboard)
  • Install, remove, or update a module (install-module / remove-module / update-modules)
  • Apply or roll back schema changes (schema-apply / schema-rollback)
  • Submit, cancel, approve, or reject any document (submit- / cancel- / approve- / reject-)
  • Run consolidation or intercompany elimination (run-consolidation / run-elimination)
  • Restore the database (restore-database)
  • Close the fiscal year (close-fiscal-year)
  • Force-reinitialize the database (initialize-database --force)

Optional scheduling (background email workers)

ERPClaw never installs cron jobs automatically. Two background workers are meant to run on a schedule once a business turns on email automation. Register them with the OpenClaw cron facility — the same openclaw cron add path used for any recurring ERPClaw job (confirm with the user first):

# Send queued emails — every 1 minute (erpclaw-alerts: process-email-queue)
openclaw cron add --name erpclaw-email-queue --cron "* * * * *" \
  --message "Using erpclaw, run the process-email-queue action."

# Advance drip-campaign sends — every 5 minutes (erpclaw-growth: process-drip-sends)
openclaw cron add --name erpclaw-drip-sends --cron "*/5 * * * *" \
  --message "Using erpclaw, run the process-drip-sends action."

process-email-queue (every 1 minute) drains the email outbox with exponential backoff; process-drip-sends (every 5 minutes) advances due drip enrollments. Both are idempotent, so re-running inside an interval will not double-send. Remove a schedule with openclaw cron remove --name . SKILL.md cron: blocks are decorative and never auto-register — explicit openclaw cron add is the only active scheduling path (see CHANGELOG v4.1.0).

Technical Details (Tier 3)

Router: scripts/db_query.py -> 14 core domains. Optional modules installed from GitHub (avansaber/) to ~/.openclaw/erpclaw/modules/ (user-approved only). Single SQLite DB (WAL). 188 core tables (688 with modules). Money=TEXT(Decimal), IDs=TEXT(UUID4), GL immutable. Python 3.10+. All network activity limited to: (1) fetch-exchange-rates, the public exchange rate API; (2) install-module, git clone from github.com/avansaber/ only, requires user approval.

版本历史

共 1 个版本

  • v1.0.0 从ClawHub迁移发布 当前
    2026-06-07 11:41 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

xhs-title-copywriter

user_15292d5a
基于用户输入的任何信息生成小红书爆款标题的专业工具。无论用户输入什么,最终目标都是生成小红书爆款标题。
★ 1 📥 26

xhs-explosive-content-detector

user_15292d5a
小红书热门笔记搜索工具,支持关键词搜索获取热门内容数据,基于数据评分排序推荐热门笔记,助力创作者发现热门趋势、获取创作灵感。仅在主Agent中执行,不派发给子Agent。
★ 1 📥 25

darwin-skill-qszf

user_15292d5a
达尔文.skill 2.0 — 自主Skill优化系统:评估→改进→测试→保留或回滚。与女娲.skill配合使用:女娲造人(创建Skill),达尔文进化(优化Skill)。集成微软SkillLens 9维评分+SkillOpt验证机制
★ 0 📥 49