Open source accounting, finance, ERP and CRM, for every business
Ekwo is far more than an accounting tool: one finance, ERP and CRM platform, everything included, that AI can run. Invoices, bank statements, VAT returns, e-invoicing, customers and pipeline live in your own instance, opened in a minute. It runs on Ekwo OS, open source — a foundation your whole company uses, and you and your AI agents build new services on.
Ekwo runs your finance and ERP data, with the AI model you choose. You and your accountant stay in control.
See the app, screen by screenAlready using Claude? Try it on your own books
Works with the model you choose
Names and logos belong to their owners; Ekwo is not affiliated with them.
See it work
Everywhere
No business, anywhere, should have to rent the right to keep its own books. Ekwo works with the accountant: it gives businesses and their accountants open schemas, the rules of each country as data, and the tools to work on them. It is written country by country, by the people who know the rules of each one — accountants, tax advisers, developers — and given back to everyone. 169 countries today. The rest of the world is open, and it is yours to write.
A business is data, in every country.
How it works: the rules of a country are files, not code — a chart of accounts, its taxes, the boxes of its return, its financial statements, the sentences its law puts on an invoice. An accountant can read them, a contributor can propose them, a test can prove them. Adding a country touches no engine. Write the pack for your country
A country that levies no value added tax at all, with a tax that follows the territory of the parties.
A country outside the common system of VAT, and one inside it, from the same engine.
Several charts of accounts in one country — for companies, and for non-profits.
Amounts carry the decimals of their currency rather than assuming cents, and the rounding method of their country.
Exchange differences booked to the accounts the pack names.
Charts and labels in 48 languages, translated in the packs themselves.
EN 16931 and Peppol where they apply, and nothing where they do not.
No country, currency or language anywhere in the code — a check in continuous integration refuses one.
What you get
Free and open source. Read it, run it, change it, and take it with you. The core is AGPL-3.0 and the format libraries are MIT, so what is built on it stays open.
It installs on a database you own — an ordinary Postgres — and your books leave whole, as an open archive, whenever you want them to. It keeps working whoever disappears.
The books live in your own database, not on somebody else’s servers. You hold the keys, and you decide who reads them.
The rules each country pack encodes are published, sourced to the law and dated — charts of accounts, taxes, the boxes of the return, statutory statements and electronic invoicing — so that you and your accountant can check them. Every country page says when it was last checked.
Access is enforced by the database itself, on every row of every table. A posted entry cannot be altered. Every change leaves an audit trail.
Your numbers are in your database and nowhere else. This site sets no cookie, loads nothing from anyone and serves its own typefaces. The hosted edition is your own instance.
Automation
An agent or a script calls the same functions a person does, with the same rights and under the same rules. Nothing has a private way in.
A brick writes the Peppol BIS 3 or Factur-X file and validates it against the standard. Sending and receiving over the network is the operated edition — the file itself is yours either way.
camt.053, CODA and CFONB 120 import once however often you replay the file; a payment finds the invoice it settles by its reference.
Trial balance, aged balance, the VAT return and what is due when — for a person, a script or an agent, through the same functions.
Ekwo reads any supplier invoice, in any language, with the AI model you choose, and calls the same tools a person would: the contact, then the draft with its lines, accounts and taxes. The database works out the totals, and the entry is booked when somebody posts it.
% ekwo doc new --contact "Marasi Consulting Services LLC" --date 2026-01-15 \ --line "name=Management consulting services — January engagement,quantity=1,price=10000.00,account=4010,tax=AE-S-SR"INV-AE-SR-1 draft 10500.00 AED% ekwo post INV-AE-SR-1 --dry-runaccount debit credit1100 10500.004010 10000.002100 500.00balanced — nothing posted, --dry-run% ekwo company exportmanifest.json + data/*.jsonl — your books, yours to take
Replayed from the United Arab Emirates pack’s golden year.
› Invoice Marasi Consulting Services LLC for 1 × Management consulting services — January engagement, and tell me what it does to this quarter's VAT.Finding the customer.% search_contacts { "query": "Marasi Consulting Services LLC" }Marasi Consulting Services LLC · customer · AEDrafting the invoice. Nothing is booked by a draft.% create_document { "doc_type": "sale_invoice", "document_date": "2026-01-15", "lines": [{ "name": "Management consulting services — January engagement", "quantity": 1, "unit_price": "10000.00", "account_code": "4010", "tax_code": "AE-S-SR" }] }INV-AE-SR-1 draft 10500.00 AEDThis is the entry it would write:account debit credit1100 10500.004010 10000.002100 500.00› This books the invoice and cannot be undone. Post it?› y% post_document { "document_id": "INV-AE-SR-1" }posted · entry balanced · period openAnd the declaration for 2026-Q1:% vat_return { "period": "2026-Q1" }box d1 108000.00box d2 400.00Booked 10500.00 AED to 1100, and box d2 of 2026-Q1 now reads 400.00.
The agent stops and asks before anything is booked. The figures are the United Arab Emirates pack’s golden year, to the cent.
Claude Code with the Ekwo MCP server. Ekwo reads the PDF with the model chosen here, Claude, and keeps the draft and the rules; the file stays with you. The invoice is from the United Arab Emirates pack’s golden year.
Ekwo embeds no model and imposes none. It exposes its tools over the open Model Context Protocol and a command line a program can read, so an agent works on the books with the rights of the person it acts for — never with a key of its own — and you can change your mind about which one.
Ekwo installs on your own Supabase project: your database, your keys, your bill. The schema is ordinary PostgreSQL, and the files it writes and reads are published standards rather than formats of its own.
Names and logos belong to their owners. Ekwo is not affiliated with any of them; compatibility is through the open Model Context Protocol and published standards.
Keep yours: Ekwo reads its exports and works on top of it — collecting, bringing the data to the standards, checking, preparing what the country asks for. Or let Ekwo keep the books on its own.
All the software Ekwo works with
Names belong to their owners. Ekwo is not affiliated with, endorsed by or sponsored by any of them; compatibility is through the exports they publish.
At a glance
For the CFO and the business owner: the Ekwo Cloud cockpit answers each question from the posted entries, scored on a published scale. Nothing to set up, no spreadsheet.
Days of cash
Net margin
Current ratio
Equity ratio
Days of sales outstanding
Days of payables outstanding
Revenue growth
Each figure is read from the aggregates the country pack defines. How the figures are read
Where it stands
Free software under AGPL-3.0.
Draft, number and post an invoice or a credit note under the numbering rule the country prescribes.
The same documents the other way round, with the tax recovered — or not — as the country says.
Customers and suppliers, with their VAT number, the electronic address the pack names, and how each appears on a bank statement.
The return is computed from the books, frozen box by box, filed, and settled to the account the pack names.
Opening balances, closing the year into the accounts the country uses, and opening it again when you must.
Trial balance, general ledger, aged balance, and the statutory statements of the country — one call each.
Write and validate a Peppol BIS 3 or Factur-X invoice, with the sentences the country puts on it.
Every operation from a terminal or a script, with JSON output and exit codes a program can read.
The same operations exposed over the Model Context Protocol, under the rights of the person the agent acts for.
Import a statement, match a payment against what it settles, and let the reference do it for you.
When each return is due, from the pack’s rule and the company’s cadence, for every company you keep — and a corrective once one has gone.
Depreciation schedules and disposals, on the durations and conventions the country pack declares.
A budget per year and per account, and the variance against what the books actually hold.
A firm keeps forty clients in six countries as forty rows, each with its own chart, locks and pack.
A company exports whole — books, declarations and the proof they were filed — and imports into another installation.
A return, the annual accounts, any document: its hash anchored on Bitcoin. The file never leaves.
Whoever holds the file checks it against the block — no account, no Ekwo in between.
Only the company stamps its filings, and every proof leaves with its archive.
Wallets, lots, fair value at the close and realised gains, on the same books.
A document, its signatories and the trail of proof. The qualified level comes from the trust provider you choose.
Accounting is where Ekwo starts. Everything else a business runs on comes as a module on the same books — each one free, each one in the open. How a module works
Two ways to run it
Free, for ever. One command points it at your own Supabase project and it applies the schema, seeds the country rules and creates the first company. Nothing is gated.
npx ekwo-os initEvery release runs its suite on three versions of Node: the accounting rules, each country pack replayed against a year of books, and the installer, against real Postgres.
Install Ekwo OSThe hosted edition, Ekwo Cloud: the web application and your own instance, run and watched for you. What is sold is the operating — the application and the models and agents it includes, bank connections, sending and receiving over Peppol, the channels to the administrations, backup and sync. It is infrastructure, and it keeps no one’s books: yours and your filings stay yours and your accountant’s. It never gates the core, and what comes back from a filing is yours.
Get started with usA network, not a vendor
No company can know the accounting rules of the world. A network can. Accountants and tax advisers review the pack for their country and put their name on it; developers write a format library, a bank parser or the module their clients need; translators make a chart of accounts readable in their language. A pack is reviewed when a named professional has read it against the law they apply — not when anybody says so.
Every other country on the map is open. Here is the pack to write.
Latest changes
Read from the repository at every build: the countries, the releases, what was added and what was fixed.
country
New country: Papua New Guinea The country page
country
New country: Samoa The country page
release
Ekwo OS 0.21.1 is released In the changelog
release
Ekwo OS 0.21.0 is released In the changelog
featurenot released yet
What a schema newer than the floor brought, named once: SCHEMA_FEATURES and supports(installed, feature) In the changelog
featurenot released yet
tests/schema_floor.test.ts, and the CI job schema-floor that runs it with the full history. In the changelog
featurenot released yet
The schema floor of the packages is 0.19.0, and it is no longer the release number. In the changelog
feature
An agent posts in the mode its company chose, or its session chose In the changelog
The data belongs to the business.