Skip to main content

SystemCard

SystemCard is a terminal system information card powered by Sysal. It presents machine and current-process-visible resources in a concise Rich terminal interface.

Installation status

The first PyPI release is being prepared. For now, compatible Linux machines can install a matching wheel downloaded from the repository's Wheels or Release workflow artifacts using python -m pip install /path/to/wheel.whl. See the release guide for publishing and installation steps.

Local development

Install the project and development toolchain with uv:

uv sync --locked --dev
uv run --locked systemcard

Development uses Python 3.12 and the locked uv environment. The local build requires CMake 3.24+, a C++20 compiler, Python 3.12 for development tools, and network access for the first build. CMake downloads the pinned Sysal v0.0.21 release package, verifies its SHA-256 digest, and statically links libsysal.a into the native extension.

Run the complete project checks with:

uv run --locked python scripts/check.py
uv run --locked systemcard --section system --no-color

The check entry point follows the base-py conventions: Ruff format validation and linting, mypy strict mode, and pytest with branch coverage reports. There is no hard coverage threshold; checks do not modify tracked files or the index.

Enable the staged snapshot hook explicitly:

git config core.hooksPath .githooks

The hook checks whitespace and Python formatting without changing or staging files. Apply fixes explicitly with uv run --locked ruff check --fix . and uv run --locked ruff format .. Dependency changes update uv.lock explicitly; normal development and CI use locked environments. Use systemcard or uv run --locked python -m systemcard as the entry point.

Compatibility

Release wheels target Linux x86_64 systems with glibc 2.17 or newer (CentOS 7 / RHEL 7 and newer compatible distributions). The minimum runtime version is Python 3.6.8, matching the CentOS 7 system python3. The wheel workflow builds CPython 3.6 through 3.14 artifacts in the manylinux2014 image, repairs them with auditwheel, and runs a real collection smoke test against each installed wheel. A separate CentOS 7 job installs the Python 3.6 wheel and exercises collection and rendering with its actual Python 3.6.8.

CentOS 7 ships an older pip that does not recognize manylinux2014 wheels. Upgrade pip without changing the system interpreter before installation:

python3 -m pip install --upgrade 'pip==21.3.1'
python3 -m pip install /path/to/systemcard-0.1.0-cp36-cp36m-manylinux*.whl

Python 3.6/3.7 uses Rich 12 and a legacy build adapter; newer interpreters retain the modern build backend. The project metadata is shared by both build paths.

Selective collection and bootstrap

systemcard --section cpu,memory --no-color
systemcard --section accelerators
systemcard --compact
SYSTEMCARD_SPEC=/path/to/systemcard.whl bash run.sh --compact

The display adapts to terminal width: one column below 110 characters, two columns from 110, and three from 166. On wider terminals, summary cards share aligned rows and detailed device tables follow at full width. --compact shows only the summary cards unless explicit sections are requested. Tables switch to individual records when their columns would be cramped, and narrow summaries put labels above values. Each invocation uses the current terminal width. After the command exits, resizing the terminal may reflow its scrollback; run the command again to lay it out at the new width.

Sections are validated before collection and collect only their domains plus required identity, visibility and NUMA dependencies. CPU and memory cards show cgroup limits separately from machine resources; GPU cards distinguish physical GPUs and MIG instances. CPU summaries include family/model/stepping, microcode, online CPU counts, SMT state and the frequency driver. --section cpu also shows per-thread kernel capabilities, hardware frequency bounds and policy limits grouped by identical configuration, with a range for the kernel’s current reports. --section topology retains the complete cache sharing, logical CPU and individual frequency policy tables. See launch options and the binding contract.

Hardware inventory

Default output shows every section as a summary, including software, sensors, hardware findings and topology. Select a section to see the identities and configuration:

uv run --locked systemcard --section system
uv run --locked systemcard --section memory
uv run --locked systemcard --section storage
uv run --locked systemcard --section network

Details come from local kernel, driver and firmware reports. Unreadable fields remain unknown; there are no performance benchmarks or model specification guesses. CPU process node, IPC and undocumented IMC details are not inferred from model names.

Hardware topology and sources

uv run --locked systemcard --section topology
uv run --locked systemcard --section network --sources
uv run --locked systemcard --section memory,storage

The topology view follows explicit NUMA, PCI, partition and interface relationships. Ordinary storage details show disk identity, main configuration and associated block mounts. Topology includes layered block dependencies and every namespace mount. Network details show driver/firmware versions and supported link modes; topology contains bridge/bond/VLAN relationships, RDMA attachments and EDAC controllers, ordered channel/slot locations and firmware ECC reports. EDAC DIMMs and ranks remain separate; rank capacity is per rank. Controller layer maxima are indices, not population counts. Firmware-to-EDAC associations show their unique label and capacity matching basis, since EDAC labels can be changed by an administrator. Missing controller associations or inventory completeness remain unknown. Summaries show relevant missing/partial source counts; --sources expands their origins and observed failure reasons. Optional missing interfaces do not by themselves indicate failed hardware; a successful query does not mean that the source supplied every field.

Topology details show PCI storage controller functions, NVMe kernel controllers and SCSI hosts separately. Namespace IDs belong to their NVMe subsystem; controller links come from sysfs ancestry or actual multipath links. SCSI devices retain H:C:T:L addresses. ATA port numbers are kernel identifiers, not enclosure slots; hardware RAID volumes do not expose the physical drive inventory.

Sensors and hardware findings

uv run --locked systemcard --section sensors
uv run --locked systemcard --section health
uv run --locked systemcard --section sensors --sources

Sensor details preserve kernel names, channels, units, limits and reported flags. Hardware findings distinguish sensor alarms, md RAID degradation and historical EDAC counts. Missing evidence remains unknown. Default output includes a findings summary; selecting health expands the evidence. Their absence does not establish that the entire machine is healthy.

Storage health uses optional smartctl / nvme-cli read-only reports. uv run --locked systemcard --section health --sources --no-color shows per-device availability and protocol-specific reports; --section health separates current warnings, endurance estimates and historical errors. Permission failures stay unknown; SystemCard never elevates privileges or changes device settings.

Hardware overview and details

The default view contains summary cards for all sections and collects software, sensors and read-only drive health reports. --compact keeps the four core cards and their collection dependencies; --section selects only the requested views. Ordinary details show identity and configuration; topology and health hold complete relationships and diagnostic evidence. Whole-disk totals exclude partitions and virtual block layers; physical-interface counts use explicit kernel identity. Unknown classifications remain visible. Partial capacity totals are labelled as known portions; missing capacities stay unknown. Failed collection is distinguished from a successful empty inventory. DIMM counts describe observed entries, separately from firmware-reported slot counts.

uv run --locked systemcard
uv run --locked systemcard --section cpu,memory
uv run --locked systemcard --section storage,network
uv run --locked systemcard --section health

Detailed field tables group properties by device and omit columns with no reports. Current findings precede endurance estimates and historical error counters. Drive-query permission or tool failures are summarized in the health view; use --sources for the underlying observations.

Metadata

Release files for systemcard 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for systemcard 0.1.1
File Size Uploaded
systemcard-0.1.1.tar.gz 115.7 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for systemcard 0.1.1
File
systemcard-0.1.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details
systemcard-0.1.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
systemcard-0.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
systemcard-0.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
systemcard-0.1.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
systemcard-0.1.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
systemcard-0.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-64 Details
systemcard-0.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-64 Details
systemcard-0.1.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.17+ x86-64 Details

Total release size: 14.4 MB

Release files / systemcard-0.1.1.tar.gz

Download URL systemcard-0.1.1.tar.gz
Size 115.7 kB
Tags Source
SHA-256 checksum
How to use checksums
cc93f185283fbae9a44944a6f45ff9368de5e736adb9dc486b2dc03dbcaa9927
BLAKE2b-256 checksum
How to use checksums
550589befddae307b3be3cc79da0b8ac78b84910cb2871476b3b1482ced454a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / systemcard-0.1.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL systemcard-0.1.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 1.6 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
03692cb32c07c6331b91cd994afad808cd3f488ca058a675c5d0e5d811c29cbf
BLAKE2b-256 checksum
How to use checksums
116e68759d820d4b9fedec4d47059835f01ca389f45c6f0035d24eb9378b794e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / systemcard-0.1.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL systemcard-0.1.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 1.6 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
b25e9261306a20003af248de4a729da173f93dee6d07e3fd080fb6f50041f76f
BLAKE2b-256 checksum
How to use checksums
b7031dbe88ba7d2cede20c8342835de9e85c251c06247702ebb7758f8bce2e5a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / systemcard-0.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL systemcard-0.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 1.6 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
af89c46cee10c7aeb7f9f3baafe9b9842ab626fd8be117679c7486c7d52312db
BLAKE2b-256 checksum
How to use checksums
37d0abdc6d5589c88d56e5b07c31fe579ab3d1c5372a0ecc04768d12f0fbd755
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / systemcard-0.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL systemcard-0.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 1.6 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
fa4c5467a7c2ea15227ccd4cda796eaf8cb7f6a0654b2d0e5502b87dee4ffb23
BLAKE2b-256 checksum
How to use checksums
5c760cd1f8655200f49a1ea6377b55c2dab0d2903b8cfd7df1be8f45638422de
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / systemcard-0.1.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL systemcard-0.1.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 1.6 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
c83339b9429fdef851ee15da4c11c87666a2f9eb4e80c76faad4c85fe719326a
BLAKE2b-256 checksum
How to use checksums
445e750fd72348e5825baca907eee32bd2c293778d022fe71498c49a91fddb14
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / systemcard-0.1.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL systemcard-0.1.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 1.6 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
292719336e57cd55cc093a892df48f6a07aede83dc928617805007937bea2c80
BLAKE2b-256 checksum
How to use checksums
472050f18fcb340692b726aff8b01a3e4462f3971aacdb95e9d245580769c904
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / systemcard-0.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL systemcard-0.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.6 MB
Tags CPython 3.8 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
17e17a61c34550443b4a4fc4f3aba2d5f2b64d344f7b3f347ac3764ca8c00f16
BLAKE2b-256 checksum
How to use checksums
248a479bf96600dcc2d9dc8e2b61db4fe70bb71cf280e61aa245771fd3b61c69
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / systemcard-0.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL systemcard-0.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.6 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
decbe3a13659fc26b8676778e5d684d1aee47340eeab08eb2b5914a94a456ab1
BLAKE2b-256 checksum
How to use checksums
f4aa0289d1ccbde971eb22979aabf4c4c2c2b3cf3aef6334bc14f3d830f7d61d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / systemcard-0.1.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL systemcard-0.1.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.6 MB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
53c252724bccd9351fa8ca0db4b86f3de8f4100240b2d6e47d88e12ca7593290
BLAKE2b-256 checksum
How to use checksums
3d35c39d5b79768f0df6400cb26508d504e691c6b295bbf87c75034ea4431d7a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.1 This release

10 release files

0.1.0

10 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page