OpenFatture is an agentic, CLI-first workspace for Italian electronic invoicing. Describe the work you need; the assistant coordinates the domain tools and returns an auditable result.
Italian freelancers must issue invoices as FatturaPA XML and deliver them through SDI. The usual answer is a SaaS subscription that owns your client list, your invoices, and your archive. OpenFatture keeps all of it local: your data stays in a database on your machine, the XML is generated and validated offline, and every action is recorded in an event audit trail you can inspect. AI assistance is optional — the domain tools work without it.
Built for one-person businesses and small studios comfortable in a terminal.
# Full stack (AI + RAG + ML + …). Core-only: uv sync
uv sync --all-extras
uv run openfatture init
uv run openfatture status
uv run openfatture assistant "Help me prepare an invoice for a software project"
Optional feature extras: ai, rag, ml, all.
See docs/CONFIGURATION.md.
For a terminal conversation:
uv run openfatture interactive start
The supported surface is intentionally small:
init creates local state and guides setup.assistant handles business requests in natural language.interactive start opens a conversational session.config reads or updates configuration.status reports local readiness without mutation.Version 2.3.0, Python 3.12+ and uv. Credit notes (TD04), real XML
generation, professional PDF templates, and natura/DatiCassaPrevidenziale
support — see docs/STATUS.md,
docs/releases/v2.3.0.md, and
docs/ARCHITECTURE.md.
Explicit non-goal: there is no browser frontend or web application surface, and adding one would be a separate product decision.
uv sync --all-extras
uv run python -m pytest -q
uv run ruff check .
uv run ruff format --check .
uv run mypy openfatture/
OpenFatture is released under the MIT License.