Skip to content

Releases: nordicnode/optisys

OptiSys 0.2.6

10 Mar 22:14

Choose a tag to compare

OptiSys 0.2.6

Highlights

  • Added a new built-in sensors collector for temperature and hardware sensor monitoring.
  • Added sysfs-first thermal collection from hwmon, thermal zones, and block-device hwmon paths.
  • Added fallback support for sensors -j when direct sysfs sensor data is unavailable.
  • Added GPU temperature and fan collection through nvidia-smi when present.
  • Expanded automated coverage for the new collector and sensors summary rendering.

Included in this release

New sensors collector

  • Added a built-in sensors scan category.
  • Collects sensor data directly from:
    • /sys/class/hwmon/hwmon*/temp*_input
    • /sys/class/thermal/thermal_zone*/temp
    • /sys/class/block/*/device/hwmon/*/temp*_input
  • Captures:
    • CPU/package temperatures
    • GPU temperatures
    • NVMe/storage temperatures
    • thermal zone readings
    • fan RPM values
    • voltage readings where available

Smart fallback behavior

  • Prefers direct sysfs reads so sensor collection works even without lm-sensors installed.
  • Falls back to sensors -j when direct reads are unavailable or incomplete.
  • Uses nvidia-smi for GPU temperature and fan telemetry when NVIDIA tooling is available.

Scan output improvements

  • Adds a concise sensors summary line in scan results, for example:
    • CPU: 52°C · GPU: 61°C · NVMe: 38°C · fans: 1200rpm
  • Includes structured sensor data in exported reports for downstream analysis.

Reliability and test coverage

  • Added dedicated tests for:
    • hwmon temperature, fan, and voltage collection
    • thermal zone collection
    • NVMe/block-device hwmon temperature collection
    • lm-sensors JSON fallback handling
    • sensors summary rendering in terminal output

Installation

Standalone binary

Download the Linux standalone binary from the GitHub release assets.

PyPI

pip install optisys

From source

git clone https://github.com/nordicnode/optisys.git
cd optisys
pip install -e .[dev]

Quick start

optisys scan
optisys scan -c sensors
optisys scan -c hardware -c sensors -c kernel

Notes

  • This release targets Linux systems.
  • Root privileges may still be required for complete access to some sensor and system details.
  • Direct sysfs reads are preferred for sensor collection and do not require lm-sensors.
  • If available, nvidia-smi enriches GPU telemetry.
  • All collection remains local-only; there is no outbound telemetry.

Artifacts

  • optisys-linux-x86_64 — standalone Linux executable
  • optisys-v0.2.6-linux-x86_64.tar.gz — release archive containing the binary, README, and LICENSE

Full changelog

See CHANGELOG.md for the complete release history and detailed change list.

v0.2.5

10 Mar 21:55

Choose a tag to compare

OptiSys 0.2.5

Added

  • Security collector — added a new built-in security category for firewall and host security posture review
    • Collects firewall status from ufw, with fallback support for nftables and iptables
    • Captures listening TCP/UDP ports via ss
    • Reports AppArmor and SELinux status when available
    • Includes fail2ban jail and banned IP summaries
    • Checks /etc/sudoers permissions and key kernel hardening settings such as ASLR, kptr_restrict, and IP forwarding
    • Surfaces risky findings as warnings and marks the collector partial when security posture issues are detected
  • Expanded test suite — added security collector coverage alongside the existing comprehensive collector tests

Artifacts

  • optisys-linux-x86_64 — standalone Linux executable
  • optisys-v0.2.5-linux-x86_64.tar.gz — release archive containing the binary, README, and LICENSE

Installation

Standalone binary

chmod +x optisys-linux-x86_64
sudo mv optisys-linux-x86_64 /usr/local/bin/optisys

From PyPI

pip install optisys

Release v0.2.4

10 Mar 21:18

Choose a tag to compare

Release v0.2.4 - Test Suite Expansion

Added

  • Expanded test suite — added 26 new comprehensive tests across render, shell, and cache modules
    • — 9 tests covering header printing, scan summaries, warnings display, footer rendering, and status icons
    • — 17 tests covering command execution, file operations, proc/sys reading, and edge cases
    • Improved overall test coverage from 74% to 79%
    • Total test count increased from 71 to 97 passing tests

This release focuses on improving test coverage and robustness of the codebase through comprehensive testing of edge cases and error handling scenarios.

Release v0.2.3

10 Mar 21:07

Choose a tag to compare

Release v0.2.3 - Bug Fix Release

Fixed

  • Test suite failures — Fixed 5 failing tests in caused by function signature mismatch. Updated test mocks to include the parameter that was added in v0.2.2, ensuring all 71 tests now pass.

This is a patch release that addresses test failures introduced in the v0.2.2 release. No functional changes to the application itself.

v0.2.2

10 Mar 18:27

Choose a tag to compare

OptiSys v0.2.2

Highlights

  • Added SQLite-backed local scan history recording for completed scans.
  • Added optisys history backfill to import cached JSON reports into the history database.
  • Added optisys history list to inspect recently stored scans from the local history database.
  • Added support for retaining timestamped scan history in both the cache and SQLite workflows.
  • Expanded automated coverage for history recording, backfill, and history CLI flows.

Included in this release

Local history database

  • Completed scans can now be appended to a local SQLite history database.
  • Default history database location:
    • ~/.local/share/optisys/history.db
  • Added support for overriding the history database path with:
    • OPTISYS_HISTORY_DB
  • Scan completion output now shows when a scan was written to the history database, including the inserted scan id.

History commands

  • Added optisys history backfill to import timestamped cached JSON reports from:
    • ~/.cache/optisys/
  • Backfill skips reports that are already present in SQLite and reports:
    • imported count
    • skipped count
    • failed count
  • Added optisys history list to display recent scan history entries with:
    • scan id
    • timestamp
    • hostname
    • tool version
    • duration
    • recorded categories

Reliability and test coverage

  • Added dedicated tests for:
    • SQLite schema creation
    • history scan persistence
    • cached report backfill
    • duplicate detection during backfill
    • history list query behavior
    • history CLI empty-state and error handling
  • Existing cache-based history remains compatible with the new SQLite workflow.

Installation

Standalone binary

Download the Linux standalone binary from the GitHub release assets.

PyPI

pip install optisys

From source

git clone https://github.com/nordicnode/optisys.git
cd optisys
pip install -e .

Quick start

optisys scan
optisys history list
optisys history backfill

Notes

  • This release targets Linux systems.
  • Root privileges may still be required for complete access to some system details.
  • Local history is stored on disk only; there is no outbound telemetry.
  • Cached JSON scan history and SQLite history can be used together.

Full changelog

See CHANGELOG.md for the complete release history and detailed change list.

OptiSys v0.2.1

10 Mar 17:50

Choose a tag to compare

OptiSys v0.2.1

Highlights

  • Added support for custom collector plugins via Python entry points and drop-in plugin files.
  • New plugin management CLI commands:
    • optisys plugins list
    • optisys plugins inspect <key>
    • optisys plugins dir
  • Improved scan execution with concurrent collector runs while preserving requested category order in reports.
  • Expanded automated test coverage for plugin loading, plugin CLI commands, scan/export flows, and collector edge cases.
  • Improved release automation for binary packaging and GitHub release publishing.

Included in this release

Plugin system

  • Plugins can now be discovered from:
    • installable package entry points in the optisys.collectors group
    • user plugin files in ~/.config/optisys/plugins/
  • Added plugin metadata support:
    • version
    • author
    • description
    • source
    • class name
  • Added plugin registry/introspection support for loaded plugin collectors.
  • Built-in collector keys remain protected from plugin shadowing.

CLI improvements

  • Added plugins list for viewing loaded plugins.
  • Added plugins inspect <key> for viewing detailed plugin metadata.
  • Added plugins dir and plugins dir --create for managing the plugin directory.
  • Scan reports now keep completed_categories in the original requested order even when collectors finish concurrently.

Reliability and test coverage

  • Added dedicated plugin loader and integration tests.
  • Added CLI tests for plugin, scan, and export flows.
  • Added edge-case collector tests for:
    • malformed journal output
    • missing journal files
    • oversized/invalid log timestamps
    • missing package managers
    • partial package manager output

Installation

Standalone binary

Download the Linux standalone binary from the GitHub release assets.

PyPI

pip install optisys

From source

git clone https://github.com/nordicnode/optisys.git
cd optisys
pip install -e .

Quick start

optisys scan
optisys plugins list
optisys plugins inspect <key>

Notes

  • This release targets Linux systems.
  • Root privileges may still be required for complete access to some system details.
  • Third-party plugins execute Python code during discovery/loading, so only install plugins you trust.

Full changelog

See CHANGELOG.md for the complete release history and detailed change list.

v0.2.0

10 Mar 16:58

Choose a tag to compare

What's New

Plugin system for custom collectors — you can now extend OptiSys with your own scan categories, no fork required.

Drop-in plugins — drop any .py file containing a BaseCollector subclass into ~/.config/optisys/plugins/ and it appears automatically in the next scan.

Installable plugins — distribute a plugin as a Python package using the optisys.collectors entry-point group and it integrates with zero extra configuration.

New CLI commands:

  • optisys plugins list — show all loaded plugins with version, author, and description
  • optisys plugins list --verbose — add source path and class name
  • optisys plugins dir — show the plugin directory path and usage guide
  • optisys plugins dir --create — create the directory if it doesn't exist yet

## Getting Started with Plugins

See PLUGINS.md for the full developer guide and examples/uptime_collector.py for a working reference plugin.

v0.1.0

10 Mar 16:46

Choose a tag to compare

Features:

  • Hardware profiling (CPU, GPU, memory, disks, network)
  • Kernel and OS information collection
  • Driver analysis and kernel module enumeration
  • Service monitoring for systemd
  • Package management support (dpkg, snap, flatpak)
  • System log analysis with warning/error detection
  • Rich terminal output with progress bars and tables
  • JSON and YAML export functionality
  • Intelligent caching system
  • Standalone binary distribution
  • Comprehensive CLI interface

Security:

  • No network connections (except package manager queries)
  • Safe subprocess handling without shell injection
  • Read-only system access
  • No data collection or telemetry

Performance:

  • Optimized collector execution
  • Fast binary distribution (~12MB, ~6 second scan time)
  • Intelligent caching to avoid repeated expensive operations