openaccounting
v0.4.1
Published
Terminal-native accounting software with AI-powered features for freelancers and small businesses
Maintainers
Readme
◆ OpenAccounting
Terminal-native accounting for freelancers and small businesses.
Your books, your machine. No cloud required.
Why OpenAccounting?
Most accounting software stores your financial data on their servers. You pay monthly fees, need internet to access your own books, and if they shut down — your data goes with them.
OpenAccounting is different.
┌─────────────────────────────────────────────────────────────────┐
│ │
│ 📁 Your data lives HERE → on YOUR computer │
│ │
│ Not on someone else's server. Not in "the cloud". │
│ Just a simple file you can backup, move, or delete. │
│ │
└─────────────────────────────────────────────────────────────────┘The Difference
| | OpenAccounting | Cloud Software (QuickBooks, Xero, etc.) | |---|----------------|----------------------------------------| | 💰 Cost | Free forever | $15-50/month ($180-600/year) | | 🌐 Internet | Works offline | Requires connection | | 🔒 Privacy | 100% private | They can access your data | | 📍 Data location | Your computer | Their servers | | 🏢 If company shuts down | Still works | Data at risk | | 💳 Payment info required | No | Yes | | 📧 Account required | No | Yes |
How It Works
Your financial data is stored in a single file called oa.db — a SQLite database. SQLite is the most widely deployed database in the world, used by every smartphone, browser, and operating system.
Your project folder:
├── oa.db ← All your data (invoices, expenses, contacts)
├── oa-workspace.json ← Your settings
└── ~/.openaccounting/
└── documents/ ← Attached receipts & filesWant to backup? Copy the file. Want to move computers? Copy the file. Want to delete everything? Delete the file.
No export wizards. No vendor lock-in. No begging for your own data.
Install
npm install -g openaccounting# Homebrew (macOS)
brew tap openaccounting/tap && brew install oa
# From source
git clone https://github.com/openaccounting/openaccounting.git
cd openaccounting && npm install && npm run build && npm linkUninstall
npm uninstall -g openaccountingOptional: Remove your data
Your data is stored locally in whichever folder you ran oa from:
~/.openaccounting/ # Attached documents (receipts, contracts)
./oa.db # Your database (in the folder where you ran oa)
./oa-workspace.json # Settings (in the folder where you ran oa)To delete everything:
rm -rf ~/.openaccounting # Remove attached documents
cd /path/to/where/you/ran/oa # Go to your project folder
rm oa.db oa-workspace.json # Remove database & settingsYour data is never uploaded anywhere — it only exists on your machine.
Commands
oa Open your books
oa fresh Start fresh (clears all data)
oa help Show help
oa version Show versionQuick Start
oaFirst launch guides you through a quick setup:
██████╗ ██████╗ ███████╗███╗ ██╗
██╔═══██╗██╔══██╗██╔════╝████╗ ██║
██║ ██║██████╔╝█████╗ ██╔██╗ ██║
...
Quick Setup (4 questions)
What should we call your business?
› Business name [My Business]: _Then you're in the dashboard.
Keyboard Shortcuts
Navigation
| Key | Where it takes you |
|-----|-------------------|
| d | Dashboard |
| i | Invoices |
| e | Expenses |
| p | People (contacts) |
| v | Vault (documents) |
| r | Reports |
| c | Chat (AI) |
| s | Settings |
| ? | Help |
| q | Quit |
Inside Lists
| Key | What it does |
|-----|--------------|
| j / k | Move up/down |
| n | New item |
| a | Attach file |
| Tab | Switch panel |
| Esc | Go back |
Inside Forms
| Key | What it does |
|-----|--------------|
| ↑ / ↓ | Move between fields |
| ← / → | Cycle options |
| Ctrl+S | Save |
Features
| | | |---|---| | Invoicing | Create, PDF export, email, track payments | | Expenses | Categorize, attach receipts, import bank statements | | Documents | Store contracts, receipts, statements | | Contacts | Customers and vendors | | Reports | Balance sheet, P&L, receivables aging | | AI Chat | Ask questions in plain English (optional) |
AI Assistant
Optional. Works without it — just skip if you don't need it.
Setup (choose one):
- In the app: Press
sfor Settings → AI Assistant → Enter your key - Environment variable:
export OPENAI_API_KEY=sk-... - File: Create
.envwithOPENAI_API_KEY=sk-...
Get your key at platform.openai.com/api-keys
Then press c in the app to chat:
- "What am I owed this month?"
- "Show expenses over $500"
- "Create invoice for Acme Corp, $5000"
Data
Everything stays on your machine:
./oa.db Your database
./oa-workspace.json Workspace config
~/.openaccounting/documents/ Attached filesTo start over: oa fresh
Requirements
- Node.js 18+
- macOS, Linux, or Windows (WSL)
Development
npm install # Install dependencies
npm run build # Compile TypeScript
npm run fresh # Build + reset + launch
npm run dev # Watch mode
npm test # Run testsSee CONTRIBUTING.md for guidelines.
Links
| | | |---|---| | Docs | openaccounting.dev/docs | | GitHub | github.com/openaccounting/openaccounting | | Issues | Report a bug | | Changelog | CHANGELOG.md | | Security | SECURITY.md |
License
MIT — use it however you want.
