Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.dualentry.com/llms.txt

Use this file to discover all available pages before exploring further.

Use this page as a scannable reference for the DualEntry CLI. For getting started, see the Quickstart Guide.

Global options

The flags below apply to every CLI invocation, regardless of subcommand.
FlagDescription
--version, -vPrint the CLI version and exit
--helpShow help for any command or subcommand
--install-completionInstall shell tab completion
dualentry --help is the fastest way to see all available commands. You can also run dualentry [resource] --help for help on a specific resource.

Authentication commands

The authentication commands manage how the CLI connects to your DualEntry account.
CommandDescription
dualentry auth loginOpens your browser for OAuth login. Credentials are stored in your system keychain.
For CI/CD or headless environments, set the X_API_KEY environment variable instead. See Configuration below.

Resource commands

The Resource commands section lists all CLI resources grouped by domain. Every resource supports the following four subcommands.
SubcommandWhat it does
listShow all records for this resource (paginated table by default)
getRetrieve a single record by ID
createCreate a new record
updateUpdate an existing record
There are no delete commands. Records can only be listed, retrieved, created, or updated.
Run dualentry [resource] --help to see the exact flags and required arguments for each subcommand - they vary by resource.

Receivables

CommandDescription
dualentry invoicesManage invoices
dualentry sales-ordersManage sales orders
dualentry customer-paymentsManage customer payments
dualentry customer-creditsManage customer credits
dualentry customer-prepaymentsManage customer prepayments
dualentry customer-prepayment-applicationsManage customer prepayment applications
dualentry customer-depositsManage customer deposits
dualentry customer-refundsManage customer refunds
dualentry cash-salesManage cash sales

Payables

CommandDescription
dualentry billsManage bills
dualentry purchase-ordersManage purchase orders
dualentry vendor-paymentsManage vendor payments
dualentry vendor-creditsManage vendor credits
dualentry vendor-prepaymentsManage vendor prepayments
dualentry vendor-prepayment-applicationsManage vendor prepayment applications
dualentry vendor-refundsManage vendor refunds
dualentry direct-expensesManage direct expenses

Accounting

CommandDescription
dualentry journal-entriesManage journal entries
dualentry bank-transfersManage bank transfers
dualentry fixed-assetsManage fixed assets
dualentry depreciation-booksManage depreciation books

Master data

CommandDescription
dualentry customersManage customers
dualentry vendorsManage vendors
dualentry itemsManage items
dualentry accountsManage chart of accounts
dualentry companiesManage companies
dualentry classificationsManage classifications

Automation

CommandDescription
dualentry recurringManage recurring records (invoices, bills, etc.)
dualentry contractsManage contracts
dualentry budgetsManage budgets
dualentry workflowsManage workflows

Common flags

The flags below work across multiple resource commands and control output format, pagination, and filtering.

Output format

The output format flag toggles between human-readable tables and machine-readable JSON.
FlagDescription
--format jsonOutput as JSON instead of the default table format
  • Table format (default) - a human-readable, column-aligned table rendered with Rich. Best for quick lookups in the terminal.
  • JSON format - raw JSON output. Best for scripting, piping to jq, or feeding into other tools.
The example below shows both output modes for the same command:
# Table output (default)
dualentry invoices list

# JSON output
dualentry invoices list --format json

Pagination

The pagination flag controls whether list commands return one page or the full dataset.
FlagDescription
--allFetch all pages of results instead of just the first page
By default, list commands return one page of results. Use --all when you need the complete dataset:
dualentry invoices list --all

Filtering

The filtering flags below are available on the journal-entries and bills resources.
FlagDescription
--start-date YYYY-MM-DDFilter records on or after this date
--end-date YYYY-MM-DDFilter records on or before this date
--status STATUSFilter by record status (e.g., posted, archived)
For other resources, run dualentry [resource] list --help to see the flags supported on that specific resource.
dualentry journal-entries list --start-date 2026-03-01 --end-date 2026-03-31
dualentry bills list --status posted

Configuration

The configuration commands and environment variables below control how the CLI connects to DualEntry.

Viewing config

Display your current configuration, including API URL and auth state, with the following command:
dualentry config show

Environment variables

Set the variables below to override default CLI behavior, primarily for CI/CD or non-production environments.
VariableDescriptionDefault
X_API_KEYAPI key for authentication. Skips OAuth when set. Use this in CI/CD.(none)
DUALENTRY_API_URLOverride the API base URL.https://api.dualentry.com
# Use an API key instead of OAuth
export X_API_KEY="your-api-key-here"

# Point at a different API environment
export DUALENTRY_API_URL="https://api-dev.dualentry.com"

Example output

The columns below appear in the table output of dualentry invoices list: record ID, document number, dates, company, counterparty, currency, financial amounts, and status. Other resources follow a similar table layout with columns relevant to that record type.
ID   #      Date        Company     Customer       Due Date    Currency  Amount    Paid    Due       Status
───  ────   ──────────  ──────────  ─────────────  ──────────  ────────  ────────  ──────  ────────  ────────
12   INV-1  2026-01-15  Acme Corp   Widget Co.     2026-02-14  USD       1,500.00  0.00    1,500.00  posted
15   INV-2  2026-02-01  Acme Corp   Sprocket Inc.  2026-03-03  USD       3,200.00  3,200   0.00      archived

Known limitations

The CLI is early-stage software. The current limitations are:
  • Version v0.1.9 - expect evolving commands and occasional rough edges.
  • No delete operations - only list, get, create, and update are available.
  • Performance - some operations may be slow, especially on large datasets.
  • Python 3.11+ required - Homebrew handles this automatically; other install methods require you to have Python 3.11+ already installed.
Last modified on May 28, 2026