Skip to main content

Sigma (sgm)

PyPI version License: MIT

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.

Project Logo

Why Sigma?

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 render command 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.

Features

  • Fast Logging: Simple commands for exp (expense), inc (income), and tr (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).
  • 🖥️ Desktop App: Native macOS window container for the web client (sgm app).

Installation & Setup

🖥️ macOS Standalone Application (Recommended)

Sigma is distributed primarily as a standalone macOS application. You do not need to install Python or use the terminal to get started.

  1. Download the app: Get the latest Sigma.dmg or Sigma.app.zip from GitHub Releases.
  2. Install: Drag Sigma to your /Applications folder.
  3. Launch: Double-click Sigma.app to open the native application window.
  4. Onboarding: On your first launch, the app will automatically initialize. An interactive onboarding welcome screen will guide you to set up your primary cash account or import a previous backup ZIP.
  5. Optional CLI Setup: On startup, the app automatically symlinks the sgm command-line executable into your path (at /usr/local/bin/sgm or ~/.local/bin/sgm). You can open your terminal and run sgm status to start using the CLI alongside the app!

💻 Command-Line Interface (CLI) & Developer Setup

For developers or terminal-only users, Sigma can be installed as a Python package. It requires Python 3.10 or higher.

# Install core CLI only
pip install sigma-finance

# Or install with native desktop window support (macOS)
pip install "sigma-finance[desktop]"

First-run CLI setup: If you are using the CLI standalone, initialize your database and configuration wizard:

sgm start

Usage

Core Workflow

  1. Check your status:
    sgm status
    
  2. 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
    
  3. Log income:
    sgm inc 2500000 "Salary" no bci
    
  4. Transfer between accounts:
    sgm tr bci wallet 50000
    
  5. Render marked movements:
    # Sums marked items, logs to history, and clears marks.
    sgm render
    

Web Dashboard

To launch the local web interface:

sgm web         # Launches the local dashboard in your browser

Desktop App

To run Sigma in a native macOS application window instead of your web browser, install the desktop package and launch it:

sgm app

Command Reference

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 app Launch the native macOS desktop app window.
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).

For a complete reference of all available commands and their arguments, please refer to the Detailed CLI Usage Guide.

Development

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 lint

Project Structure

  • src/sgm/ — Core Python package
    • cli.py — Typer-based CLI command routing
    • app_launcher.py — GUI Application runner & CLI symlink checker
    • cli_launcher.py — CLI Application runner for the bundled binary
    • infrastructure/ — database, persistence and config management (database.py, user_config.py)
    • interface/ — terminal UI, banners and web server glue
    • interface/web/ — lightweight web server and static assets for the dashboard
  • web/ — Next.js web client (React + Tailwind) and frontend sources
  • docs/ — architecture, guides, deployment notes, and coding conventions
  • tests/ — test suites (smoke, integration, unit)
  • assets/ — images and demo assets (GIFs, screenshots)

License

Sigma is licensed under the MIT License.

Acknowledgments

  • Typer for the CLI framework.
  • Rich for the beautiful terminal output.

Release files for sigma-finance 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sigma-finance 0.4.0
File Size Uploaded
sigma_finance-0.4.0.tar.gz 287.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sigma-finance 0.4.0
File Interpreter ABI Platform
sigma_finance-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 578.9 kB

Release files / sigma_finance-0.4.0.tar.gz

Download URL sigma_finance-0.4.0.tar.gz
Size 287.3 kB
Tags Source
SHA-256 checksum
How to use checksums
94d26ff4d15f27260ba2dc0c343524b5a96ce5e3dcacc3a114860c2bd070a0b6
BLAKE2b-256 checksum
How to use checksums
79baaa0d83b81981f9af60d9387f09737634a0570cf2b19e3b9b803b5fa02966
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 6, 2026.

Transparency log

Release files / sigma_finance-0.4.0-py3-none-any.whl

Download URL sigma_finance-0.4.0-py3-none-any.whl
Size 291.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2ce0be3ebcc4cb5a881bc0ca933116ad5d2745b31af4dff14b81d61a47ef4e93
BLAKE2b-256 checksum
How to use checksums
da05d35e402c9c88841d86992fd51b09676e04527aad42bca20e419c9302ed02
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 6, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page