aeradex
Swiss bookkeeping your agent can run.
Die erste agentenorientierte Open-Source-Buchhaltung für die Schweiz: Finanzbuchhaltung, Lohnbuchhaltung,
QR-Rechnungen und Kunden, gespeichert als lesbare Textdateien in git, bedient von dir oder von einem LLM-Agenten,
im Browser, auf dem Handy oder per Chat.
Website · Schnellstart · Screenshots · Dateiformat · Plugins · Mitmachen · English summary
aeradex: von lat. aera, den einzelnen Posten einer Rechnung, und index, dem Verzeichnis. «Si aera singula probasti, summam, quae ex his confecta sit, non probare?» (Cicero): Wer jeden Posten gebilligt hat, kann die Summe nicht ablehnen. Genau so arbeitet aeradex.
Vorschau — ohne Gewähr. aeradex ist neu und noch nicht in breitem produktivem Einsatz. Prüfe die Zahlen selbst, bevor du dich darauf verlässt — besonders Lohn (Sozialversicherungssätze, Quellensteuer), MWST-Ziffern und Abschreibungssätze — und lass den Jahresabschluss von einer Fachperson ansehen. Die Software steht unter der AGPL und wird ohne jede Gewährleistung bereitgestellt (siehe LICENSE). Lohnmeldungen über ELM (Swissdec) sind nicht möglich: dafür braucht es eine Zertifizierung durch Swissdec.
Warum noch eine Buchhaltung?
Klassische Buchhaltungssoftware versteckt die Bücher in einer Datenbank hinter einer Oberfläche. Ein Agent (Claude Code, opencode, Codex …) kann damit kaum arbeiten: Er klickt sich durch Formulare oder ruft eine API auf, die nie für ihn gebaut wurde.
aeradex dreht das um:
| Dateien statt Datenbank | Journal als Markdown-Tabelle pro Monat, Kunden, Mitarbeitende, Rechnungen und Lohnabrechnungen als Markdown mit YAML-Frontmatter. Ein Mensch liest sie in jedem Editor, ein LLM ohne Adapter. |
| Rechnen tut die Engine, nie das LLM | Salden, Bilanz, Löhne, Quellensteuer, QR-Referenzen: alles deterministisches Python. Der Agent entscheidet was gebucht wird, die Engine prüft und rechnet. |
| git ist das Audit-Trail | Jede Änderung ist ein Commit mit sprechender Nachricht. Ein pre-commit-Hook führt aeradex check aus, ein ungültiges Buch lässt sich nicht committen. |
| Unveränderlichkeit, wo das Gesetz sie verlangt | Gesperrte Perioden sind gehasht, ausgestellte Rechnungen und abgeschlossene Lohnabrechnungen tragen einen Fingerprint. Jede nachträgliche Änderung fällt auf (GeBüV). |
| Mensch im Loop | Im Standardmodus darf ein Agent freie Buchungen nur vorschlagen; du gibst sie mit aeradex approve frei. |
| Schweizer Recht eingebaut | KMU-Kontenrahmen, Bilanz und Erfolgsrechnung nach OR 959a/959b, Anhang, Gewinnverwendung, MWST (effektiv und Saldosteuersatz, Abrechnung nach ESTV-Ziffern), Swiss QR-Bill (QRR/SCOR), AHV/IV/EO/ALV/UVG/KTG/BVG/FAK, Quellensteuer-Tarife nach KS 45, Lohnausweis Formular 11. |
So sieht es aus
Die Oberfläche läuft lokal im Browser (aeradex ui) oder auf dem eigenen Server mit Login. Alle Bilder zeigen die
Demofirma aus examples/muster-gmbh; GitHub zeigt sie hell oder dunkel, passend zu deinem Theme.
![]() Übersicht Flüssige Mittel, Ergebnis, offene Debitoren und «Was ansteht»: jede Zeile führt dorthin, wo du es erledigst. Rechts das Agent-Panel. | ![]() Einkauf › Entwürfe Hochgeladene Quittungen und Lieferantenrechnungen, vom Agenten kontiert und begründet, bereit zur Freigabe. |
![]() Verkauf › Neue Rechnung Positionen, MWST und Total live gerechnet; das PDF trägt den Swiss-QR-Zahlteil. | ![]() Bank › Abgleichen Eine Karte pro offener Bewegung mit dem passenden Kreditor, Debitor oder der Bankregel: ein Klick auf OK. |
![]() Lohn Lohnabrechnung mit AHV/IV/EO, ALV, NBU, KTG, BVG und Quellensteuer; Lohnausweis Formular 11. | ![]() Buchhaltung › MWST Abrechnung pro Quartal nach ESTV-Ziffern, Herkunft jeder Zahl, PDF im Aufbau des Formulars und eMWST-Datei. |
![]() Verkauf › Kunden Umsatz, offene Rechnungen, Verlauf aus Gesprächen, Rechnungen und Zahlungen, Wiedervorlagen zum Nachfassen. | ![]() Buchhaltung › Abschluss Checkliste für den Jahresabschluss, Abschlussbuchungen für Bestände, Jahresrechnung und Unterlagen für die Treuhand. |
![]() Buchhaltung › Berichte Erfolgsrechnung, Bilanz, Geldfluss und Kennzahlen für jede Periode, mit Vorjahr oder Budget. | ![]() Verlauf Jede Änderung ein git-Commit, Mensch oder Agent jeweils markiert. |


Auf dem Handy: Geld, Nachfassen, überfällige Rechnungen und Belege auf einen Blick; Kunden anrufen, hinfahren, notieren; Belege scannen.
Schnellstart
Voraussetzungen
| Nötig | Python 3.11 oder neuer, git. Linux oder macOS; unter Windows über WSL (aeradex sperrt Schreibzugriffe mit fcntl). |
| Scans und Handyfotos | Tesseract mit Deutsch, Französisch und Italienisch. PDFs mit Textebene und QR-Rechnungen liest aeradex auch ohne. |
| Optional | Ein Agent (Claude Code, Codex, opencode oder ANTHROPIC_API_KEY), Jev für Bankbewegungen, SMTP für den Versand von Berichten. |
# Tesseract (nur für Scans und Fotos)
brew install tesseract tesseract-lang # macOS
sudo apt install tesseract-ocr tesseract-ocr-deu tesseract-ocr-fra tesseract-ocr-ita # Debian/Ubuntu/WSL
sudo pacman -S tesseract tesseract-data-deu tesseract-data-fra tesseract-data-ita # Arch
Die Python-Pakete installiert pip. Die Extras einzeln: ui (Oberfläche und eingebauter Agent), mcp (MCP-Server),
scan (QR-Codes und PDF-Seiten lesen, ohne poppler oder zbar), excel (Excel-Import und -Export), crypt
(verschlüsselter Export); all nimmt alle.
Erstes Buch
git clone https://github.com/Benjamin-Thomet/aeradex && cd aeradex
pip install -e ".[all]"
aeradex init ~/buchhaltung/muster --firma "Muster GmbH" --jahr 2026 \
--strasse Bahnhofstrasse --nr 1 --plz 3000 --ort Bern \
--iban "CH93 0076 2011 6238 5295 7" --uid CHE-123.456.789
# --rechtsform GmbH (Standard), AG, Einzelfirma oder Verein wählt den passenden Kontenplan
cd ~/buchhaltung/muster
# Eröffnungsbilanz in kontenplan.yaml eintragen (eroeffnung: 20000 bei 1020, -20000 bei 2800), dann:
aeradex check
aeradex book --datum 2026-01-05 --soll 6500 --haben 1020 --betrag 45.80 \
--text "Büromaterial" --datei inbox/quittung.pdf
aeradex balance
Die Oberfläche
aeradex ui # öffnet aeradex im Browser (nur lokal, mit Zugangsschlüssel im Link)
Eine lokale Web-App über denselben Kern wie CLI und Agenten. Jeder Klick wird geprüft und in git festgehalten.
Mehrere Firmen: Startest du aeradex ui ausserhalb eines Buchs, beginnt es mit der Liste deiner Firmen. Dort
öffnest du eine Firma, legst eine neue an (Name, Rechtsform, erstes Jahr; das Buch kommt nach ~/aeradex/<name>
oder in einen Ordner deiner Wahl), nimmst einen bestehenden Buchordner auf oder importierst eine .aeradex-Datei.
Gewechselt wird über das Menü der Firma oben rechts (Firma wechseln). Jede Firma bleibt ein eigenes Buch mit
eigenem git-Verlauf; die Liste liegt auf dem Computer (~/.config/aeradex/firmen.yaml), nicht im Buch, und
«Aus Liste entfernen» löscht nichts. Im Terminal: aeradex firmen, aeradex firmen add ORDNER,
aeradex firmen remove ORDNER. Der Server-Betrieb (aeradex serve) bleibt bei einem Buch pro Instanz.
Sechs Bereiche, jeder mit einem klaren Ablauf (dazu eigene Bereiche von Plugins, z.B. Leistungen). Belege lädst du an einer Stelle hoch (Beleg hochladen oben rechts); aeradex erkennt die Art und legt einen Entwurf an. Gebucht wird erst, wenn du freigibst.
| Bereich | Was du dort machst |
|---|---|
| Übersicht | Liquidität, Ergebnis, offene Debitoren; Was ansteht als eine Liste, jede Zeile führt dorthin, wo du es erledigst; Inbox-Dateien einlesen |
| Einkauf | Lieferantenrechnungen und Quittungen: Entwürfe → Offen → Bezahlt (plus Alle). Entwurf prüfen, «Freigeben» oder «Freigeben & nächster»; Zahlungslauf als pain.001, Lieferanten, offene Posten |
| Verkauf | Rechnungen mit Live-Total, Rabatt und QR-PDF: Entwürfe → Offen → Bezahlt (plus Alle); Akontorechnungen, die die Schlussrechnung anrechnet; externe Rechnungen einlesen, Gutschrift, Storno; Kunden mit Umsatz, Zahlungsverhalten, Verlauf und Wiedervorlagen; Mahnungen, offene Posten |
| Bank | Abgleichen wie bei Xero: eine Karte pro offener Bewegung, daneben der passende Kreditor, Debitor, die Quittung, Bankregel oder frühere Buchung; ein Klick auf OK. Sonst «Suchen» (Name, Nummer, Betrag), «Neu buchen» (optional «Immer so buchen» als Regel) oder «Ignorieren». Dazu Bewegungen, Regeln und Saldoabstimmung |
| Lohn | Lohnlauf pro Monat, Eingaben (Stunden, QST, Korrekturen), Abschluss; Mitarbeitende mit Notizen und Dokumenten (Vertrag, Bewilligung); Lohnkonto der Firma, Jahres-Lohnmeldungen (AHV, UVG, KTG, BVG, QST), Lohnausweis; mit Plugin die Team-App |
| Buchhaltung | Journal (Raster wie in Excel: Enter, leeres Datum = wie oben, Zeilen aus Excel einfügen; Beleg pro Zeile anhängen; Beleg auslesen macht aus einer Quittung oder Kartenabrechnung fertige Zeilen; Spalte «Von» zeigt, wer gebucht hat), Agenten-Vorschläge freigeben, Kontenplan, Saldenliste, MWST nach ESTV-Ziffern, Berichte, Budget, Abschluss (Checkliste, Abschlussbuchungen, Jahresrechnung, Unterlagen, Periode sperren) |
Oben rechts: Verlauf (jeder Commit mit Diff, Agenten markiert; filtern nach Beleg, Person oder Text) und Einstellungen (Firma mit IBAN-Prüfung und Logo im Briefkopf, Buchhaltung, Geschäftsjahre, Lohn, Agent & KI, Funktionen zum Ein- und Ausschalten, Benutzer, Buch). Im Menü der Firma: Datensicherung und die Handy-Ansicht.
Rechts sitzt der Agent (Claude): «Bereite die Quittungen in der Inbox vor», «Welche Rechnungen sind überfällig?». Dateien hängst du per Büroklammer oder Ziehen an die Nachricht (PDF, Bild, Word), etwa einen Arbeitsvertrag, den er bei der Person ablegt; diktieren geht per Mikrofon (mit Plugin aeradex-anruf). Er arbeitet mit denselben Werkzeugen wie der MCP-Server; seine Vorschläge erscheinen sofort unter Buchhaltung › Vorschläge, eingelesene Belege unter Einkauf/Verkauf › Entwürfe. Er läuft wahlweise über Claude Code, Codex oder opencode (jeweils dein eigener Login, kein zusätzlicher Schlüssel) oder über die Claude API (ANTHROPIC_API_KEY). Auswahl pro Buch unter Einstellungen → Agent, oder AERADEX_CHAT_BACKEND=claude-code|codex|opencode|api. Der Agent darf das Buch lesen, ändern kann er es nur über die aeradex-Werkzeuge (Codex läuft in der Read-only-Sandbox, opencode ohne Edit/Shell). Im Verlauf steht, welcher Agent was gemacht hat.
Eigene Agenten im Terminal nutzen denselben MCP-Server:
claude mcp add aeradex -- aeradex --buch <buch> mcp
codex mcp add aeradex -- aeradex --buch <buch> mcp
opencode mcp add aeradex # oder in opencode.json unter "mcp"
Ändert ein Agent oder das CLI das Buch, aktualisiert sich die offene Seite selbst, ausser du tippst gerade etwas, das noch nicht gespeichert ist.
Tastatur: N neue Buchung, / Suche, A Agent, ⌘/Ctrl+Enter Formular absenden.
Auf dem eigenen Server (mit Login)
aeradex user add anna --rolle admin --anzeige "Anna Muster"
aeradex user add treuhand --rolle lesen
aeradex --buch /srv/buecher/muster serve --port 8080 --https # hinter Caddy/nginx mit HTTPS
Rollen lesen, buchhaltung, admin; jede Änderung trägt im git-Verlauf den Namen der angemeldeten Person.
Anleitung mit systemd, Caddy und Datensicherung: docs/server.md. Alles auf einmal (Buch mit
Login, Team-App für Mitarbeitende, Telegram-Bot, Claude Code auf den PCs per SSH): deploy/.
Benutzer verwaltest du im Browser (Einstellungen › Benutzer): Einladungslinks bis zur eigenen Rolle, ohne E-Mail-Versand (der Link gilt 7 Tage, gespeichert wird nur seine Prüfsumme); Admins vergeben Rollen und Passwort-Links. Unter Mein Konto ändert jede Person Name und Passwort selbst.
Auf dem Handy
/m ist eine schlanke Ansicht fürs Handy, als App auf den Startbildschirm installierbar (auf dem eigenen Server
mit Login): Heute (Geld, Nachfassen, überfällige Rechnungen, Belege), Kunden (anrufen, E-Mail, navigieren,
notieren), Rechnungen mit Filtern, Scannen (aeradex findet das Blatt im Foto, du kannst die Ecken
verschieben, daraus wird ein PDF im Belegeingang), Belege prüfen und buchen und der Agent (Spracheingabe
mit dem Plugin aeradex-anruf). Telefone landen automatisch dort; «Desktop-Ansicht» schaltet zurück.
Kunden
Jeder Kunde hat eine eigene Seite: Umsatz dieses und letztes Jahr, offene und überfällige Beträge, Zahlungsverhalten, alle Rechnungen, und ein Verlauf aus Gesprächen, Rechnungen, Zahlungen und Mahnungen. Was besprochen wurde, notierst du mit Datum (Anruf, Besuch, E-Mail, Notiz), optional mit Nachfassen am …: die Wiedervorlage erscheint in «Was ansteht». Feste Infos (Zugang, Wünsche, Erreichbarkeit) und Herkunft stehen beim Kunden; mit dem Plugin Leistungen auch seine Objekte.
aeradex customer show K0001 # Umsatz, Rechnungen, Zahlungsverhalten, Verlauf
aeradex customer log K0001 "Offerte besprochen" --art anruf --nachfassen 2026-11-02
aeradex customer followups # offene Wiedervorlagen
Debitoren und QR-Rechnungen
aeradex customer add --name "Anna Beispiel" --firma "Beispiel AG" --strasse Marktgasse --nr 5 --plz 3011 --ort Bern
aeradex invoice create --kunde K0001 --pos "Beratung;10 h;150" --pos "Spesen;1;80;3600"
# → rechnungen/2026/R-2026-0001.md (eingefroren) + .pdf mit QR-Einzahlungsschein, verbucht 1100 an 3400/3600
aeradex invoice match --betrag 1580 --text "<Zeile aus dem Bankauszug>"
aeradex invoice pay R-2026-0001 --datum 2026-03-01
aeradex receivables --pdf
aeradex invoice create --kunde K0002 --pos "Beratung;10 h;150" --waehrung EUR # QR-Rechnung in EUR, BAZG-Kurs
aeradex invoice create --kunde K0001 --pos "Workshop;1;1200" --rabatt 10 # Rabatt in Prozent
aeradex invoice create --kunde K0001 --pos "Anzahlung;1;5000"










