Open Net Worth
Open Net Worth is an open-source personal AI wealth assistant you run yourself: one ledger for your whole financial life, worked by an AI agent you control.
Ask why gross margin moved and get an answer where every figure comes from a script that ran on your data. Open source, Apache-2.0, runs on macOS and Windows.
FinanceTypeScript · PythonGitHub @critias-aiOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Open-source pricing analyst: margin, price-volume-mix and price realisation analysis on your own data, with every figure checked against executed code.
Loading the full README.
Read the full README ↗Critias is an open-source pricing agent: a local browser application for AI-assisted pricing and gross margin analysis. Ask questions about CSV, Excel, text and Markdown files and get answers whose figures are checked against the code that produced them, with native tables and Plotly charts read straight from the computed results.
Built on Pi (earendil-works/pi), the open-source agent harness. Pi supplies the model layer, the agent loop, and tool calling; this project adds the pricing skills, the data checks, and the figure verification on top.
The application combines an assistant-ui chat interface (React), a Fastify server, the Pi agent SDK, DuckDB, seven bundled pricing skills (Pricing Plugin 0.4.13) and a visualization skill. Calculations run locally. Model requests go to the provider you choose: OpenAI, OpenRouter, Google Gemini or Anthropic.
Status: experimental research preview (0.5.1). Native macOS setup, component, Python and browser tests, and live runs of the single-analyst workflow on synthetic and public datasets have been checked. Real-business-data validation and native scale testing are still pending. See how the harness works and the verification records.
.pricing/context.md, written only for facts you confirm, and conversation history in a sidebar.Skills and dependencies are pinned. The provider and model are set in pricing-harness/.env; the app never switches models or updates its bundled skills by itself.
You need Node.js 22.19 or later and Python 3.12 (Windows also needs Git for Windows).
npm install -g critias
Create ~/.critias/.env (on Windows, %USERPROFILE%\.critias\.env) with a key and a model for one provider. For example:
ANTHROPIC_API_KEY=your-key
ANTHROPIC_MODEL=claude-sonnet-5-5
The other providers are OPENAI_*, OPENROUTER_* and GEMINI_*; critias models anthropic lists model IDs. Then start the app with a folder for your business files:
critias ~/CritiasWorkspace
The first start creates a Python environment in ~/.critias/venv, which takes a minute and needs a network. Open the link it prints. npx critias works without a global install. To update, run npm install -g critias again.
Run these commands from the repository root:
cd pricing-harness
bash scripts/setup-macos.sh
cp .env.example .env
Set a key and a model for the provider you use in .env: OPENAI_API_KEY and OPENAI_MODEL, OPENROUTER_API_KEY and OPENROUTER_MODEL, GEMINI_API_KEY and GEMINI_MODEL, or ANTHROPIC_API_KEY and ANTHROPIC_MODEL. The app uses the first provider that has both, in that order. With a stored ChatGPT login (Pi's ~/.pi/agent/auth.json), set only OPENAI_MODEL. Keep the file out of Git. Then launch with a separate business workspace. An optional second argument overrides the model for one launch:
bash scripts/start-macos.sh "$HOME/PricingHarnessWorkspace"
Open the local application. The launcher creates the workspace if needed. Restart after changing harness.config.json or .env; the thinking level is chosen in the interface, beside Send; stop with Ctrl+C. Model requests use your credentials and can incur provider charges.
Add a file and ask, for example: “Which products contributed most to the change in gross margin between these years?” Confirm column meanings, currency, calendar, cost treatment and comparison scope when asked. See local setup for model selection, direct Node and OpenAI launches, headless use and every setting.
This is the beginning of the README. Read the rest at the original. Read the full README ↗