A CLI tool and desktop app for generating DOCX/PDF invoices with e-invoice support.
Features
- 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
Quick Start
# 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
Prerequisites
- Node.js 18+
- LibreOffice (for PDF conversion):
brew install --cask libreoffice
GUI Application
A desktop application for visual invoice management.
Installing the GUI
Option 1: Via npm (recommended)
npm install -g invoicr invoicr-gui
The 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
GUI Features
- 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
E-Invoice Generation
Generate electronic invoices in international formats.
Supported 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 |
Usage
invoicr-einvoice <client> --quantity=40 invoicr-einvoice <client> --quantity=40 --format=xrechnung
E-invoicing requires countryCode in both provider and client configs.
CLI Commands
| 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 |
Common Options
| Option | Description |
|---|---|
--month=MM-YYYY |
Billing month |
--email |
Create email draft |
--dry-run |
Preview only |
--template=NAME |
Use specific template |
API Server
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
Configuration
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)
Development
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 server
The pre-commit hook runs TypeScript compilation and tests for both the backend and GUI before each commit.
License
MIT
About
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!