Sigma is a fast, CLI-first personal finance tracker designed for local use. It focuses on rapid transaction logging, simple account management, and auditable snapshots through a "rendering" cycle.
Most finance trackers are either too complex or require too many clicks. Sigma is built for users who live in the terminal and want to:
- Log quickly: Record expenses, income, and transfers with minimal keystrokes.
- Audit with ease: Use the
rendercommand to verify and clear your pending movements into historical snapshots. - Stay local: Your data stays on your machine in a lightweight SQLite database.
- See the big picture: Rich terminal tables provide instant clarity on your balances and credit availability.
- ⚡ Fast Logging: Simple commands for
exp(expense),inc(income), andtr(transfer). - 🏦 Account Management: Support for both Debit and Credit accounts with rolling credit limit tracking.
- 🔄 Rendering Cycle: Mark movements for review and "render" them into your history once verified.
- 📊 Rich Interface: Beautifully formatted tables powered by Rich.
- 📜 Audit Log: Full history of movements and render snapshots.
- 🌐 Web Dashboard: Modern, minimalist local web client (
sgm web). - 🤖 Telegram Bot: Optional integration to securely interact with Sigma via Telegram using standard CLI commands.
Sigma requires Python 3.10 or higher.
# Core CLI only
pip install sigma-finance
# With Telegram Bot integration
pip install "sigma-finance[telegram]"Once installed, initialize your database and create your first account:
sgm start- Check your status:
sgm status
- Log an expense:
# Usage: sgm exp <amount> <description> <mark_for_render: yes|no> [account_id] [date] sgm exp 5000 "Lunch" yes wallet 2026-05-20
- Log income:
sgm inc 2500000 "Salary" no bci - Transfer between accounts:
sgm tr bci wallet 50000
- Render marked movements:
# Sums marked items, logs to history, and clears marks. sgm render
To launch the local web interface:
sgm web # Launches the local dashboard in your browserTo run Sigma as a background bot, configure your credentials and launch the daemon:
sgm bot setup # Configure bot token and allowed users
sgm bot run # Launch the daemonFor Docker, systemd, or launchd setup details, see the Telegram Bot Deployment Guide.
| Command | Description |
|---|---|
sgm status |
Show balances, credit limits, and marked totals. |
sgm log [limit] |
List recent movements (default: 15). |
sgm history |
View previous render results. |
sgm acc list |
List all accounts and their details. |
sgm config |
Configure default accounts for faster logging. |
sgm web |
Start the local web dashboard server. |
sgm export |
Export all data to a ZIP file with CSV tables. |
sgm delete <id> |
Remove a record by its unique ID (e.g., m-1). |
sgm bot setup |
Configure the Telegram Bot credentials. |
sgm bot run |
Start the Telegram Bot event loop. |
For a complete reference of all available commands and their arguments, please refer to the Detailed CLI Usage Guide.
We use Makefile for common development tasks.
# Clone the repository
git clone https://github.com/fzunigam/sigma
cd sigma
# Install in editable mode with dev dependencies
make install
# Run tests
make test
# Run linter
make lintsrc/sgm/— Core Python packagecli.py— Typer-based CLI entrypointstelegram_bot.py— Telegram bot integrationinfrastructure/— database, persistence and config management (database.py,user_config.py)interface/— terminal UI, banners and web server glueinterface/web/— lightweight web server and static assets for the dashboard
web/— Next.js web client (React + Tailwind) and frontend sourcesdocs/— architecture, guides, deployment notes, and coding conventionstests/— test suites (smoke, integration, unit)assets/— images and demo assets (GIFs, screenshots)
Sigma is licensed under the MIT License.
