0020. Name the product TensoraFi, and license it under MIT
Update (ADR-0021): the product is renamed Einsora, because a US mark TENSORA is registered in the same class. The MIT licence still applies. Read the identifiers below through ADR-0021’s table.
- Status: Accepted
- Date: 2026-11-01
- Deciders: Krishnanand
- Amends: ADR-0011 (which left the licence open)
Context
Section titled “Context”“Tensora” was a working name. Other projects already use it (a Python tensor library and a crypto token among them), so the roadmap asked for a final name, a rename in one change before the first release, and an open-source licence.
Decision
Section titled “Decision”The product is TensoraFi. Every identifier changed in one change:
| What | Before | Now |
|---|---|---|
| Product | Tensora | TensoraFi |
| Binary and CLI | tensora |
tensorafi |
| Go module | github.com/tensora/tensora |
github.com/krishnanand20/tensorafi |
| Environment variables | TENSORA_* |
TENSORAFI_* |
| HTTP headers | X-Tensora-* |
X-TensoraFi-* |
| Kubernetes labels and annotations | tensora.io/* |
tensorafi.dev/* |
| Cookies | tensora_session, tensora_access |
tensorafi_session, tensorafi_access |
| Python package and CLI | tensora-ml, tensora_ml |
tensorafi-ml, tensorafi_ml |
| Helm chart, namespaces, Docker networks, container paths | tensora… |
tensorafi… |
| Export format | tensora.workload-export/v1 |
tensorafi.workload-export/v1 |
| Native workloads’ run directories | ~/.tensora/run |
~/.tensorafi/run |
| Development database (compose) | user and database tensora |
tensorafi |
Two things keep their old names. The Postgres function tensora_forbid_mutation was created by an
applied migration, which is never edited, and nothing outside the database sees it. Token prefixes
(tsk_, tat_) never had the name in them. ADRs 0001 to 0019 keep the working name and the old
identifiers, as history: read them through this table.
The licence is MIT (LICENSE): anyone may use, change, and redistribute TensoraFi, including
commercially. Every dependency’s licence (Apache-2.0, BSD, MIT, and others like them) allows that,
and their notices ship with the binaries (packaging, roadmap step 11).
Consequences
Section titled “Consequences”- Nothing is released yet, so there are no compatibility shims:
- An existing
.envneedsTENSORA_renamed toTENSORAFI_. - Browser sessions end, so users sign in again.
- Native workloads started before the rename have their sockets in
~/.tensora/run: stop them before upgrading. - The development database’s volume must be recreated (
docker compose down -v), since its user and database are namedtensorafinow.
- An existing
- The repository is
github.com/krishnanand20/TensoraFi. GitHub matches names case-insensitively, so the lowercase module path (Go’s convention) resolves to it, and the old URL redirects. - Labels use
tensorafi.dev, which the project must register (unregistered on 2026-11-01). - Trademark: not yet cleared. A US mark TENSORA is registered (August 2025, Tensora, Inc., registrations 7903143 and 7903144), one of them in Class 42, which covers software and cloud services; its goods are geophysical data services. TensoraFi contains that mark, so a trademark attorney should judge the risk of confusion before the first release. If the name has to change again, it’s still cheap: nothing is released.
- MIT has no explicit patent grant. Apache-2.0 has one, and some companies prefer it for infrastructure. MIT is shorter, widely understood, and asks the least of anyone who reuses the code. A contributor’s grant would come only from the licence’s implied terms.
Alternatives considered
Section titled “Alternatives considered”- Keep “Tensora”: others already use the name, so it couldn’t be cleared.
- Apache-2.0: an explicit patent grant and a NOTICE convention, at the cost of a longer licence. It was the earlier recommendation; MIT was chosen for simplicity.
- Rename after the first release: every release under the old name would need compatibility for old environment variables, headers, labels, and cookies.