A statically compiled Go implementation of tt-env — an environment manager for the Tenstorrent software stack.
This repository is the Go successor to the Bash prototype tt-env-proto1. It
targets frictionless cross-compilation to linux/amd64 and linux/arm64,
distributed as self-contained static binaries.
🚧 Work in progress. Development is tracked through the GitHub Issues and Milestones of this repository.
The CLI skeleton (Milestone 1) is in place: a Cobra root command, structured
logging, and the install, remove, use, list, status, update, and
diff subcommands.
tt-env-go/
├── cmd/
│ └── tt-env/ # CLI entrypoint
└── pkg/
├── cli/ # Cobra command parser
├── logger/ # Structured logging (slog)
├── buildinfo/ # Build version metadata (set via -ldflags)
├── manifest/ # Release JSON schema & OS parsing
├── package_manager/ # Apt / Dnf adapters
├── version/ # Stack release install / use / list / remove
├── shims/ # Wrapper & shim generator
├── kmd/ # Kernel module preflights & safe swaps
└── status/ # Hardware (lspci) & environment probing
Requires Go 1.23 or newer.
go build ./... # build all packages
go build -o tt-env ./cmd/tt-envTagged releases (v*) are published automatically by the
release workflow: it cross-compiles
version-stamped static binaries for linux/amd64 and linux/arm64, generates
checksums.txt, and attaches them to a
GitHub Release. Release notes are
derived from CHANGELOG.md.
Each binary embeds its build metadata, viewable with:
tt-env version # tt-env <version> (commit <sha>, built <date>)
tt-env --versionRun the standard Go toolchain before opening a pull request:
gofmt -l . # must report no files
go vet ./...
go build ./...
go test ./...Contributions are coordinated through GitHub Issues and pull requests. Commit
messages and PR titles must follow
Conventional Commits (e.g.
feat(cli): add status command). See AGENTS.md for the full
workflow, including branch naming, PR, and review conventions.
Apache License 2.0 — see LICENSE.