Skip to main content

Terminal crypto portfolio + daily-compounding growth tracker (Jupiter/Solana prices)

Project description

tzla

Terminal crypto portfolio + daily-compounding growth tracker. Live prices and candle charts straight from the Jupiter (Solana) public API — no API key. Set a fixed growth plan once and each day see whether you're ahead or behind the curve.

$ tzla --grow
            Growth plan — 0.369%/day compounded daily
┏━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃       Day ┃       Date ┃ Plan balance ┃ TZLA amount ┃ Multiple ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ 0 ◀ today │ 2026-06-05 │      $511.76 │       2,199 │    1.00x │
│         1 │ 2026-06-06 │      $513.65 │       2,207 │    1.00x │
│         … │          … │            … │           … │        … │
│         7 │ 2026-06-12 │      $525.13 │       2,256 │    1.03x │
│        30 │ 2026-07-05 │      $571.55 │       2,456 │    1.12x │
│       365 │ 2027-06-05 │    $1,963.00 │       8,435 │    3.84x │
└───────────┴────────────┴──────────────┴─────────────┴──────────┘
Day 0 of 365 • plan today $511.76 • actual $511.76 • on plan (+0.0% vs plan)

Install

tzla is a normal Python CLI. The cross-platform way to install it is pipx (Linux, macOS, and Windows/PowerShell — it puts tzla on your PATH in an isolated venv).

# from a local clone
pipx install ./tools/tzla

# straight from git (once pushed)
pipx install "git+https://github.com/danielradosa/tzla"

# after it's published to PyPI
pipx install tzla

No pipx? pip install --user ./tools/tzla works too. For development: pip install -e ./tools/tzla (editable).

Windows / Homebrew / Scoop

  • PowerShell: install pipx (py -m pip install --user pipx; py -m pipx ensurepath) then pipx install tzla. The tzla command works in any shell afterwards.
  • Homebrew and Scoop are possible once a release artifact exists (PyPI sdist or a GitHub release tarball, needed to pin a checksum). Starter templates live in packaging/ — fill in the URL + sha256 after the first publish.

Usage

tzla                 # portfolio table + price chart(s)
tzla --no-chart      # table only
tzla -d 90           # 90-day chart history
tzla --coin <mint>   # chart only one token
tzla --grow          # growth-plan tracker (ahead/behind vs the fixed plan)
tzla --where         # show where config files live
tzla --version

The growth plan

--grow projects a fixed baseline (start date, start value, daily rate, horizon) and compares today's live total against it:

tzla --grow                                   # first run auto-anchors to today's total
tzla --grow --reset-plan                      # re-anchor to today
tzla --grow --reset-plan --principal 1000 --rate 0.369 --grow-days 365

The plan never re-anchors on its own, so editing your holdings daily can't move the goal line — the ahead/behind number stays honest.

Config

Two JSON files in your per-user config dir (tzla --where to see exact paths):

File Default location What it is
portfolio.json ~/.config/tzla/portfolio.json Your holdings — edit this daily
plan.json ~/.config/tzla/plan.json The fixed growth anchor — set once (auto-created on first --grow)

They're deliberately separate so a daily holdings edit can't clobber the plan. On first run a starter portfolio.json is written from the bundled example.

Override locations with --config / --plan, or point the whole config dir elsewhere with $TZLA_HOME (e.g. TZLA_HOME=./mydata tzla). Standard $XDG_CONFIG_HOME is honored.

portfolio.json — holdings keyed by Solana token mint address:

{
  "currency": "usd",
  "holdings": {
    "4tWMJCW6tdpVUkwDpX1NEQURbtuQDg7H9DfkjEpGnq5D": { "symbol": "TZLA", "amount": 2199 }
  }
}

Add more entries to track several tokens. The TZLA amount column in --grow only appears for single-asset portfolios (where "amount" is unambiguous).

See src/tzla/data/ for the example files.

Notes

  • Prices are USD-only (Jupiter). Keep "currency": "usd".
  • A daily rate like 0.369% compounds to ~+284%/year — that's an idealized assumption, not a forecast. The tracker just tells you how far reality drifts from it.

MIT licensed.

Project details


Download files

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

Source Distribution

tzla-0.1.1.tar.gz (12.7 kB view details)

Uploaded Source

Built Distribution

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

tzla-0.1.1-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

Details for the file tzla-0.1.1.tar.gz.

File metadata

  • Download URL: tzla-0.1.1.tar.gz
  • Upload date:
  • Size: 12.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for tzla-0.1.1.tar.gz
Algorithm Hash digest
SHA256 2f3955af99b67378e674d0c3899f8cfde3570bfb33f1221d1184992a06afb619
MD5 835156e163b38dbce53e1fd4eaca269e
BLAKE2b-256 08a012b196bcb50db667ada43c3d4230386de2e2ea46a1066f26addceda2fc19

See more details on using hashes here.

File details

Details for the file tzla-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: tzla-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 11.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for tzla-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 eb911ed2b6549f872ac4df82878320c227395e512e8d3d16d824373776c0560c
MD5 abe32e8b13841ed1dbf3a9e2781b9973
BLAKE2b-256 da782825a1266f1241cf952bf378db9ec0c91d0d5c2ac56523b52b2792527309

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