← Projects

Invoice CRM

Free, open-source invoice generator for freelancers and small businesses. File-based, git-friendly, AI-agent compatible. No SaaS, no monthly fees.

The Problem

Freelancers and solo founders need invoicing but typical SaaS solutions cost $10-60/month, keep your data on their servers, and don’t work offline. They also don’t integrate with AI coding agents.

Solution

A Python CLI tool where all data (clients, providers, bank details) lives in YAML files on your machine. Professional PDF generation with Jinja2 templates, WeasyPrint rendering, and optional digital signatures.

Key Features

Architecture

providers/*.yaml    → your companies (bank details, tax info)
clients/*.yaml      → your clients (address, defaults, rates)
templates/*.html    → Jinja2 + CSS templates
crm.py              → main CLI (click)
qr.py               → QR code generator
signing.py          → PDF digital signatures (pyHanko)
crypto.py           → age encryption
schemas.py          → Pydantic validation

Deterministic pipeline: YAML configs → Pydantic validation → Jinja2 rendering → WeasyPrint PDF → optional QR/signing/encryption.

AI-Agent Compatible

Works with Claude Code, Cursor, or any AI agent as a natural language interface:

Invoice ACME for 80 hours at $150
Generate bank details card for my company

Bank details never pass through the LLM — they come from deterministic config files. The agent only triggers the CLI with parameters.

Privacy Architecture

vs SaaS

Feature Typical SaaS Invoice CRM
Monthly cost $10-60 Free
Data location Their servers Your machine
Offline No Yes
Version control No Git
AI integration Limited Full
Customization Template picker Full HTML/CSS

Stack

Python 3.11+, Click, Pydantic, Jinja2, WeasyPrint, pyHanko, age encryption, uv.

Links

Sources

Related