TT-Lensium :tm:
A low-level hardware debugger
A low-level debugging tool for Tenstorrent hardware that enables direct access to and communication with Wormhole and Blackhole devices.
Quickstart
You can install latest published version with:
pip install tt-exalens
Or specific version with:
pip install tt-exalens=="x.y.z"
Alternatively, you can install the latest code from GitHub with:
pip install git+https://github.com/tenstorrent/tt-exalens.git
The CLI application can be run by invoking the tt-exalens command after installing the wheel.
Running the CLI application
The CLI application can be run via the tt-exalens.py script or by invoking the tt-exalens command after installing the wheel.
The application supports both local and remote device access. For remote connections, a server instance must be started using the same application.
A GDB server can be launched, enabling stepping, breakpoints, and other debugging features via a GDB client.
For more usage information, refer to the tutorial or the documentation.
Using library
The application functionality is also available through the ttexalens Python library, enabling you to create custom scripts that interact with Tenstorrent hardware.
For a quick start with the library, check out the tutorial. Full documentation is also available here.
Development
Setting up environment
The recommended way to manage dependencies is by creating a virtual environment with:
./scripts/create-venv.sh
To activate the created environment, use:
.venv/bin/activate
Alternatively, you can use your existing environment and just install dependencies with:
./scripts/install-deps.sh
Testing
Test requirements
The following dependencies are required to build the necessary kernels:
- ninja-build,
- cmake
- make
Running tests
The easiest way to run all tests locally is by using the make wrapper from the project root directory:
make test
This command will build dependencies, run all tests, create the wheel, and run wheel tests.
If you don't need all of these steps, you can run them manually:
# Compile kernels that tests use
make
# Install runtime dependencies
pip install -r ttexalens/requirements.txt
# Install test dependencies
pip install -r test/test_requirements.txt
# Run library tests
pytest test/ttexalens
# Run CLI application tests
pytest test/app
If you're developing with VSCode (or its derivatives), you can use the Testing extension. Install the Python extension to enumerate all tests within the Testing tab in the activity bar.
Updating documentation
Library documentation is automatically generated from source code docstrings. To update the library documentation, run the following command in your development environment:
make docs
in the project root.
For more advanced use cases, refer to the source code of the documentation generation scripts, located in docs/bin.
Static checks
Pre-commit
We have defined various pre-commit hooks that check the code for formatting, licensing issues, etc.
To install pre-commit, run the following command:
pip install pre-commit
After installing pre-commit, you can install the hooks by running:
pre-commit install
Now, each time you run git commit the pre-commit hooks (checks) will be executed.
If you have already committed before installing the pre-commit hooks, you can run on all files to "catch up":
pre-commit run --all-files
For more information visit pre-commit
mypy
We use mypy for static code analysis.
You can use the make wrapper to execute it with:
make mypy
Or run it directly from your development environment with:
mypy
Metadata
Release files for tt-exalens 0.4.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| tt_exalens-0.4.1-cp313-cp313-manylinux_2_34_x86_64.whl | CPython 3.13 | CPython 3.13 | Linux glibc 2.34+ x86-64 | Details |
| tt_exalens-0.4.1-cp313-cp313-manylinux_2_34_aarch64.whl | CPython 3.13 | CPython 3.13 | Linux glibc 2.34+ ARM64 | Details |
| tt_exalens-0.4.1-cp312-cp312-manylinux_2_34_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.34+ x86-64 | Details |
| tt_exalens-0.4.1-cp312-cp312-manylinux_2_34_aarch64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.34+ ARM64 | Details |
| tt_exalens-0.4.1-cp311-cp311-manylinux_2_34_x86_64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.34+ x86-64 | Details |
| tt_exalens-0.4.1-cp311-cp311-manylinux_2_34_aarch64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.34+ ARM64 | Details |
| tt_exalens-0.4.1-cp310-cp310-manylinux_2_34_x86_64.whl | CPython 3.10 | CPython 3.10 | Linux glibc 2.34+ x86-64 | Details |
| tt_exalens-0.4.1-cp310-cp310-manylinux_2_34_aarch64.whl | CPython 3.10 | CPython 3.10 | Linux glibc 2.34+ ARM64 | Details |
Total release size: 7.7 MB
Release files / tt_exalens-0.4.1-cp313-cp313-manylinux_2_34_x86_64.whl
| Download URL | tt_exalens-0.4.1-cp313-cp313-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 978.7 kB |
| Tags | CPython 3.13 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
bc71dd7ba777bb3b5d58a1b7815c3fe3549eae1ec499ba8a4777fcb0a2343d45
|
|
BLAKE2b-256 checksum How to use checksums |
06bd94703b6d36a31d8f6df88200477839f8b068157153d0a2cb74d761697305
|
| 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 Sep 28, 2026.
Transparency logRelease files / tt_exalens-0.4.1-cp313-cp313-manylinux_2_34_aarch64.whl
| Download URL | tt_exalens-0.4.1-cp313-cp313-manylinux_2_34_aarch64.whl |
|---|---|
| Size | 942.9 kB |
| Tags | CPython 3.13 Linux glibc 2.34+ ARM64 |
|
SHA-256 checksum How to use checksums |
442e2d46c31a3967ab14de28eb623efe75d93c0bbd18cee3537c15fdb0a70faf
|
|
BLAKE2b-256 checksum How to use checksums |
dbeed10794ef919c26037a0aba3a9624a9dcf73e7a0ebd197bd1eaa93c511ae9
|
| 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 Sep 28, 2026.
Transparency logRelease files / tt_exalens-0.4.1-cp312-cp312-manylinux_2_34_x86_64.whl
| Download URL | tt_exalens-0.4.1-cp312-cp312-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 978.8 kB |
| Tags | CPython 3.12 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
9f8caabd9b9cbf2de3c9dc19184a8962365d2109a89a2bd237e044aef6ff1b8c
|
|
BLAKE2b-256 checksum How to use checksums |
263da5e761acca5d82405ebda57c2de80b71eb75ac197c487fbc5f241b55c069
|
| 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 Sep 28, 2026.
Transparency logRelease files / tt_exalens-0.4.1-cp312-cp312-manylinux_2_34_aarch64.whl
| Download URL | tt_exalens-0.4.1-cp312-cp312-manylinux_2_34_aarch64.whl |
|---|---|
| Size | 942.9 kB |
| Tags | CPython 3.12 Linux glibc 2.34+ ARM64 |
|
SHA-256 checksum How to use checksums |
6313bcee28e427b13126072ef6e3d83345a4f5dcc19429fd94abe80674c307d3
|
|
BLAKE2b-256 checksum How to use checksums |
cba88eddce40c2b857c1d711abf13d15c37b6d80a200a2cee61e21da9d34d0e2
|
| 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 Sep 28, 2026.
Transparency logRelease files / tt_exalens-0.4.1-cp311-cp311-manylinux_2_34_x86_64.whl
| Download URL | tt_exalens-0.4.1-cp311-cp311-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 979.2 kB |
| Tags | CPython 3.11 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
6b7624814cd0c364ef10b18de5f3243dbcd789ad2a3d58979f24ca0508a1d886
|
|
BLAKE2b-256 checksum How to use checksums |
a7a0127009d91d9ef064b8b3c15e57b1245c0082231b599254b8b024067ad443
|
| 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 Sep 28, 2026.
Transparency logRelease files / tt_exalens-0.4.1-cp311-cp311-manylinux_2_34_aarch64.whl
| Download URL | tt_exalens-0.4.1-cp311-cp311-manylinux_2_34_aarch64.whl |
|---|---|
| Size | 943.7 kB |
| Tags | CPython 3.11 Linux glibc 2.34+ ARM64 |
|
SHA-256 checksum How to use checksums |
024fce8b18ecd1a644903c083f2c11ee739dee4bf234d22b8a03d82aca87f58a
|
|
BLAKE2b-256 checksum How to use checksums |
5512563c29bf25b222e9ce949bd517d64101499c7a22c25c5943f308ca3b7535
|
| 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 Sep 28, 2026.
Transparency logRelease files / tt_exalens-0.4.1-cp310-cp310-manylinux_2_34_x86_64.whl
| Download URL | tt_exalens-0.4.1-cp310-cp310-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 979.0 kB |
| Tags | CPython 3.10 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
efb3cb8f5764823c0c88ffd80d8194c29f89736acd87521fab221beedb18b01b
|
|
BLAKE2b-256 checksum How to use checksums |
b464717e900a7dc546b94c33b75abaec280918c4a5abd796fce8b2950241f93e
|
| 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 Sep 28, 2026.
Transparency logRelease files / tt_exalens-0.4.1-cp310-cp310-manylinux_2_34_aarch64.whl
| Download URL | tt_exalens-0.4.1-cp310-cp310-manylinux_2_34_aarch64.whl |
|---|---|
| Size | 943.5 kB |
| Tags | CPython 3.10 Linux glibc 2.34+ ARM64 |
|
SHA-256 checksum How to use checksums |
140ab15d8a1104059ffd2559d41a4789722d68f501dec70f412e975cf18cd84b
|
|
BLAKE2b-256 checksum How to use checksums |
a2e7fe1cd9a01f942ce4403d69ee0a476e2db9e47f3af4fa36ef9c63198e869c
|
| 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 Sep 28, 2026.
Transparency log