7karni/sanixos — Static Analysis of NixOS configurations
Performs static analysis of NixOS configurations. Supports custom benchmark suites. Generates JSON and optional HTML reports.
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit May 6, 2026
- License
- AGPL 3.0
Pinned Snippet
uses: 7karni/sanixos@7013e2b4778093ee44d407cd6a18c24527447221 # v0.6.9tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| config | NixOS configuration name (e.g. x86_64-linux or your hostname) | — | x86_64-linux |
| flake | Flake reference (path or URL) | — | . |
| benchmark | Path to a benchmark JSON file (relative to the repository root) | — | "" |
| benchmark_url | URL to download a benchmark JSON from (overrides benchmark file path) | — | "" |
| output | Output directory for reports | — | reports |
| threads | Number of parallel eval threads | — | 4 |
| timeout | Timeout in seconds for each nix eval command | — | 60 |
| html | Also generate an HTML report | — | false |
| verbose | Enable verbose output (shell commands, raw output, test details) | — | false |
| log | Write console output to a log file | — | false |
| upload_artifact | Upload reports as a GitHub Actions artifact | — | true |
| artifact_name | Name of the uploaded artifact | — | sanixos-reports |
| retention_days | Number of days to retain the artifact (1–90, 0 uses the repo default) | — | 0 |
Outputs
| name | description |
|---|---|
| passed | Number of passed checks |
| failed | Number of failed checks |
| errors | Number of evaluation errors |
| skipped | Number of skipped checks |
| total | Total number of checks evaluated |
| pass_rate | Pass rate percentage (0–100) |
| json_report | Path to the JSON report |
| html_report | Path to the HTML report (only if html input is true) |