A cli CPU identification tool for Arm, Risc-V, PowerPC and x86/x86_64 cpus.
This application is developed using some AI, mostly related to:
- DOS Build
- Assembly code
- Multi-Architecture Support: Detects CPUs on x86/x86_64, ARM/AArch64, Risc V and PowerPC.
- Vendor & Model Detection: Identifies CPUs from Intel, AMD, Cyrix, VIA, Zhaoxin, Rise, Transmeta, Apple Silicon, Qualcomm, and more.
- Feature Flag Reporting (x86): Detects support for FPU, MMX, SSE (up to 4.2), AVX, AVX-512, BMI, and others.
- Cache & Topology Info: Displays cache sizes, associativity, core/thread counts, and socket counts.
- DOS Compatibility: Compiles to a set of binaries that can be run on DOS environments (on real hardware 386-class or better, or with DOSBox/DOSBox-X).
- UEFI Compatibility: Compiles to a standalone UEFI application (32-bit and 64-bit x86)
Primary platforms, with the majority of testing effort.
| DOS | EFI | Windows | macOS | Linux | Haiku | |
|---|---|---|---|---|---|---|
| x86_64 | — | ✅ | ✅ | ✅ | 🟢 | ✅ |
| x86_32 | ✅¹ | ✅ | ✅ | — | 🟢 | ✅ |
| ARM 64 | — | — | ✅⁵ | ✅ | 🟢 | ❌ |
| ARM 32 | — | — | — | — | ✅ | — |
| RISC-V 64 | — | — | — | — | ✅ | — |
| PowerPC | — | — | — | — | ✅ | — |
| PowerPC 64 | — | — | — | — | — |
These are best-effort platforms: they should work, but information may be more limited and/or less correct.
| FreeBSD | NetBSD | OpenBSD | Android | |
|---|---|---|---|---|
| x86_64 | ✅ | ✅ | ✅ | |
| x86_32 | ✅ | ✅ | ✅ | ❌ |
| ARM 64 | ✅ | ✅ | ✅ | ✅ |
| ARM 32 | ||||
| RISC-V 64 | ❌ | ❌ | ❌ | — |
| PowerPC | ❌ | ❌ | ❌ | — |
| PowerPC 64 | ❌ | ❌ | ❌ | — |
Legend:
- 🟢 Supported and CI-tested (
just test-allonubuntu-latest) - ✅ Supported
⚠️ Partial- ❌ Not supported
Notes:
- ¹ DOS: requires 386 or newer CPU
- ² Android: untested, except on Arm64. Runs through termux.
- ³ ARM 32 BSD: less tested than Arm64
- ⁴ PowerPC 64 Linux: untested
- ⁵ Windows ARM 64: limited data
Extract the binaries from the release into the same folder on DOS.
Copy the EFI binaries from the Github release (BOOTX64.EFI for 64-bit, BOOTIA32.EFI for 32-bit) to the EFI/BOOT directory of the EFI System Partition. They can also be run from a USB drive.
- Rust (
cargoneeds to be installed) - For most environments,
cargo install rustidwill addrustidto your path - Rust on Windows can be slightly more complicated, see this guide for steps to install the MSVC compiler and libraries.
- For binaries, just run
rustid, for more commands runrustid --help.
Output varies by architecture. Here is an example for x86_64:
--------------- Rustid 2.0.0 (x86_64-linux) ---------------
System: N7 B650E
Architecture: x86_64-v4
Vendor: AuthenticAMD (AMD)
Model: AMD Ryzen 9 9950X3D2 16-Core Processor
MicroArch: Zen 5
Codename: Granite Ridge
Process Node: 4nm
Topology: 16 cores (32 threads)
Cache: L1d: 16x 48 KB, 12-way
L1i: 16x 32 KB, 8-way
L2: 16x 1 MB, 16-way
L3: 2x 96 MB, 16-way
Frequency: 4.29 GHz
Signature: Family 1Ah, Model 44h, Stepping 0h
(11, 15, 4, 4, 0)
Features: Base: FPU TSC CX8 CX16 CMOV MMX MMX+ 3DNow!-Prefetch HT APIC AMD64
SSE: SSE SSE2 SSE3 SSE4A SSE4.1 SSE4.2 SSSE3
AVX: AVX AVX2 AVX-VNNI VPCLMULQDQ
AVX512: F DQ IFMA CD BW VL BITALG VPOPCNTDQ VP2INTERSECT
Security: NX RDSEED RDRAND AES VAES SHA AMD-V
Math: FMA BMI1 BMI2 F16C
Other: POPCNT
See the examples folder for other examples
See DEVELOPMENT.md
- sandpile.org - One of the best known x86 references
- cpufetch (a similar tool that might work better for you)
- x86-cpuid-db - good reference of various cpuid information leaves
- cpuid visualizer - helpful for mapping cpu signatures from other sources
- CPU-World
- My own hardware collection