G
Automate your accounting workflows from the command line.
The DualEntry CLI brings the full power of the DualEntry API to your terminal. Create invoices, sync transactions, and manage your books: all without leaving your workflow.
- Scriptable accounting — Automate repetitive tasks like invoice creation, payment reconciliation, and monthly closes
- CI/CD ready — Integrate financial operations into your deployment pipelines
- Secure by default — OAuth authentication with credentials stored in your system keychain
- Works everywhere — macOS, Linux, and Windows support
brew install dualentry/tap/dualentryOr with uv:
uv tool install git+https://github.com/dualentry/dualentry-cli.gitOr via the install script:
curl -fsSL https://raw.githubusercontent.com/dualentry/dualentry-cli/main/install.sh | shdualentry auth loginThis opens your browser for secure authentication. That's it—you're ready to go.
dualentry invoices listdualentry invoices create --file invoice.jsondualentry journal-entries list --start-date 2025-01-01 --end-date 2025-03-31 --format jsonSet X_API_KEY in your environment for non-interactive authentication:
export X_API_KEY=your_api_key
dualentry bills list --status posted --format json| Category | Resources |
|---|---|
| Receivables | Invoices, Sales Orders, Customer Payments, Credits, Deposits |
| Payables | Bills, Purchase Orders, Vendor Payments, Credits, Refunds |
| Accounting | Journal Entries, Bank Transfers, Fixed Assets, Depreciation |
| Master Data | Customers, Vendors, Items, Accounts, Classifications |
| Automation | Recurring Invoices, Recurring Bills, Workflows, Contracts |
All resources support list, get, create, and update operations.
# Human-readable (default)
dualentry invoices list
# JSON for scripting
dualentry invoices list --format json
# Fetch all pages
dualentry invoices list --alldualentry config showEnvironment variables (override config file):
| Variable | Description |
|---|---|
DUALENTRY_API_URL |
API base URL (overrides config) |
X_API_KEY |
API key (skips OAuth) |
uv tool upgrade dualentry-cliuv sync --dev
uv run pre-commit installuv run ruff check .
uv run ruff format --check .uv run pytestWith coverage:
uv run pytest --cov=dualentry_cli --cov-report=term-missingSee CONTRIBUTING.md for development setup, testing, and release instructions.
- GitHub Issues
- Enterprise support: support@dualentry.com
Built by DualEntry — Modern accounting infrastructure for developers.