
What It Does#
Interactive terminal UI for searching through NIST’s Cryptographic Module Validation Program database. Pulls data from the NIST CMVP API.
How It Works#
flowchart TD
subgraph CLI["Command Line"]
A[main.go]
B[--version flag]
end
subgraph Core["Internal Packages"]
C[internal/api]
D[internal/model]
E[internal/tui]
end
subgraph UI["Bubbletea TUI"]
F[Module List]
G[Search Filter]
H[Detail View]
I[Algorithm Display]
end
subgraph API["NIST CMVP API"]
J[modules.json]
K[historical-modules.json]
L[algorithms.json]
end
A --> B
B --> C
C -->|HTTP GET| J & K & L
J & K & L --> D
D --> E
E --> F
F --> G
G --> H
H --> I
The application is built around three internal packages. The api package fetches JSON from the NIST CMVP API—a static API I built that scrapes NIST’s official database weekly. This avoids hammering NIST directly and provides faster, more reliable lookups. The model package parses module data, certificate info, and algorithm mappings into Go structs. The tui package renders the interface using Bubbletea and Lip Gloss.
Cross-platform binaries are generated via GoReleaser.
Install#
# Homebrew (macOS/Linux)
brew install ethanolivertroy/sectools/cmvp
# Go
go install github.com/ethanolivertroy/cmvp-tui@latestOr grab a binary from releases.
Why#
Sometimes you just want to quickly look up if a crypto module is FIPS validated without dealing with NIST’s website. This lets you do that from your terminal.
Built with Go and Bubbletea (same TUI framework I used for Vanta Go Export and CISA KEV TUI).
Cross-platform binaries via GoReleaser.
Changelog#
v0.1.0 (2025-12-12)#
Renamed from NIST-CMVP-CLI to cmvp-tui
- Shorter, cleaner name
- New repo:
ethanolivertroy/cmvp-tui - Same functionality, same Homebrew install command




