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.

Running tzla --grow tracks today's live portfolio total against a fixed growth plan:

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)

In the terminal it renders as a colored, full-width table — near-term days first (today, tomorrow, +7, +30), then a monthly cadence out to the target.

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.2.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.2-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: tzla-0.1.2.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.2.tar.gz
Algorithm Hash digest
SHA256 403e8e265361fcc753baa5a3c88cb8f35e6eb5fa3b1d132660fe5fff2fd95623
MD5 c8b866fc5156092c89030ae82a2b1a82
BLAKE2b-256 a7ccf20d46b448c3ebb1c26c72e79be9de6f493e3cc3bcf01f45dedad272e5a3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tzla-0.1.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 920557e2116d4b009999196c4cd311fd09f8f787600d40d068d8fdc053b29b87
MD5 2a548ab3069fe55047318f8dbc2430cd
BLAKE2b-256 eac848d81fbc623caeb121a3dcdca35d2166839719095a39054a44768213a113

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