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) thenpipx install tzla. Thetzlacommand 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 +sha256after 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
403e8e265361fcc753baa5a3c88cb8f35e6eb5fa3b1d132660fe5fff2fd95623
|
|
| MD5 |
c8b866fc5156092c89030ae82a2b1a82
|
|
| BLAKE2b-256 |
a7ccf20d46b448c3ebb1c26c72e79be9de6f493e3cc3bcf01f45dedad272e5a3
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
920557e2116d4b009999196c4cd311fd09f8f787600d40d068d8fdc053b29b87
|
|
| MD5 |
2a548ab3069fe55047318f8dbc2430cd
|
|
| BLAKE2b-256 |
eac848d81fbc623caeb121a3dcdca35d2166839719095a39054a44768213a113
|