Features Demo Install Why Plain Text? Tolerance Reports Collaboration Integrations Tutorial GitHub
Open Source • MIT License

Tessera
Design Toolkit

A powerful CLI toolkit for managing product development artifacts as plain-text YAML files. Version control your requirements, risks, tests, BOMs, and more with full traceability.

Quick Start
TDT Quick Start Demo
# Initialize a new TDT project
$ tdt init
✓ Initialized TDT project

# Create your first requirement
$ tdt req new -t input --title "Temp"
✓ Created requirement REQ@1

# List all requirements
$ tdt req list

Built for Engineering Teams

Everything you need to manage complex product development in plain text.

Tolerance Stackup Analysis

Run worst-case, RSS, and Monte Carlo simulations on your tolerance chains. Calculate Cp/Cpk, Pp/Ppk, sensitivity analysis, and predict yield with GD&T integration.

FMEA Risk Analysis

Quantify design and process risks with severity, occurrence, and detection ratings. Auto-calculate RPN scores.

BOM & Cost Management

Build hierarchical assemblies, track component costs, manage suppliers, and generate accurate cost rollups.

Design Verification Traceability

Link requirements to test protocols, track verification status, and generate coverage matrices for design reviews.

Manufacturing Quality Loop

Define manufacturing routing on products, execute lots with operator signatures, and track DHR compliance. Full NCR and CAPA integration.

Plain-Text Files You Own

All data stored as human-readable YAML. No databases, no proprietary formats, no vendor lock-in. Learn more

Design History & Baselines

Track every change with git-powered history. Create release baselines, compare revisions, and review design evolution.

Team Collaboration & Approvals

Multi-signature approvals, role-based permissions, and git-integrated PR workflows. Full audit trail with GPG signing. Learn more

Design Structure Matrix

Visualize component interactions with clustering, weighted analysis, coupling metrics, and cycle detection. Export to CSV, JSON, or Graphviz.

Domain Mapping Matrix

Analyze cross-entity relationships: components vs requirements, processes vs components. Track allocation coverage and identify gaps.

See It in Action

Watch TDT's powerful command-line workflows in action.

Quick Start
Quick Start Demo

Initialize a project, create requirements, and validate your data in seconds.

Interactive Wizard
Interactive Mode Demo

Schema-driven prompts guide you through creating entities with all required fields.

Requirements Traceability
Traceability Demo

Link requirements to tests and components, trace dependencies, and find orphaned items.

Tolerance Analysis
Tolerance Analysis Demo

Perform worst-case, RSS, and Monte Carlo tolerance stackup analysis.

FMEA Risk Analysis
FMEA Demo

Create and analyze failure modes with severity, occurrence, and detection ratings.

Complete Coverage

Every artifact type you need for professional product development.

Engineering Analysis at a Glance

Complex analyses rendered as clear, actionable terminal output.

Tolerance Stackup Analysis

tdt tol analyze TOL@1
⚙ Analyzing stackup TOL@1 with 2 contributors...
 Analysis complete

   Target: Clearance = 0.05 (LSL: 0.02, USL: 0.08)

   Worst-Case Analysis:
     Range: 0.03 to 0.076
     Margin: 0.004
     Result: marginal

   RSS (Statistical) Analysis:
     Mean: 0.053
     ±3σ: 0.0163
     Cp: 1.67, Cpk: 1.65
     Yield: 99.99%

   Monte Carlo (10000 iterations):
     Mean: 0.053
     Std Dev: 0.0055
     95% CI: 0.042 to 0.064
     Pp: 1.64, Ppk: 1.62
     Yield: 100.00%

Distribution Histogram

tdt tol analyze TOL@1 --histogram
   Distribution Histogram (10000 samples, 15 bins):

   0.025 │░░░                                           │    89 ◄LSL
   0.030 │██████                                        │   156
   0.035 │████████████                                  │   312
   0.040 │██████████████████████                        │   589
   0.045 │██████████████████████████████████            │   891
   0.050 │██████████████████████████████████████████████│  1247
   0.055 │████████████████████████████████████████████  │  1156
   0.060 │██████████████████████████████████            │   923
   0.065 │██████████████████████                        │   612
   0.070 │███████████                                   │   298
   0.075 │████                                          │   112 ◄USL
         └──────────────────────────────────────────────┘
   Legend: LSL=0.020  USL=0.080  ( in-spec,  out-of-spec)

Process Flow Diagram

tdt proc flow --controls
Process Flow
────────────────────────────────────────────────

[OP-010] Material Prep (PROC@1)
   Type: machining | Cycle: 5 min | Setup: 15 min
   Equipment: CNC Mill
   Controls: CTRL@1 "Tool Calibration"
  
[OP-020] Rough Machining (PROC@2)
   Type: machining | Cycle: 30 min
   Equipment: 5-Axis CNC
   Controls: CTRL@2 "Dimensional Check"
  
[OP-030] Finish Machining (PROC@3)
   Type: machining | Cycle: 20 min
   Equipment: 5-Axis CNC
  
[OP-040] Final Inspection (PROC@4)
   Type: inspection | Cycle: 10 min
   Equipment: CMM

4 processes in flow

BOM Cost Rollup

tdt asm bom ASM@1 --cost
Assembly BOM: Linear Actuator (ASM@1)

ID        COMPONENT              QTY    UNIT $    TOTAL
────────────────────────────────────────────────────────
CMP@1     Housing                  1    $45.00    $45.00
CMP@2     Lead Screw               1    $32.50    $32.50
CMP@3     Nut Assembly             1    $18.75    $18.75
CMP@4     Bearing (deep groove)    2     $8.25    $16.50
CMP@5     End Cap                  2     $6.00    $12.00
CMP@6     Fasteners (M4x12)        8     $0.15     $1.20
────────────────────────────────────────────────────────
          TOTAL (15 items)           $125.95

Requirements Verification Matrix

tdt trace matrix --rvm
Requirements Verification Matrix
════════════════════════════════════════════════════════════════════════════
REQ          TITLE                            STATUS       VERIFIED BY
────────────────────────────────────────────────────────────────────────────
REQ@1        Operating Temperature Range      verified     TEST@1, TEST@4
REQ@2        Stroke Length ≥100mm             verified     TEST@2
REQ@3        Positioning Accuracy ±0.01mm     verified     TEST@3
REQ@4        Load Capacity 50N                unverified   -
REQ@5        MTBF ≥10000 hours                verified     TEST@5
REQ@6        IP54 Ingress Protection          unverified   -
────────────────────────────────────────────────────────────────────────────
Coverage: 67% (4/6)

Design Structure Matrix

tdt dsm --cluster
Design Structure Matrix (Clustered)

             CMP@1   CMP@2   CMP@3   CMP@4   CMP@5   CMP@6
             ------- ------- ------- ------- ------- -------
CMP@1               M       M       ·       ·       ·
CMP@2        M              M,T     T       ·       ·
CMP@3        M       M,T            M       ·       ·
CMP@4        ·       T       M              P       P
CMP@5        ·       ·       ·       P              R
CMP@6        ·       ·       ·       P       R       

Legend: M = Mate  T = Tolerance  P = Process  R = Requirement

Summary: 6 components, 5 mate, 3 tolerance, 3 process, 1 requirement

Built for the Command Line

TDT follows Unix philosophy. Compose commands, pipe outputs, and integrate with your existing tools.

Pipeable Output Formats

Every list command supports multiple output formats for scripting and automation.

# Get IDs for piping to other commands
$ tdt req list --output id
REQ-01KCA9X3JQFT8BHK2VCN5M9A
REQ-01KCA9X3JQFT8BHK2VCN5M9B
...

# Export to JSON for other tools
$ tdt risk list --output json | jq '.[] | select(.rpn > 100)'

# Export to CSV for spreadsheets
$ tdt cmp list --output csv > parts.csv

Short ID Aliases

Use memorable short IDs instead of 26-character ULIDs. Local to your machine, so they won't conflict across team members.

# Short IDs work everywhere
$ tdt req show REQ@1
$ tdt link add REQ@1 TEST@3
$ tdt risk edit RISK@2

# Chain commands with short-id output
$ tdt req list --orphans -f short-id | xargs -I{} tdt req show {}

Shell Completions

Tab completion for bash, zsh, fish, and PowerShell. Completes commands, flags, and entity IDs.

# Generate completions for your shell
$ tdt completions bash > ~/.local/share/bash-completion/completions/tdt
$ tdt completions zsh > ~/.zfunc/_tdt
$ tdt completions fish > ~/.config/fish/completions/tdt.fish

Powerful Filters

Filter entities by any field, find orphans, search text, and combine with sorting.

# Find critical requirements not yet verified
$ tdt req list --priority critical --orphans

# Components in a specific assembly
$ tdt cmp list --assembly ASM@1

# High RPN risks by category
$ tdt risk list --by-rpn --category thermal

# Quick counts
$ tdt test list --count

Bulk Operations

Process multiple entities at once with CSV import, bulk status changes, and pipeline operations.

# Import from CSV
$ tdt import req requirements.csv

# Bulk status update via pipeline
$ tdt req list --status draft -f id | xargs -I{} tdt req edit {} --status approved

# Generate all RPN values
$ tdt validate --fix

Up and Running in Minutes

Install TDT with a single command and initialize your first project. Works on macOS, Linux, and Windows.

1

Install TDT

Download a pre-built binary or use Cargo

2

Initialize a Project

Creates directory structure and config

3

Start Creating

Add requirements, risks, tests, and more

Terminal
# Install from crates.io
$ cargo install tessera-design-toolkit

# Initialize your project
$ tdt init
 Initialized TDT project

# Create requirement
$ tdt req new -t input --title "Temp"
 Created REQ@1

# Validate
$ tdt validate
 All files passed validation

Built for Speed

Native Rust performance with SQLite caching means TDT handles large projects effortlessly.

50,000

Entities Tested

Benchmarked with 50K mixed entities: requirements, components, risks, tests, suppliers.

3.8s

Full Validation

Validate all 50,000 entities with schema checking and link verification.

13K/s

Validation Rate

Schema validation at ~13,000 entities per second with SQLite caching.

<10ms

Entity Lookup

SQLite-cached single entity lookup via short ID - near-instant results.

Benchmark (50,000 entities)
# Import 25,000 requirements from CSV
$ tdt import req requirements.csv
37.15s (673/s)

# Validate all 50,000 entities
$ tdt validate
3.834s (13,040 entities/s)

# List 25,000 requirements
$ tdt req list --count
25000 requirements

# Project status
$ tdt status
0.048s

Native Rust

Zero-cost abstractions, no garbage collection, no runtime overhead. Direct syscalls for maximum efficiency.

SQLite Cache

O(1) entity lookups via SQLite cache. Single-entity queries stay fast at any project scale.

Type Safety

Compile-time guarantees prevent runtime errors. Strong typing throughout the codebase.