ERP, CRM and Finance — that agents run, that you own
Ekwo is the memory of your company: ERP, CRM and Finance in one place, that AI agents run and that you own. Invoices, bank statements, VAT returns, e-invoicing, customers and pipeline live in your own instance, opened in a minute — a model of the company that a machine can operate and a human can read. It runs on Ekwo OS, open source: your guarantee of sovereignty, and the foundation you and your agents build new services on.
Agents that act with your rights, on the AI model you choose — never with a key of their own. You and your accountant stay in control.
See the app, screen by screenAlready using Claude? Connect Ekwo in Claude
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 its own memory. Ekwo 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. 175 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 recorded to the accounts the pack names.
Charts and labels in 49 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.
Open source is your guarantee of sovereignty. It installs on a database you own — an ordinary Postgres — and your data leaves whole, as an open archive, whenever you want it to. It keeps working whoever disappears.
Your company data lives in your own database, not on somebody else’s servers. You hold the keys, and you decide who reads it.
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 recorded transaction 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 nothing is recorded until somebody confirms it.
% ekwo doc new --contact "Comercial Pirineu SL" --date 2026-01-12 \ --line "name=Material d’oficina, venda al detall,quantity=20,price=1000.00,account=7000,tax=AD-S-45"V1 draft 20900.00 EUR% ekwo post V1 --dry-runaccount debit credit4300 20900.007000 20000.004770 900.00balanced — nothing posted, --dry-run% ekwo company exportmanifest.json + data/*.jsonl — your company data, yours to take
Replayed from the Andorra pack’s golden year.
› Invoice Comercial Pirineu SL for 20 × Material d’oficina, venda al detall, and tell me what it does to this quarter's VAT.Finding the customer.% search_contacts { "query": "Comercial Pirineu SL" }Comercial Pirineu SL · customer · ADDrafting the invoice. A draft changes nothing.% create_document { "doc_type": "sale_invoice", "document_date": "2026-01-12", "lines": [{ "name": "Material d’oficina, venda al detall", "quantity": 20, "unit_price": "1000.00", "account_code": "7000", "tax_code": "AD-S-45" }] }V1 draft 20900.00 EURThis is what it would record:account debit credit4300 20900.007000 20000.004770 900.00› This records the invoice for good. Confirm?› y% post_document { "document_id": "V1" }posted · entry balanced · period openAnd the declaration for 2026-T1:% vat_return { "period": "2026-T1" }box 1 19000.00box 1 855.00Recorded 20900.00 EUR on 4300, and box 1 of 2026-T1 now reads 855.00.
The agent stops and asks before anything is recorded. The figures are the Andorra 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 Andorra 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 your ERP, CRM and Finance 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 run your finance 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 company’s own data, 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 issue 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 your company data, 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, account detail, 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 accounts 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 — accounts, 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, in the same company data.
A document, its signatories and the trail of proof. The qualified level comes from the trust provider you choose.
Finance is where Ekwo starts. Everything else a business runs on — ERP, CRM, and what comes next — joins as a module of the same world model, 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 company data, 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 never takes over your data: it 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.
fixnot released yet
The search of the crm module answers on a company of an imported address book. In the changelog
fixnot released yet
Every other module asks once per statement too. In the changelog
fixnot released yet
No policy may ask per row again. In the changelog
country
Czechia pack 0.5.0 The country page
country
Polska pack 0.3.0 The country page
featurenot released yet
A bank account keeps the profile of its CSV statements. In the changelog
featurenot released yet
ekwo import csv takes the profile as --csv-profile. In the changelog
featurenot released yet
An electronic invoice received arrives by the inbox's door. In the changelog
The data belongs to the business.