skills/sevdesk-agent-cli/SKILL.md
Sevdesk bookkeeping automation via a global CLI, with read-first discovery, voucher intake, transaction matching, invoice/order/contact workflows, and delete-guarded mutations.
npx skillsauth add codecell-germany/sevdesk-agent-skill sevdesk-agent-cliInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill when tasks involve sevdesk API access from this workspace, especially when an agent must:
PATH once per machine:
npm install -g @codecell-germany/sevdesk-agent-skillnpx -y -p @codecell-germany/sevdesk-agent-skill sevdesk-agent-skill install --forcesevdesk-agent --helpsevdesk-agent is still not found after install:
npm config get prefix<prefix>/bin to PATH for the current shell if needednpx -y -p @codecell-germany/sevdesk-agent-skill sevdesk-agent --helpsevdesk-agent-skill install --forceSEVDESK_API_TOKEN=<token>SEVDESK_BASE_URL (default https://my.sevdesk.de/api/v1)SEVDESK_USER_AGENTSEVDESK_ALLOW_WRITE=true (required only for DELETE operations, unless --allow-write is used)Run this before the first real bookkeeping workflow on a machine:
sevdesk-agent --help
sevdesk-agent doctor --json
sevdesk-agent read bookkeepingSystemVersion --output json
Treat the environment as not ready if any of these are true:
sevdesk-agent is not available on PATHSEVDESK_API_TOKEN is missingdoctor reports a failed checkbookkeepingSystemVersion cannot be read successfullyIf setup is incomplete, install the public package first, verify the token, and only then continue to read, find-*, or write workflows.
sevdesk-agent ops list --read-onlysevdesk-agent op-show <operationId>sevdesk-agent ops-quirkssevdesk-agent ops-quirks --json-arraysevdesk-agent read <operationId> --query key=valuesevdesk-agent read find-contact --query term="<name>" --output json (alias for top-level find-contact)sevdesk-agent read resolve-billing-contact --query term="<name>" --output json (alias for helper command)sevdesk-agent read find-invoice --query term="<text>" --query deepScan=true --output json (alias for helper command)sevdesk-agent read find-transaction --query amount=119 --query booked=false --output json (alias for helper command)sevdesk-agent read match-transaction --query voucherId=<id> --output json (alias for helper command)sevdesk-agent find-contact <term> --output jsonsevdesk-agent resolve-billing-contact <term> --output jsonsevdesk-agent find-invoice <term> --deep-scan --output jsonsevdesk-agent find-transaction "<text>" --amount <n> --booked false --output jsonsevdesk-agent match-transaction --voucher-id <id> --output jsonsevdesk-agent transaction find-match --supplier "<name>" --amount <n> --date <yyyy-mm-dd> --direction expense --output jsonsevdesk-agent voucher inspect --id <id> --output jsoncontact[id] should be quoted: --query 'contact[id]=123'getInvoices works with startDate/endDate as Unix timestamps (seconds). ISO dates like 2026-01-01 may return empty results.
Example: sevdesk-agent read getInvoices --query startDate=1767225600 --query endDate=1769903999 --output jsonsevdesk-agent docs read-ops --output knowledge/READ_OPERATIONS.mdPOST / PUT / PATCH: sevdesk-agent write <operationId> ...sevdesk-agent order edit --order-id <id> ... --verifysevdesk-agent contact edit --contact-id <id> ... --verify--form-field key=value and --form-file file=/path/to/fileDELETE: sevdesk-agent write <operationId> --execute --confirm-execute yes --allow-write ...createContact / createOrder, local preflight validation runs by defaultcreateInvoiceByFactory, preflight also validates invoice/delivery date consistency (--auto-fix-delivery-date available)voucherFactorySaveVoucher and bookVoucher, local preflight validates the high-risk accounting fields before the API call--verify to run read-only post-write checks (including createInvoiceByFactory, voucherFactorySaveVoucher and bookVoucher)--verify-contact (includes customerNumber mismatch checks; auto-fix enabled by default and can be disabled via --no-fix-contact)sevdesk-agent context snapshotsevdesk-agent context snapshot --output .context/sevdesk-context-snapshot.jsonsevdesk-agent ops list --read-onlysevdesk-agent op-show createContactsevdesk-agent op-show createOrdersevdesk-agent find-contact "<name or customerNumber>" --output jsonsevdesk-agent write createContact ... --verify-contactsevdesk-agent write createOrder ... --verifysevdesk-agent read orderGetPdf --path orderId=<id> --decode-pdf output/<file>.pdf --suppress-contentpreventSendBy=1 wird standardmäßig gesetzt (--no-safe-pdf deaktiviert das)sevdesk-agent context snapshot --include-defaultsevdesk-agent create-invoice-installment --from-invoice <id> --percent 70 --label "..." [--execute --verify]sevdesk-agent invoice clone --from <id> --date <...> --period <...> with selective position overridessevdesk-agent invoice recreate --from <id> --patch-file payloads/invoice.patch.json --verifysevdesk-agent create-voucher-from-pdf --file /absolute/path/to/beleg.pdf ... [--execute --verify]sevdesk-agent voucher inspect --id <id> --output jsonsevdesk-agent voucher book-existing --voucher-id <id> --transaction-id <id> [--execute --verify]sevdesk-agent book-voucher --voucher-id <id> --check-account-id <id> --amount <n> [--transaction-id <id>] [--execute --verify]sevdesk-agent assign-voucher-to-transaction --voucher-id <id> --check-account-id <id> --transaction-id <id> --amount <n> [--execute --verify]sevdesk-agent expense process-paid --file /absolute/path/to/beleg.pdf --transaction-id <id> ... [--execute --verify]sevdesk-agent doctor --jsonPOST/PUT/PATCH run directly; DELETE is blocked unless guard flags are set.*GetPdf endpoints, responses are typically JSON wrapped in data.objects (often containing filename, mimetype, and base64 content).orderGetPdf / invoiceGetPdf, CLI now applies preventSendBy=1 by default (safe PDF mode).--decode-pdf <path> for direct PDF file output without jq/base64.--decode-pdf, use --suppress-content (default) to keep large base64 payload out of CLI output.create-voucher-from-pdf, book-voucher and assign-voucher-to-transaction are dry-run by default; real writes happen only with --execute.voucher book-existing and expense process-paid are also dry-run by default; use --execute only after checking the derived payload.order edit, contact edit and invoice recreate execute directly like normal PUT/POST flows; use --verify to validate the result immediately.ok: false, the CLI now exits with a non-zero shell status. Do not treat that as success in automation.binary, bytes, contentType) instead of raw bytes.contactCustomerNumberAvailabilityCheck requires customerNumber at runtime).op-show or ops-quirks to see operation-specific runtime quirks.ops-quirks --json returns an object mapping; for stable array parsing use ops-quirks --json-array.updateInvoice is missing, run sevdesk-agent docs invoice-edit.sevdesk-agent invoice recreate --from <id> ... over guessing a raw updateInvoice payload.sevdesk-agent docs invoice-finalize.references/command-cheatsheet.mdknowledge/SEVDESK_ORDER_WRITE_LEARNINGS.mdtools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.