Tribulnation CLI
tn is a small launcher for independently installed Tribulnation tools.
It owns command discovery; each tool owns its implementation and release cycle.
Install
Until the first PyPI release:
python -m pip install 'git+https://github.com/tribulnation/cli.git'
tn --help
The launcher alone has no application commands. SDK gateway, engine, and catalogue
integration are separate migrations; this repository does not install those tools.
Install providers in the same Python environment as tn. Separate pipx or uv
tool environments do not discover one another's plugins; use a shared environment
(or inject providers into the launcher's environment).
Register a command
Add the launcher to your package's dependencies once it is released, and register an existing Typer application or Click command/group:
[project]
dependencies = ["tribulnation-cli>=0.1.0,<1"]
[project.entry-points."tribulnation.commands"]
catalogue = "your_package.cli:app"
Until publication, install this repository explicitly alongside your provider;
0.1.0 in this source tree does not imply an available PyPI release.
For a Typer application:
import typer
app = typer.Typer()
@app.command()
def lookup(query: str):
"""Look up a catalogue entry."""
print(query)
# Add a callback to retain the group when it has only one subcommand.
@app.callback()
def main():
"""Catalogue commands."""
After installing that package:
tn catalogue lookup BTC
tn catalogue --help
- Entry points must resolve to a
typer.Typerinstance orclick.Command(includingclick.Group), not a function that invokes a CLI. - Names start with a lowercase letter and contain lowercase letters, digits and hyphens. Duplicate names fail with both providers identified.
- Root help lists names and providers without importing application modules.
Only the selected command loads;
tn catalogue --helpshows its own help. - Private packages work the same way. Discovery reads installed package metadata locally; there is no central command registry or network lookup.
- Existing console scripts can remain aliases. Only this package should install
the
tnexecutable. Optional extras cannot conditionally register an entry point: register it normally and make its missing-dependency error useful. - Commands execute installed Python code with the current user's permissions. There is no plugin isolation or package installation performed by the launcher.
This uses Python package entry points and Click's custom group extension.
Develop
python -m pip install -e '.[test]'
pytest
ruff check .
ruff format --check .
python -m build
See the module map and release instructions.
Merging a release or release/* pull request into main publishes through
PyPI trusted publishing after validation.
Metadata
Release files for tribulnation-cli 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tribulnation_cli-0.1.0.tar.gz | 6.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tribulnation_cli-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 12.6 kB
Release files / tribulnation_cli-0.1.0.tar.gz
| Download URL | tribulnation_cli-0.1.0.tar.gz |
|---|---|
| Size | 6.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e137ab9b7ce5ab1246de5e562124b97d8354c12f9f0a25df8d045db1a1c97cca
|
|
BLAKE2b-256 checksum How to use checksums |
2138f205ada49eaf0311cccf4d92278ed7dbdba5d1e5f78fd0eb3f40badb8550
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / tribulnation_cli-0.1.0-py3-none-any.whl
| Download URL | tribulnation_cli-0.1.0-py3-none-any.whl |
|---|---|
| Size | 5.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
41017c99fc727bcb7c4bd7487577a9e495705e75ce11a6e9876afb0dec5b2c63
|
|
BLAKE2b-256 checksum How to use checksums |
d1cfb1deb96790f6c8778855d9d44e1999521f3869eb739b49be02d8be165297
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency log