Skip to main content

sciqnt — local-first, agent-native cross-asset portfolio tracker & data layer (CLI/TUI)

Project description

sciqnt

A local-first, agent-native portfolio tracker & cross-asset financial data layer. One canonical, point-in-time-correct schema for your positions, transactions, cash and prices — fed by community connectors for each broker / exchange / data source, rendered in a fast TUI, and consumable by any AI agent (Claude Code, Codex, …) through plain CLI + versioned JSON surfaces.

Deterministic code computes the numbers. Agents reason and explain. You own every byte: your credentials live in your OS keyring, your data on your disk — there is no server.

  net worth (EUR) │ daily

  24,570 ┤                                                       ⢀⡤⠖⠋⠹
         │                                 ⣀⡤⣄⣤⣀⣀⣀⣀⣀  ⡤⠤⠤⠤⣄ ⣀⣀⣀⣀⡤⠞
  22,019 ┤                            ⢀⣠⢤⣰⠒⠃     ⠉ ⠈⠉⠛⠁   ⠈⠉⠁⠉⠈⠁
         │                    ⢀⣰⠒⠚⠉⠉⠓⠒⠋
         │⣀          ⣀⢀⣀⣠⠤⠖⠋⠛⠉⠉
  19,468 ┤⠈⠙⠒⢦⣀⡤⠤⣤⣄⣠⠴⠋⠉
         ╰────────────────────────────────────────────────────────────
          2026-01-02                                        2026-06-12

  total value             24,121.05 EUR      TWR        13.70 %/yr
  total P/L (lifetime)    +3,340.95 EUR      XIRR        9.79 %/yr
  dividends (lifetime)      +395.10 EUR      max DD     −14.5 %

That's the built-in demo portfolio — synthetic and deterministic. sciqnt runs in demo mode until you connect an account; no real finances appear in any screenshot or doc, ever.

Install

git clone https://github.com/sciqnt/sciqnt && cd sciqnt
python3 -m venv .venv && .venv/bin/pip install pydantic prompt-toolkit keyring
./bin/sciqnt install        # adds `sciqnt` to your PATH
sciqnt                      # the interactive home (demo portfolio until you connect)

PyPI packages (uv tool install sciqnt, pip install sciqnt-degiro, …) are coming with the first tagged release. macOS note: use a Python built against modern OpenSSL (e.g. Homebrew python@3.13) — the system Python's LibreSSL is fragile against financial-API TLS.

What you get

  • The TUI: portfolio home with net-worth chart (1D…All ranges, 5-minute intraday), positions / exposure / income / news / flows / history tabs, account drill-downs — everything keyboard-driven.
  • Honest money math: Decimal end-to-end, FIFO/LIFO/AVG lots, fees-inclusive cost basis, TWR (GIPS-style breaks), XIRR, max drawdown, benchmark comparison — computed from your raw transaction history, point-in-time-correct (sciqnt --asof 2024-12-31).
  • Connectors as self-contained bundles (modules/sq-*): manifest + agent-facing SKILL + a living quirks log (FINDINGS) + conformance tests. Degiro (CSV + live), Robinhood, Kalshi, Polymarket, Yahoo, Tiingo, ECB FX, SEC EDGAR, FIRDS, OpenFIGI, RSS news — and a scaffold + harness for building your own.
  • Agent-native, both directions: every view is reproducible from the CLI (sciqnt --help maps it; --json gives versioned, Decimal-as-string data — sciqnt.portfolio/v1, sciqnt.history/v1, …). Summon your coding agent from any screen and it receives where you are, what's on your screen, and the command that reproduces it; agents can leave findings on your home screen (sciqnt insight add).
  • A point-in-time price archive: append-only, bitemporal, yours.

For agents

Run sciqnt --help. Every screen of the app has a CLI form; add --json for structured data. Skills ship in-repo (sq-portfolio, sq-connectors) and install into Claude Code / Codex automatically when summoned from the app. AGENTS.md is the codebase map — start there if you're an agent.

Build a connector for your broker

The platform ships the contract + conformance harness + a scaffold — the long tail of connectors belongs to the community (and to your coding agent). See CONTRIBUTING.md; the short version:

"build a sciqnt connector for <my broker>"   # tell your coding agent

Independent connector repos install with sciqnt modules add owner/repo (conformance runs locally before first use — trust is earned by the harness, not claimed).

Going deeper

Principles, the short list: local-first and sovereign — fire us and keep everything. Deterministic core, probabilistic edge — LLMs never touch the money math. Data first — rendered text is for humans, versioned JSON is the contract. Read wide, execute gated. Synthetic fixtures only.

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sciqnt-0.1.0-py3-none-any.whl (100.2 kB view details)

Uploaded Python 3

File details

Details for the file sciqnt-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: sciqnt-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 100.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for sciqnt-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b02a8c2710a000ec71a56deffcd658066cfba3b38c46231b34eaee4f6c6db651
MD5 6162e105b6f60d1f4fa83cc97f6c5207
BLAKE2b-256 d4a6a9fbfd3b98270a91594dbc381358a2d39ecfbd13861b3829c78dce57c8e8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page