A CLI tool and desktop app for generating DOCX/PDF invoices with e-invoice support.
- Generate professional invoices in DOCX and PDF formats
- Desktop GUI application (Tauri/React)
- E-invoice generation (XRechnung, ZUGFeRD, CIUS-RO, Factur-X, etc.)
- Multi-language support (German & English)
- Flexible billing: hourly, daily, or fixed rates
- Email drafts with PDF attachment (macOS)
- Multiple invoice templates
- REST API for integrations
# Install globally
npm install -g invoicr
# Initialize workspace (creates provider.json)
invoicr-init
# Create a client
invoicr-new
# Generate an invoice
invoicr <client> <quantity>
invoicr acme-hourly 40 --email- Node.js 18+
- LibreOffice (for PDF conversion):
brew install --cask libreoffice
A desktop application for visual invoice management.
Option 1: Via npm (recommended)
npm install -g invoicr
invoicr-guiThe GUI binary is automatically downloaded during installation.
Option 2: Download installer
Download from GitHub Releases:
| Platform | Download |
|---|---|
| macOS (Apple Silicon) | Invoicr_x.x.x_aarch64.dmg |
| macOS (Intel) | Invoicr_x.x.x_x64.dmg |
| Windows | Invoicr_x.x.x_x64-setup.exe |
| Linux (Debian/Ubuntu) | invoicr_x.x.x_amd64.deb |
| Linux (Portable) | invoicr_x.x.x_amd64.AppImage |
Option 3: Build from source
# Prerequisites: Rust (https://rustup.rs/)
git clone https://github.com/LeanerCloud/invoicr.git
cd invoicr && npm install && npm run build
cd gui && npm install && npm run tauri:build- Manage multiple business personas
- Configure provider and client settings
- Generate invoices with preview
- Select from multiple templates
- Configure e-invoicing per client
- View invoice history
Generate electronic invoices in international formats.
| Region | Format | Countries |
|---|---|---|
| Europe | XRechnung | Germany |
| Europe | ZUGFeRD | Germany, Austria, Switzerland |
| Europe | CIUS-RO | Romania |
| Europe | Factur-X | France |
| Europe | FatturaPA | Italy |
| Europe | PEPPOL BIS | EU-wide |
| Americas | UBL | USA, Canada |
invoicr-einvoice <client> --quantity=40
invoicr-einvoice <client> --quantity=40 --format=xrechnungE-invoicing requires countryCode in both provider and client configs.
| Command | Description |
|---|---|
invoicr <client> <qty> |
Generate invoice |
invoicr-init |
Initialize workspace |
invoicr-new |
Create new client |
invoicr-list |
List clients |
invoicr-bulk |
Bulk generation |
invoicr-export |
Export history |
invoicr-einvoice |
Generate e-invoice |
invoicr-server |
Start API server |
invoicr-gui |
Launch desktop app |
| Option | Description |
|---|---|
--month=MM-YYYY |
Billing month |
--email |
Create email draft |
--dry-run |
Preview only |
--template=NAME |
Use specific template |
REST API for programmatic access.
invoicr-server # Starts on http://localhost:3456Key endpoints:
GET /api/personas/:persona/clients- List clientsPOST /api/personas/:persona/invoice/generate- Generate invoiceGET /api/einvoice/formats- List e-invoice formats
See examples/ for complete client configuration templates:
acme-hourly.json- Hourly billingacme-daily.json- Daily billing with translationsacme-fixed.json- Fixed amountacme-romania.json- Romanian e-invoice (CIUS-RO)acme-xrechnung.json- German e-invoice (XRechnung)
npm install
npm run setup-hooks # Install pre-commit hook (build + test)
npm run build # Compile TypeScript
npm test # Run tests (700+ tests)
npm run dev # Run with tsx
npm run api-server # Start API serverThe pre-commit hook runs TypeScript compilation and tests for both the backend and GUI before each commit.
MIT
Built by LeanerCloud. We help companies reduce AWS costs.
Freelancer with AWS clients? Refer them to us and get 50% of our first invoice. Get in touch!