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-01-01 $1,000.00 1,000 1.00x
1 2026-01-02 $1,003.69 1,004 1.00x
7 2026-01-08 $1,026.14 1,026 1.03x
30 2026-01-31 $1,116.83 1,117 1.12x
365 2027-01-01 $3,835.77 3,836 3.84x

Day 0 of 365 · plan today $1,000.00 · actual $1,000.00 · 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": 0 }
  }
}

The bundled starter ships with amount: 0 — set it to your real holding. Existing configs are never overwritten, so your numbers stay put across upgrades. 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.3.tar.gz (12.8 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.3-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: tzla-0.1.3.tar.gz
  • Upload date:
  • Size: 12.8 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.3.tar.gz
Algorithm Hash digest
SHA256 c3eb7c4a96912dc293272fef4476a43c86ecd76d5a0f84f945a66997361753db
MD5 c6853a924f1a35be48b49fac5ed726f7
BLAKE2b-256 13a3fb07c3bdc62e2280e0050bc523e21939090b98a1051bfe013e0cab7c6d01

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tzla-0.1.3-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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 2bd7c8b844c1e0992ffb70079bbca1e0a920f44c6383004fd6ca6f367ff3dfde
MD5 c6e8af57fbfdc0aafe0b95f27b243159
BLAKE2b-256 a16e85e12dad7c3223e6e9cc629b8d01edf5f2dfc7c8e134bf904c88e91e4153

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