
TaxHacker
github.com/vas3k/taxhacker- Category
- Finance
- Rank
- No. 299Tools index
Previous survey · No. 291 ·
- Pricing
- Open Source
- Type
- APP
- Builder
- vas3k
- GitHub
- 6.7k stars
- Latest release
- v0.8.5
- Date
About
Self-hosted AI accounting app that automatically extracts data from receipt photos, invoices, and PDFs using LLMs. Handles multi-currency conversion, custom categories, and generates tax-ready reports for freelancers and small businesses.
What it does
TaxHacker provides a document inbox and transaction workbench. You can hold files unsorted, process them manually or with AI, split invoice items into separate transactions, then search, filter, group, and export the resulting records. Prompts, fields, projects, and categories remain editable, so the data model can match a particular business workflow.
Why it's ranked here
The appeal is unusually broad control over both data and extraction behavior. Users can choose hosted model providers or an OpenAI-compatible local endpoint, edit system and field prompts, retain attached documents, and export complete archives. That flexibility is compelling, but the repository explicitly labels the project early-development software and warns that local-model results are not guaranteed.
What's good
The strongest feature is inspectable customization. Custom fields behave like added spreadsheet columns, while their prompts define what the model should extract. Historical conversion covers conventional currencies and selected cryptocurrencies. Manual entry remains available when automation fails. Bulk processing, full-text document search, item splitting, filtered CSV exports, and portable archives support the full path from intake to accountant handoff.
Tradeoffs
Running it yourself carries real operational weight: PostgreSQL is required, while PDF processing needs Ghostscript and GraphicsMagick during local development. Configured PDF handling stops at ten pages. Model quality and data privacy remain the operator's responsibility, especially with external providers or weak local OCR models. The maintainers also describe the software as early development and recommend using it at your own risk.
How to use it well
It best suits freelancers, independent builders, and small teams willing to verify extracted records before reporting. Use the unsorted area as an intake queue, tune prompts against recurring document formats, correct uncertain fields manually, then export filtered records and attachments for an accountant. Keep a tax adviser in the loop for filing decisions, since the documented workflow prepares reports rather than submitting returns.
Technical notes+
The application is a private TypeScript ES module package defined in package.json, with Next.js, React, Prisma, PostgreSQL, Vitest, and a Node.js 26 minimum. README.md documents Dockerfile and docker-compose.yml deployment, persistent uploads, startup migrations, and a prebuilt container image. lib/config.ts validates environment configuration and caps PDFs at ten pages. lib/db.ts creates a Prisma client through the PostgreSQL adapter. lib/auth.ts uses Better Auth with email OTP and bypasses subscriptions and AI balances in self-hosted mode. lib/files.ts guards joined storage paths against traversal, while lib/encryption.ts uses AES-256-GCM and derives its key with scrypt, but falls back to an explicitly insecure secret when the environment variable is absent.
Observed
- License
- MIT
- Primary language
- TypeScript
- Interface
- Browser-based Next.js application with frontend and API routes
- Installation
- Prebuilt Docker image, Docker Compose setup, or npm-based source installation
- Runtime
- Node.js 26 or newer
- Database
- PostgreSQL through Prisma; PostgreSQL 17 or newer is recommended
- Model support
- OpenAI, Google Gemini, Mistral, and OpenAI-compatible local endpoints
- Test tooling
- Vitest scripts are declared in the package configuration
Read from README.md, package.json, lib/db.ts, lib/auth.ts, lib/cache.ts, lib/email.ts, lib/files.ts, lib/stats.ts, lib/utils.ts, lib/config.ts, lib/stripe.ts, lib/actions.ts, lib/uploads.ts, lib/encryption.ts, lib/auth-client.ts.
What it can do
Extract financial data from receipt photos
Receipt photos → Structured financial data (amount, vendor, date, etc.)
Extract financial data from invoices
Invoice documents → Structured invoice data (amount, vendor, date, line items, etc.)
Extract financial data from PDF documents
PDF files containing financial information → Structured financial data
Automatically categorize financial transactions
Extracted financial data → Categorized transactions with assigned categories
Convert between multiple currencies
Financial amounts in various currencies → Converted amounts in target currency
Generate tax-ready reports
Categorized financial transactions and data → Tax-compliant financial reports
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.