explaingit

mikkelkrogsholm/rentemester

Analysis updated 2026-06-24

31TypeScriptAudience · developerComplexity · 4/5Setup · moderate

TLDR

Early bookkeeping system for small Danish businesses. An AI agent posts routine entries while a hard rule engine enforces double-entry, VAT, and audit history.

Mindmap

mindmap
  root((rentemester))
    Inputs
      Receipt mailbox
      Bank CSV
      CVR lookups
    Outputs
      VAT report
      Invoice PDF
      Audit hash chain
    Use Cases
      Danish ApS books
      Freelancer ledger
      Auditable AI bookkeeping
    Tech Stack
      TypeScript
      SQLite
      Node
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Run an AI bookkeeping agent for a Danish ApS with a rule engine that refuses incorrect postings.

USE CASE 2

Match a forwarded receipt mailbox against a bank CSV and auto post the clear cases.

USE CASE 3

Generate Danish VAT reports, EU reverse charge entries, and an accountant export package.

USE CASE 4

Produce deterministic invoices with PDFs, late-payment interest, and reminder fees under Danish rules.

What is it built with?

TypeScriptSQLiteNode

How does it compare?

mikkelkrogsholm/rentemesterclipboardhealth/groundcrewjavlonbek1233/amaliy-ish-7
Stars313131
LanguageTypeScriptTypeScriptTypeScript
Setup difficultymoderatemoderateeasy
Complexity4/54/51/5
Audiencedeveloperdevelopervibe coder

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

README is in Danish and the rule engine assumes Danish accounting and VAT rules, so non-Danish users get limited value.

In plain English

Rentemester is an upcoming bookkeeping system for small Danish businesses: freelancers, consultants, sole traders, and small private limited companies (ApS). The README is written in Danish. The pitch is that an AI agent handles the routine bookkeeping work while a hard rule engine in the core decides whether the result is actually correct under Danish accounting and VAT rules. The authors are deliberate that this is not a chatbot bolted onto an accounting tool. The core enforces double-entry bookkeeping, requires that debit equals credit, stores each receipt with documentation, and refuses to silently edit a posting once it has been booked. Errors are fixed by new offsetting entries rather than by changing history, and every action has to be auditable. Their slogan is roughly: the agent acts, the rules judge, the ledger enforces. A typical month is described this way: you forward receipts to a receipts mailbox, Rentemester imports your bank transactions, the system matches lines like Stripe, OpenAI, Google, or train tickets against the receipts, the clear cases are posted automatically, and the rest end up in a short task list, for example a restaurant receipt missing its purpose or a card payment without a matching receipt. At the end of the VAT period it produces a report and an export package for your accountant. The current code is an early prototype with the core already working: a SQLite ledger, append-only history, an audit hash chain for integrity, a Danish chart of accounts, bank CSV import with foreign currency handling, deterministic invoicing including PDF generation and payment registration, late-payment interest and reminder fees under Danish rules, credit notes, VAT reporting, EU reverse charge, CVR registry lookups with a local cache, and deterministic backup snapshots. A runnable demo lives in examples/agent-demo: it imports a bank CSV and six receipts, posts the clear cases automatically, and leaves the rest in an exception queue. It runs locally with no API keys. The README explicitly says the project is not aimed at large companies, payroll, point-of-sale, or stock-keeping.

Copy-paste prompts

Prompt 1
Run the rentemester examples agent-demo. Walk me through the SQLite ledger after the bank CSV and six receipts are imported.
Prompt 2
Explain how rentemester enforces append-only history and the audit hash chain. Trace a posting through the rule engine.
Prompt 3
Add a custom matcher to rentemester for Revolut transactions that should map to a foreign currency expense account.
Prompt 4
Write a guide for a Danish freelancer migrating from Dinero to rentemester. List every step from chart of accounts to first VAT report.
Prompt 5
Translate the rentemester core domain types from Danish to English variable names without breaking the rule engine. Show the diff.

Frequently asked questions

What is rentemester?

Early bookkeeping system for small Danish businesses. An AI agent posts routine entries while a hard rule engine enforces double-entry, VAT, and audit history.

What language is rentemester written in?

Mainly TypeScript. The stack also includes TypeScript, SQLite, Node.

How hard is rentemester to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is rentemester for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.