Releases: nordicnode/optisys
OptiSys 0.2.6
OptiSys 0.2.6
Highlights
- Added a new built-in
sensorscollector 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 -jwhen direct sysfs sensor data is unavailable. - Added GPU temperature and fan collection through
nvidia-smiwhen present. - Expanded automated coverage for the new collector and sensors summary rendering.
Included in this release
New sensors collector
- Added a built-in
sensorsscan 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-sensorsinstalled. - Falls back to
sensors -jwhen direct reads are unavailable or incomplete. - Uses
nvidia-smifor 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-sensorsJSON fallback handling- sensors summary rendering in terminal output
Installation
Standalone binary
Download the Linux standalone binary from the GitHub release assets.
PyPI
pip install optisysFrom source
git clone https://github.com/nordicnode/optisys.git
cd optisys
pip install -e .[dev]Quick start
optisys scanoptisys scan -c sensorsoptisys scan -c hardware -c sensors -c kernelNotes
- 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-smienriches GPU telemetry. - All collection remains local-only; there is no outbound telemetry.
Artifacts
optisys-linux-x86_64— standalone Linux executableoptisys-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
OptiSys 0.2.5
Added
- Security collector — added a new built-in
securitycategory for firewall and host security posture review- Collects firewall status from
ufw, with fallback support fornftablesandiptables - Captures listening TCP/UDP ports via
ss - Reports AppArmor and SELinux status when available
- Includes fail2ban jail and banned IP summaries
- Checks
/etc/sudoerspermissions and key kernel hardening settings such as ASLR,kptr_restrict, and IP forwarding - Surfaces risky findings as warnings and marks the collector
partialwhen security posture issues are detected
- Collects firewall status from
- Expanded test suite — added security collector coverage alongside the existing comprehensive collector tests
Artifacts
optisys-linux-x86_64— standalone Linux executableoptisys-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/optisysFrom PyPI
pip install optisysRelease v0.2.4
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
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
OptiSys v0.2.2
Highlights
- Added SQLite-backed local scan history recording for completed scans.
- Added
optisys history backfillto import cached JSON reports into the history database. - Added
optisys history listto 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 backfillto 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 listto 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 optisysFrom source
git clone https://github.com/nordicnode/optisys.git
cd optisys
pip install -e .Quick start
optisys scanoptisys history listoptisys history backfillNotes
- 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
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 listoptisys 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.collectorsgroup - user plugin files in
~/.config/optisys/plugins/
- installable package entry points in the
- 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 listfor viewing loaded plugins. - Added
plugins inspect <key>for viewing detailed plugin metadata. - Added
plugins dirandplugins dir --createfor managing the plugin directory. - Scan reports now keep
completed_categoriesin 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 optisysFrom source
git clone https://github.com/nordicnode/optisys.git
cd optisys
pip install -e .Quick start
optisys scanoptisys plugins listoptisys 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
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 descriptionoptisys plugins list --verbose— add source path and class nameoptisys plugins dir— show the plugin directory path and usage guideoptisys 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
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