Skip to content

Getting started

Scaffold your books

Pick your legal form. It decides the account namespace and the equity block — see Legal forms for what changes and why.

quints init jane-books --name "Jane Doe" --legal-form einzelfirma --lang en --samples
quints init acme-books --name "Acme GmbH" --legal-form gmbh --lang en --samples
quints init edelweiss-books --name "Edelweiss AG" --legal-form ag --lang en --samples

Run quints init with no flags to answer the same questions interactively. --samples books a demo quarter so every command works immediately; drop it for empty books. --importers ubs,yapeal,wise,stripe pre-configures statement importers. --lang de makes reports German by default.

What you get

jane-books/
├── main.bean          # options, plugins, includes — the entry point
├── accounts.bean      # chart of accounts, every account with its KMU code
├── commodities.bean   # currencies + their price sources
├── prices.bean        # FX rates (quints prices sync)
├── books/2026.bean    # transactions, one file per fiscal year
├── invoicing/         # issuer + sample invoices (with --samples)
├── quints.toml        # everything entity-specific
├── pyproject.toml     # so uv sync makes bean-check and fava work
├── AGENTS.md          # playbook for an AI coding agent
├── CLAUDE.md          # @AGENTS.md — auto-loads the playbook in Claude Code
├── inbox/             # drop source documents here
├── staging/           # importer drafts land here (gitignored)
└── documents/         # filed documents, mirroring the account tree

The generated project is a normal beancount ledger. After uv sync in it, the standard toolchain works — bean-check main.bean, fava main.bean — not only quints.

It is also a git repository: quints init commits the pristine scaffold, so every later change — yours or an agent's — is a reviewable diff. Pass --no-git to opt out; scaffolding inside an existing repository never creates a nested one.

First commands

cd jane-books
quints check
quints mwst -q 2026-Q3
quints report bilanz --at 2026-12-31

quints check is bean-check plus the KMU guard: every entity account must carry a four-digit kmu: code, or the ledger doesn't validate. Run it before you trust any number.

Scaffolding a project with samples, validating it, and printing the Form-310 VAT return

Extend the chart

Add accounts as open directives in accounts.bean, each with the KMU code it rolls up to:

2026-01-01 open Expenses:CH:Einzelfirma:Marketing:Ads CHF
  kmu: "6600"  ; Advertising

quints report konten --year 2026 shows the codes already in use; quints check rejects an entity account without a valid code.

Next