KhataOS documentation¶
KhataOS is free, open source accounting software. It works offline, keeps your books on your own computer, is built for the keyboard, and many of its shortcuts work the same way as in TallyPrime. It handles GST in India, VAT and ZATCA e-invoicing in the UAE and Saudi Arabia, and UK Making Tax Digital, and runs on Windows, macOS, Linux and Android. This page lists all the documentation.

For people using KhataOS¶
The user guide has short pages, one for each task, with the exact keys:
- Getting started: Download · Install · Your first company · Coming from Tally · Keyboard
- Everyday work: Masters · Vouchers · Reports · Invoices · Desk · Calculator
- Countries: India · UAE and Saudi Arabia · UK · Singapore · Germany, France, Netherlands, Spain · US · Mexico
- Working with others: Sharing · Import from Tally
- Your data: Backup · Arabic · Mobile · Troubleshooting · FAQ
Testers: start with the tester guide.
Country reference¶
Detailed notes on each compliance pack: the rules, the sources behind them, what was tested and what is still open.
| Country | Docs |
|---|---|
| India | GST returns · TDS and TCS · Schedule III · e-Invoice and e-way bill |
| UAE | UAE VAT |
| Saudi Arabia | KSA VAT and ZATCA |
| Singapore | Singapore GST |
| UK | UK VAT and MTD |
| Germany | Germany |
| France | France |
| Netherlands | Netherlands |
| Spain | Spain |
| US | US sales tax |
| Mexico | Mexico CFDI |
| E-invoicing | EN 16931 · Peppol |
Features in depth¶
- Invoice design: templates, logos, the PDF writer.
- Multiple currencies: ledgers and vouchers in foreign currencies, and forex gain or loss.
- Languages: Arabic, the right to left layout, Hijri dates, adding a language.
- Sharing your books: office server, relay, accountant files.
- Android and iOS: building and running the phone apps.
- Crash reporting: what a report contains and how it is sent.
For developers and contributors¶
- Contributing, Code of Conduct, Security.
- Architecture: how the crates fit together, the audit trail, the security model.
- Roadmap: what works today and what's next.
- Testing: the tester guide.
- Hosting a relay: running
khata-serveras a relay. - Interaction spec: the keyboard and screen rules every screen follows.
- Desktop app: the Tauri app's layout and build.
- The key reference in Keyboard is generated from
crates/khata-keymap/src/tally.rs. After changing the key map, runscripts/keymap-doc; a test fails until you do.
Research¶
Background studies in docs/research/. They are planning inputs, written at a point in time, and may lag the code. What they say about other products, including prices and user opinions, is as found on the research date and quoted from the sources linked in each study; check the vendor's own site for current details.
- Tally gap studies: accounting · inventory, payroll and tax · user experience and platform
- Tally: pain points · shortcuts
- Voucher numbering · Accountant's desk
- Compliance: India · India GST advanced · India TDS and TCS · India Schedule III · UAE and KSA · Singapore · UK · Germany · France · Netherlands · Spain · US · Mexico · E-invoicing and Peppol
Trademarks¶
"Tally", "TallyPrime" and "Tally.ERP 9" are trademarks of Tally Solutions Pvt. Ltd. KhataOS is an independent project, not affiliated with, endorsed by or sponsored by Tally Solutions. The names are used only to describe compatibility, such as the key map and data import. Other product and authority names belong to their owners.
The docs site¶
The docs are published with MkDocs and the Material theme, under /docs/ of the KhataOS website. The configuration is mkdocs.yml at the repository root. The website itself (the home page, the download page and the themes gallery) is plain HTML in website/. .github/workflows/docs.yml builds both on every push to main that touches them, and on pull requests: MkDocs goes into docs/ of the Pages artifact, and website/ is copied to its root.
Publishing is off until a maintainer enables it in the repository settings:
- Settings → Pages → Build and deployment → Source: GitHub Actions.
- Settings → Secrets and variables → Actions → Variables: add
DOCS_PAGESwith the valuetrue.
The next push to main then deploys the site to GitHub Pages. Until then the workflow only checks that the site builds.
To preview locally:
python3 -m venv .venv
.venv/bin/pip install mkdocs-material==9.5.49
.venv/bin/mkdocs serve
Then open http://127.0.0.1:8000/khataos/docs/. Links to source files outside docs/ work on GitHub but not on the site.
To preview the whole site as GitHub Pages serves it, with the website at the root and the docs under /docs/:
.venv/bin/mkdocs build --strict
cp -R website/. site/
mkdir -p /tmp/pages && rm -rf /tmp/pages/khataos && cp -R site /tmp/pages/khataos
python3 -m http.server -d /tmp/pages 8000
Then open http://127.0.0.1:8000/khataos/.