Skip to main content

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
  1. Entry points must resolve to a typer.Typer instance or click.Command (including click.Group), not a function that invokes a CLI.
  2. Names start with a lowercase letter and contain lowercase letters, digits and hyphens. Duplicate names fail with both providers identified.
  3. Root help lists names and providers without importing application modules. Only the selected command loads; tn catalogue --help shows its own help.
  4. Private packages work the same way. Discovery reads installed package metadata locally; there is no central command registry or network lookup.
  5. Existing console scripts can remain aliases. Only this package should install the tn executable. Optional extras cannot conditionally register an entry point: register it normally and make its missing-dependency error useful.
  6. 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)

Source distribution for tribulnation-cli 0.1.0
File Size Uploaded
tribulnation_cli-0.1.0.tar.gz 6.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tribulnation-cli 0.1.0
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page