nocfo
nocfo/nocfo-ai-toolkitUse NoCFO CLI for bookkeeping, invoicing, reporting, and schema introspection. Use when the user wants to query or update NoCFO data from an agent through terminal commands.
4 stars
0 forks
Python
21 views
SKILL.md
name: nocfo description: Use NoCFO CLI for bookkeeping, invoicing, reporting, and schema introspection. Use when the user wants to query or update NoCFO data from an agent through terminal commands.
NoCFO CLI Skill
Purpose
This skill helps an agent use the nocfo terminal client efficiently and safely for NoCFO API operations.
Prerequisites
- Install CLI:
pip install nocfo-cli
- Configure authentication:
nocfo auth configure --token <token>
- Verify:
nocfo auth status
Environment variables:
NOCFO_API_TOKENNOCFO_JWT_TOKEN(used bynocfo mcpstdio mode; preferred when both are set)NOCFO_BASE_URL(defaulthttps://api-prd.nocfo.io)NOCFO_OUTPUT_FORMAT(tableorjson)
Agent Operating Defaults
Use these defaults unless the user asks otherwise:
- Always prefer machine-readable output:
--output json
- For mutating operations, run dry-run first:
--dry-run
- Prefer raw JSON payloads for complex input:
--json-body '{"...": "..."}'
- Use schema introspection before uncertain writes:
nocfo schema listnocfo schema show <query>
Command Structure
Pattern:
nocfo <group> <action> [options]- Global options:
--output,--env-file,--base-url,--api-token,--dry-run
Main groups:
authbusinessesaccountsdocumentscontactsinvoicespurchase-invoicesproductsfilestagsuserreportsschema
Common Workflows
1) Check current user and businesses
nocfo user me
nocfo businesses list
2) List invoices for a business
nocfo invoices list --business my-business --query status=PAID
3) Create or update resources
Use either repeated --field pairs or --json-body.
nocfo contacts create --business my-business --field name=Example --field is_invoicing_enabled=true
nocfo products update 123 --business my-business --field name=UpdatedName --partial
Agent-safe mutation pattern:
nocfo --output json --dry-run products update 123 --business my-business --json-body '{"name":"UpdatedName"}' --partial
nocfo --output json products update 123 --business my-business --json-body '{"name":"UpdatedName"}' --partial
4) Document and account operations
nocfo documents list --business my-business --query date_from=2026-01-01
nocfo accounts get 1910 --business my-business
5) File upload
nocfo files upload ./invoice.pdf --business my-business
6) Accounting reports (JSON)
nocfo reports balance-sheet --business my-business --date-at 2026-12-31 --extend-accounts
nocfo reports balance-sheet-short --business my-business --date-at 2026-12-31 --extend-accounts
nocfo reports income-statement --business my-business --date-from 2026-01-01 --date-to 2026-12-31
nocfo reports income-statement-short --business my-business --date-from 2026-01-01 --date-to 2026-12-31
nocfo reports ledger --business my-business --date-from 2026-01-01 --date-to 2026-01-31
nocfo reports journal --business my-business --date-from 2026-01-01 --date-to 2026-01-31
nocfo reports vat --business my-business --date-from 2026-01-01 --date-to 2026-01-31
nocfo reports equity-changes --business my-business --date-at 2026-12-31
7) Schema introspection
nocfo schema list
nocfo schema list --all
nocfo schema show report/json
nocfo schema show "Reports - Generate JSON Report"
Error Handling
- If command fails with auth errors, run
nocfo auth statusand refresh token. - If endpoint or payload fails, retry with
--output jsonto inspect exact response. - Prefer idempotent reads first (
list,get) before writes (create,update,delete). - If payload validation fails, switch from
--fieldpairs to--json-body. - If write shape is unclear, inspect with
nocfo schema show <query>before retrying.