tt — the Tenstorrent CLI
One command for everything Tenstorrent.
tt is the single entry point to the Tenstorrent software stack. It either implements a
function natively or delegates to an existing tool (tt-smi, tt-installer, etc.) behind a stable interface.
[!IMPORTANT] This is beta software. Expect breaking changes often as we add features. We welcome your feedback to help us improve tt-cli. If you have an issue or a comment, please don't hesitate to let us know through the GitHub issues page.
Quick start
Install with uv (recommended):
uv tool install tenstorrent
tt --help
(uv tool update-shell will make sure the tt binary is available on your PATH)
If you don't have uv, install it first:
curl -LsSf https://astral.sh/uv/install.sh | sh
You can also install the CLI with any pip-compatible tool, such as pipx. We highly recommend placing tt-cli in an isolated venv so it can safely update itself. For other installation methods, see DEVELOPERS.md.
Telemetry
Telemetry is opt-in: nothing is collected or sent unless you say so. tt asks once, on first interactive run, and doesn't bother you about it on later runs.
If you opt in, tt records command names, exit codes, coarse OS facts, and argument values only when they match a known list (e.g. catalog model names). We never send free-form arguments, paths, or static IDs. Exactly what is collected, every switch that controls it, and how delivery works: TELEMETRY.md.
If you change your mind about telemetry, use tt config set telemetry.enabled true or false. If you previously enabled telemetry, setting it to false opts you out and deletes anything not yet uploaded.
Example commands
This is not an exhaustive list. For the full list of commands and options in each group, add --help, e.g. tt model --help.
| Device info | Functionality |
|---|---|
tt device status |
Detected devices: board, temperature, power, clock (--json for JSON output) |
tt device info [N…] |
Device metadata: PCI IDs, board id, firmware versions |
tt device reset [N…] |
Reset devices |
tt smi |
Hand this terminal to the interactive tt-smi TUI (tt device top also works) |
| Model serving | Functionality |
|---|---|
tt model list |
Models that run on this machine's detected hardware (--all for every device; --cached, --type, --hw filters; --community for tt-model-manager bundles) |
tt model info NAME |
Model metadata: engines, per-device support/status, requirements, cache state |
tt model pull NAME |
Download a catalog model's weights, a tt-model bundle, or any HuggingFace repo's weights (--bundle / --weights-only override detection; --offline) |
tt serve NAME [-- ARGS…] |
Serve a model via tt-inference-server, or via tt-model-manager for a community bundle id |
tt model stop NAME |
Stop a running model server (--profile to stop only one profile of a bundle) |
| Other | Functionality |
|---|---|
tt update [VERSION] |
Converge system software + tools onto the latest tested "golden" set (--dry-run to preview; --yes to skip the confirmation; --force to allow downgrades to golden; a tt-installer VERSION runs that release instead and implies --force) |
tt config |
Open the config file in your editor; list/get/set/path for scripting, sync/reset to maintain the file |
tt report issue |
Open a prefilled GitHub issue (repo picker, environment details auto-collected; --no-browser to just print the URL) |
tt self update |
Upgrade tt itself where it owns its environment (--check to only look) — see Keeping tt up to date |
Interactive clients with tt launch
tt serve gives you an OpenAI-compatible endpoint; tt launch points a client at it. tt discovers what is running by asking the server itself (GET /v1/models) and configures the client's endpoint for you.
tt launch list # what can I connect, and is it usable now?
tt serve Qwen3-32B --port 8000 # in another terminal
tt launch openwebui --web-port 3080 # pull and run its container, after you confirm
tt launch stop openwebui # stop it, keeping its data
Configuration
Configuration is TOML at ~/.config/tenstorrent/config.toml (XDG-compliant). tt config opens it with
explanatory comments; edits preserve comments. Prefer tt config set <key> <value> over hand-editing: it puts the key in the correct
table.
Contributing
We welcome contributions! Please see CONTRIBUTING.md for details on:
- Reporting bugs via GitHub Issues
- Submitting pull requests
- Code standards and SPDX header requirements
- Our weekly PR review cadence
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for the overall license, except where specified.
For clarification on how the Apache 2.0 license applies to this project, including hardware and patent considerations, see LICENSE_understanding.txt.
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 tenstorrent-1.0.0.tar.gz.
File metadata
- Download URL: tenstorrent-1.0.0.tar.gz
- Upload date:
- Size: 301.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d80a4780383ea91a459740c2274f3ac99edc970509327683b64ecb60a8b5ac06
|
|
| MD5 |
70f879adbd0b3d6ce5e72bc1759d6b49
|
|
| BLAKE2b-256 |
7477d221eb53968dc8fba08facd3db46d9b0f9b75774a194d500395e6138618b
|
Provenance
The following attestation bundles were made for tenstorrent-1.0.0.tar.gz:
Publisher:
release.yml on tenstorrent/tt-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tenstorrent-1.0.0.tar.gz -
Subject digest:
d80a4780383ea91a459740c2274f3ac99edc970509327683b64ecb60a8b5ac06 - Sigstore transparency entry: 2771269686
- Sigstore integration time:
-
Permalink:
tenstorrent/tt-cli@4d8578929ea7af77969bcd96154740d6e0c9f088 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/tenstorrent
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@4d8578929ea7af77969bcd96154740d6e0c9f088 -
Trigger Event:
push
-
Statement type:
File details
Details for the file tenstorrent-1.0.0-py3-none-any.whl.
File metadata
- Download URL: tenstorrent-1.0.0-py3-none-any.whl
- Upload date:
- Size: 214.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7df372121e2193fb4d08eb78f84837ce45daf0b816e565fd93303081b498d462
|
|
| MD5 |
424f1901b8add463e586ff9e134b4ea5
|
|
| BLAKE2b-256 |
1795fd93af5593be8cfa864a791fdf156479d678e5facc12d440c172ad8853c9
|
Provenance
The following attestation bundles were made for tenstorrent-1.0.0-py3-none-any.whl:
Publisher:
release.yml on tenstorrent/tt-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tenstorrent-1.0.0-py3-none-any.whl -
Subject digest:
7df372121e2193fb4d08eb78f84837ce45daf0b816e565fd93303081b498d462 - Sigstore transparency entry: 2771270739
- Sigstore integration time:
-
Permalink:
tenstorrent/tt-cli@4d8578929ea7af77969bcd96154740d6e0c9f088 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/tenstorrent
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@4d8578929ea7af77969bcd96154740d6e0c9f088 -
Trigger Event:
push
-
Statement type: