AI-augmented security scanning for vibe coders. Zero-config secrets detection and vulnerability scanning.
Project description
Zwischen Python Package
Python wrapper for Zwischen, an AI-augmented security scanning CLI. This package exposes a Python implementation of the core workflow for Python users.
The Ruby gem in the repository root is currently the canonical implementation. This wrapper has a smaller command surface and may not match every Ruby feature.
Installation
pip install zwischen-cli
The PyPI distribution is named zwischen-cli (the bare zwischen name is taken by an unrelated project), but the installed command is still zwischen.
For local development:
cd packages/pip
python -m pip install -e .
zwischen --help
Commands
zwischen init
zwischen scan
zwischen scan --ai ollama
zwischen scan --ai openai --api-key "$OPENAI_API_KEY"
zwischen scan --format json
zwischen scan --pre-push
zwischen doctor
Supported scan flags:
--ai:ollama,openai, oranthropic--api-key: provider API key--format:terminalorjson--pre-push: compact hook mode
--format json prints only a JSON document on stdout (no banners), shaped like the Ruby gem's output: {"summary": {"total": N, "by_severity": {...}}, "findings": [...]}. File paths in findings are relative to the project root, and ignore: globs from .zwischen.yml are honored.
Not currently supported in this wrapper:
zwischen uninstallzwischen scan --only ...zwischen scan --changedzwischen scan --format sarif(exits with status 2 and an error; use the Ruby gem for SARIF)- Ruby's changed-file filtering for
--pre-push
Behavior
zwischen init tries to install Gitleaks into ~/.zwischen/bin, creates .zwischen.yml, checks whether Semgrep is available, and installs or appends a Git pre-push hook when run inside a Git repository.
Semgrep is optional:
pip install semgrep
Configuration
The Python wrapper creates this shape:
ai:
enabled: true
pre_push_enabled: false
provider: ollama
model: llama3
blocking:
severity: high
scanners:
gitleaks: true
semgrep: true
ignore:
- "**/node_modules/**"
- "**/vendor/**"
- "**/.git/**"
- "**/dist/**"
- "**/build/**"
Blocking severities are high, critical, or none.
ignore: entries are glob patterns matched against paths relative to the project root; ** spans directories (so **/dist/** also covers a top-level dist/). Findings in ignored paths are dropped from all output formats.
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file zwischen_cli-0.1.1.tar.gz.
File metadata
- Download URL: zwischen_cli-0.1.1.tar.gz
- Upload date:
- Size: 14.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
60082e9a196d0bf9a17f052b7beda11ea88ba6d0d1a875d15a4f4c35f1781778
|
|
| MD5 |
7b678845ce46fd77ba98aa58eb047cd4
|
|
| BLAKE2b-256 |
3027a838d465844c8b8c5aa6bac05ed48cc123637f160fa24cd864a854734f84
|
Provenance
The following attestation bundles were made for zwischen_cli-0.1.1.tar.gz:
Publisher:
release.yml on cjordan223/zwischen
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
zwischen_cli-0.1.1.tar.gz -
Subject digest:
60082e9a196d0bf9a17f052b7beda11ea88ba6d0d1a875d15a4f4c35f1781778 - Sigstore transparency entry: 1788147736
- Sigstore integration time:
-
Permalink:
cjordan223/zwischen@1642f8f4573d23a4a7f92f245fcd658d6d45265f -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/cjordan223
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@1642f8f4573d23a4a7f92f245fcd658d6d45265f -
Trigger Event:
push
-
Statement type:
File details
Details for the file zwischen_cli-0.1.1-py3-none-any.whl.
File metadata
- Download URL: zwischen_cli-0.1.1-py3-none-any.whl
- Upload date:
- Size: 15.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e12b9999150d675ddc11f045c14eb9543065d8f495e7a4c1ad1c240b3b36d5d1
|
|
| MD5 |
8b3072987cc887a08cb202f52db36223
|
|
| BLAKE2b-256 |
6c2a28bd9fa797841bdb9eeeb6db55ffa3c64954867024c0ec5fbce7807974dc
|
Provenance
The following attestation bundles were made for zwischen_cli-0.1.1-py3-none-any.whl:
Publisher:
release.yml on cjordan223/zwischen
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
zwischen_cli-0.1.1-py3-none-any.whl -
Subject digest:
e12b9999150d675ddc11f045c14eb9543065d8f495e7a4c1ad1c240b3b36d5d1 - Sigstore transparency entry: 1788147830
- Sigstore integration time:
-
Permalink:
cjordan223/zwischen@1642f8f4573d23a4a7f92f245fcd658d6d45265f -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/cjordan223
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@1642f8f4573d23a4a7f92f245fcd658d6d45265f -
Trigger Event:
push
-
Statement type: