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

plasalid

v0.9.12

Published

Plasalid — The Harness Layer for Personal Finance

Downloads

6,623

Readme

In US and Europe, most financial apps are powered by aggregators like Plaid. You can link your bank accounts once and see your entire financial life in one place. But for most of the world, Thailand included, that infrastructure simply does not exist.

Your data is locked in bank silos. Tracking your net worth means logging into half a dozen apps and crunching the numbers manually. This fragmentation creates massive blind spots. Subscriptions are forgotten, strange charges go unnoticed, and planning for big financial goals becomes a guessing game.

Plasalid is built to fix this. Think of it as a personal financial AI harness.

You drop your raw financial documents (bank statements, credit card bills, payslips) straight into a folder on your machine. Plasalid parses those files and extracts every transaction, balance, and holding. It transforms a messy pile of PDFs into a clean, double-entry ledger. You only have to build this foundation once. The result is an open, structured backend for your finances, ready to plug into any tool you want.

To show you the power of this harness out of the box, Plasalid includes a built-in AI agent. Because your ledger is fully structured, you can actually talk to your money. Ask a question like "Which subscriptions are still active?" or "What did I spend on food last month?". You get exact numbers pulled directly from your records, not estimates or AI hallucinations.

We also built strict boundaries around your privacy. The database is encrypted locally. Plasalid automatically strips out all PII before sending data to an external API. This means that if you swap in a local AI model, your setup can stay 100% private and offline.

Features

Unified ledger from any financial document

  • Drop PDFs, get a complete ledger. Just drag in your bank statements, credit card bills, payslips, or brokerage summaries. Plasalid uses AI to extract every transaction, balance, and holding straight into a double-entry database.
  • No aggregators or per-bank logins. The big picture builds itself from the documents you already get every month. Zero manual data entry and no fragile bank connectors to maintain.

Built-in AI agent that queries your real data

  • Ask in plain English. Type questions like "Which subscriptions are still active?", "Where did my money go last month?", or "What is my net worth right now?".
  • Answers from actual records. The dates, merchants, and numbers are pulled directly from your ledger. You get hard facts. Nothing is estimated and nothing is invented.

Local-first, private, and open as a harness

  • Everything runs on your machine. Your ledger is stored in an AES-256 encrypted SQLite database. There are no cloud aggregators or upstream accounts. No third party ever touches your data.
  • PII redacted by default. Your name, phone numbers, and full account details are completely scrubbed before any prompt leaves your hardware.
  • Bring your own AI. Choose Anthropic, OpenAI, Google Gemini, or any OpenAI-compatible local model during setup. If you run a local model, your setup stays 100% private and offline.
  • A harness layer for AI agents. The structured ledger acts as your baseline data layer. It is designed to be open and ready for any external tools you want to plug in.

Install

npm install -g plasalid

Requires Node ≥ 18.

Quick Start

plasalid setup

Then:

  1. Run plasalid data (alias: plasalid open) to pop open your data folder in Finder/Explorer, then drag in any bank or credit-card statement PDF you've got. One file is enough to start — Plasalid will already give you useful answers about that account. More files make the picture richer.
  2. Run plasalid scan — parses your PDFs end-to-end into ledgers.
  3. Run plasalid clarify to clear up anything the scanner flagged as a question. Your answers become memory rules that future scans reuse automatically.
  4. Run plasalid to chat with the built-in AI agent over your ledger.

Other day-to-day commands:

  • plasalid scan <regex> — only scan files whose path matches the regex.
  • plasalid scan <regex> --force — re-scan matching files (replaces prior records).
  • plasalid scan --parallel <n> — scan up to N files concurrently (default 3, max 8).
  • plasalid clarify — walk every open question one at a time and apply your decision (categorize, merge duplicates, etc).
  • plasalid files — browse scanned files; press d to drop one and its records.
  • plasalid rules — browse learned memory rules; press d to delete a rule.

Commands

Run plasalid --help to see all available commands.

plasalid                            # Interactive chat with your data
plasalid setup                      # Configure API key, encryption, and data directory
plasalid data                       # Open the Plasalid data folder in your file explorer
plasalid accounts                   # Show the accounts with balances
plasalid transactions               # List transactions and their postings (filter by --account, --from, --to, --query, --limit)
plasalid status                     # Net worth and this-month income/expense totals
plasalid record [utterance]         # Add a manual transaction, account, balance, or merchant from a plain-language line
plasalid scan [regex] [--force]     # Scan new PDFs; --force cascade-deletes prior records before re-scanning
plasalid clarify                    # Walk every open question and apply your decision
plasalid files                      # Browse scanned files;
plasalid rules                      # Browse learned memory rules;

How It Works

  Bank · Card · Payslip · Brokerage · Transfer · Receipt
                  │
             (drop PDFs)
                  │
       ┌──────────▼──────────┐
       │  ~/.plasalid/data/  │
       └──────────┬──────────┘
                  │
    plasalid scan / plasalid record
                  │
       AI provider (PII-redacted)
                  │
       ┌──────────▼──────────┐
       │     Encrypted DB    │◀──── plasalid clarify
       └──────────┬──────────┘       
                  │                   
               plasalid               

Two main outbound calls: the AI provider during scan, and the AI provider during chat. Both are PII-redacted. Your financial data is never stored off your machine. No telemetry. No analytics.

Security & Privacy

  • All financial data stored locally in ~/.plasalid/db.sqlite
  • Database encrypted with AES-256 (libsql)
  • Config file stored with 0600 permissions
  • PII redacted before sending to any AI provider
  • Encrypted-PDF passwords are AES-GCM-encrypted inside db.sqlite under a filename pattern; never written to disk in plaintext.
  • Only outbound traffic is to your configured AI provider

Configuration

Plasalid stores everything in ~/.plasalid/:

~/.plasalid/
  config.json          # API keys and preferences (0600 permissions)
  context.md           # Persistent personal context
  db.sqlite            # Encrypted SQLite database
  data/                # Drop any PDFs here (subfolders allowed; AI classifies)

db.sqlite holds the three-layer ledger (hierarchical accounts, deduplicated merchants with categories, transactions and postings), scan history, open questions awaiting clarify, persisted long-term memory rules learned across scans, and AES-GCM-encrypted passwords. Everything is wrapped in libsql's AES-256 page encryption.

Environment Variables

Only the provider you select needs its block configured — leave the rest unset.

# Provider selection
PLASALID_PROVIDER=            # anthropic | openai | gemini | openai-compat (default: anthropic)

# Anthropic
ANTHROPIC_API_KEY=            # required when provider is anthropic
ANTHROPIC_MODEL=              # default: claude-sonnet-4-6

# OpenAI
OPENAI_API_KEY=               # required when provider is openai
OPENAI_MODEL=                 # default: gpt-5.4-mini

# Google Gemini
GEMINI_API_KEY=               # required when provider is gemini
GEMINI_MODEL=                 # default: gemini-2.5-pro

# OpenAI-compatible (LM Studio, Ollama, vLLM, etc.)
OPENAI_COMPAT_BASE_URL=       # e.g. http://localhost:1234/v1
OPENAI_COMPAT_API_KEY=        # often blank for local servers
OPENAI_COMPAT_MODEL=          # e.g. qwen/qwen3-vl-7b

# Storage
PLASALID_DB_ENCRYPTION_KEY=   # DB encryption passphrase
PLASALID_DB_PATH=             # Default: ~/.plasalid/db.sqlite
PLASALID_DATA_DIR=            # Default: ~/.plasalid/data

Contributing

git clone https://github.com/phureewat29/plasalid
cd plasalid
npm install
npm run build
npm link # makes 'plasalid' available globally

License

Plasalid is released under the Apache License 2.0 with the Commons Clause.

You're free to use, copy, modify, distribute, and fork it. The Commons Clause adds one restriction: you may not Sell the Software — that is, you may not provide a paid product or service whose value derives entirely or substantially from Plasalid's functionality (including paid hosting or support). For commercial-resale rights, contact the copyright holder to negotiate a separate license.