npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

openaccounting

v0.4.1

Published

Terminal-native accounting software with AI-powered features for freelancers and small businesses

Readme

◆ OpenAccounting

Terminal-native accounting for freelancers and small businesses.

Your books, your machine. No cloud required.

npm license node


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 & files

Want 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 link

Uninstall

npm uninstall -g openaccounting

Optional: 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 & settings

Your 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 version

Quick Start

oa

First 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):

  1. In the app: Press s for Settings → AI Assistant → Enter your key
  2. Environment variable: export OPENAI_API_KEY=sk-...
  3. File: Create .env with OPENAI_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 files

To 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 tests

See 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.