Run OpenTax as a complete, client-side tax preparation application. No server, no account, no data leaving your machine.
Get a local instance running in three commands. You'll need Node.js 20+ installed.
$ git clone https://github.com/opentax-org/opentax.git
$ cd opentax
$ npm install
$ npm run dev
# Opens at http://localhost:5173
That's it. Open http://localhost:5173 in your browser and you're running a full tax preparation environment.
The standalone app bundles everything a tax filer needs into a single client-side application.
Upload W-2s, 1099s, and broker statements. OCR runs locally via Tesseract.js—no server upload.
13-step interview walks through income, deductions, credits, and dependents with real-time computation.
Click any computed line to see exactly how it was derived, which IRS rule applies, and which documents contributed.
Download IRS-ready Form 1040, schedules, and supporting forms for e-filing via IRS Free File or mailing.
Everything runs in the browser. Tax data is stored in IndexedDB locally. No server calls, no accounts, no tracking.
California Form 540 is supported, with additional states on the roadmap. Federal + state computed together.
Modern frontend tools, zero backend dependencies for the standalone mode.
| Layer | Technology | Purpose |
|---|---|---|
| Framework | React 19 + React Router 7 | UI rendering and client-side routing |
| State | Zustand 5 | Tax return state with IndexedDB persistence |
| Styling | Tailwind CSS 4 | Utility-first CSS with native @theme config |
| Build | Vite 6 | Dev server with HMR, production bundling |
| OCR | Tesseract.js 5 | Client-side document text extraction |
| pdf-lib | Client-side IRS form filling and download | |
| Testing | Vitest 3 | Unit and integration tests (1,700+ test cases) |
Key directories and what they contain.
opentax/ ├── src/ │ ├── rules/ │ │ └── 2025/ # IRS rules engine (TY2025) │ │ ├── form1040.ts # Form 1040 computation │ │ ├── scheduleA.ts # Itemized deductions │ │ ├── scheduleD.ts # Capital gains │ │ └── ... # All supported forms │ ├── ui/ │ │ ├── components/ # React components │ │ ├── pages/ # Route pages (interview steps) │ │ └── store/ # Zustand state management │ ├── services/ │ │ └── TaxService.ts # Public API for the engine │ └── trace/ # Explainability / trace tree ├── server/ # Express backend (plugin mode) ├── openclaw-plugin/ # OpenClaw agent tool defs ├── docs/ # GitHub Pages site (you are here) └── tests/ # 1,700+ test cases
Common commands for day-to-day development.
$ npm test # Run full test suite
$ npm test -- --watch # Watch mode for TDD
$ npm run build # Build to dist/
$ npm run preview # Preview production build
$ npx tsc --noEmit # TypeScript type checking
$ npm run lint # ESLint
Now that you're running locally, explore further.