Skip to main content

sigilsec (PyPI wrapper)

Sigil is an automated security auditing CLI for AI agent code: quarantine-first scanning for pip and npm packages, git repositories, MCP servers and agent skills.

This package is a thin, dependency-free installer for the prebuilt Rust binary. It is the Python counterpart of the npm package @nomarj/sigil and follows the same mechanics.

pip install sigilsec
sigil scan .

The PyPI name is sigilsec: sigil-cli (the crates.io name) is already taken on PyPI by an unrelated project, checked 2026-09-02. The import package is sigil_cli and the installed command is sigil.

What it does

  1. On the first sigil invocation the wrapper picks the release asset for the host from platform.system() / platform.machine():

    Platform Machine Asset
    macOS x86_64 sigil-macos-x64.tar.gz
    macOS arm64 sigil-macos-arm64.tar.gz
    Linux x86_64 sigil-linux-x64.tar.gz
    Linux aarch64/arm64 sigil-linux-arm64.tar.gz
    Windows AMD64 sigil-windows-x64.zip
  2. It downloads https://github.com/NOMARJ/sigil/releases/download/v<version>/<asset> together with SHA256SUMS.txt from the same release, where <version> is this package's version (it tracks cli/Cargo.toml).

  3. It verifies the archive's SHA-256 against SHA256SUMS.txt with hashlib. A 404 or a checksum mismatch aborts with a clear message and nothing is written.

  4. The single sigil (or sigil.exe) member is read out of the archive — nothing else in the archive is extracted — and written atomically to ~/.sigil/bin/sigil-<version>[.exe] with mode 0755.

  5. Control is handed to the binary with your original arguments: os.execv on macOS/Linux (the wrapper process is replaced), subprocess.call on Windows (the exit code is forwarded).

Subsequent runs find the cached binary and skip straight to step 5. Progress messages go to stderr, so sigil scan -f json | jq stays clean.

Environment variables

Variable Effect
SIGIL_BINARY Path to an existing sigil executable. Skips download and cache (local builds, air-gapped).
SIGIL_VERSION Release to fetch instead of the packaged version, e.g. 1.3.6 or v1.3.6 (as in install.sh).
SIGIL_HOME Cache root, default ~/.sigil.

Supported Python

Python 3.9 or newer. Standard library only — the wrapper deliberately adds no third-party dependencies to your environment.

Development

# Run the offline unit tests (no network access required)
python3 -m unittest discover -s python/tests

# Run the wrapper from source without installing
PYTHONPATH=python/src python3 -m sigil_cli --version

# Build sdist + wheel
python3 -m pip install build
python3 -m build python/

Keep sigil_cli.__version__ equal to the version in cli/Cargo.toml — the wrapper downloads exactly that release tag.

Publishing

Each release is published from its vX.Y.Z tag by .github/workflows/publish-pypi.yml, dispatched by hand once release.yml has published that tag's GitHub release with all five binaries and SHA256SUMS.txt. It uses PyPI trusted publishing, so no token is stored. Full steps: docs/RELEASING.md.

License

Apache-2.0, same as Sigil.

Metadata

Release files for sigilsec 1.3.7

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

Source distribution (sdist)

Source distribution for sigilsec 1.3.7
File Size Uploaded
sigilsec-1.3.7.tar.gz 14.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sigilsec 1.3.7
File Interpreter ABI Platform
sigilsec-1.3.7-py3-none-any.whl Python 3 none any Details

Total release size: 22.7 kB

Release files / sigilsec-1.3.7.tar.gz

Download URL sigilsec-1.3.7.tar.gz
Size 14.2 kB
Tags Source
SHA-256 checksum
How to use checksums
ce3cf2b7a52781237cf4397135521ba7f984df49a72575d55620f07483e37bde
BLAKE2b-256 checksum
How to use checksums
940acf696017291c5aaeef892553a4e2911c22701b7a23ed057720d5cba96544
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 Sep 27, 2026.

Transparency log

Release files / sigilsec-1.3.7-py3-none-any.whl

Download URL sigilsec-1.3.7-py3-none-any.whl
Size 8.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
25c132e3016db8ba6ae474bae0652ff2db715e2afe8691218fa2883959ccce24
BLAKE2b-256 checksum
How to use checksums
3bea0b65f643e6048c585a411f0822ea6a70fae5723eddb9920e2aee8aadde0c
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 Sep 27, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.3.7 This release

2 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