openfatture

OpenFatture

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.

Why

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.

Start

# 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

Public CLI

The supported surface is intentionally small:

See docs/CLI_REFERENCE.md.

What it covers

Status

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.

Documentation

Development

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.