The Wizard's Pick
A terminal assistant for authorized security testing, with local inference by default.
Status: Working, public. Version 0.2.0 is the current release.
What The Wizard's Pick does
Pick keeps assessment context, model conversation, command results, findings, and reports in a
local SQLite-backed workflow. It uses an OpenAI-compatible model endpoint, configured by default
for a project-local Ollama server at 127.0.0.1:11435.
flowchart LR
U[Operator] --> P[Pick terminal]
P -->|127.0.0.1:11435| O[Project-local Ollama]
O --> M[DeepHat-V1-7B]
P --> C[Shell command]
C --> D[(SQLite session)]
D --> R[Markdown report]
The model can return structured command proposals and findings. Pick records commands executed through the application and exports all recorded command and audit entries for a session, with bounded output excerpts.
Execution model
Pick is intentionally lean. It does not include a scope matcher, command denylist, sandbox, approval service, or output redaction. Commands are passed to the host shell as written. Operators who need those controls should provide them through the account, container, virtual machine, network, and engagement process used to run Pick.
| Mode | Behavior |
|---|---|
manual |
Default. The model proposes commands; the operator runs them elsewhere and can paste the output back. |
assisted |
Pick asks once before executing a proposal. |
automated |
Pick executes parsed model proposals without confirmation, including proposals influenced by captured target output. |
/exec always executes the supplied command, independent of the current mode. The default
wall-clock timeout is 300 seconds, and combined captured output is limited to 1,000,000 bytes. Pick
terminates the POSIX process group when either bound is reached. These resource bounds do not
inspect or rewrite the command.
Requirements
- Python 3.11 or newer
- Linux or WSL2 for the bundled model setup script
- x86-64 for the pinned Ollama archive
curl,tar, andsha256sum- approximately 20 GB of free storage for the runtime, downloaded GGUF, and imported model
The Python client may work on other platforms when you manage a compatible endpoint yourself. The repository's end-to-end setup and CI target Linux.
Install
Install the CLI from PyPI:
python -m pip install wizards-pick
A source checkout includes the project-local Ollama and model setup scripts:
git clone https://github.com/wizards-ecosystem/wizards-pick.git
cd wizards-pick
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e .
See the release checklist for maintainer steps.
Set up the model
In the first terminal:
scripts/ollama-local.sh install
scripts/ollama-local.sh serve
In a second terminal:
scripts/ollama-local.sh build
build downloads DeepHat-V1-7B Q8_0 from a pinned Hugging Face revision, verifies its SHA-256
digest, and creates the deephat Ollama model in .wizards-pick/. To use another GGUF, set both
DEEPHAT_GGUF_URL and DEEPHAT_GGUF_SHA256.
The application code is MIT-licensed. The default model repository identifies the model license as Apache-2.0. Review the model card and license before redistribution: mradermacher/DeepHat-V1-7B-GGUF.
scripts/bake_rope.py can write experimental YaRN metadata for larger context windows. Install the
optional dependency with python -m pip install -e ".[rope]" and evaluate the resulting model for
your workload.
Run The Wizard's Pick
wizards-pick
The first session wizard records targets and context, focus areas, exclusions, testing window, authorization reference, intensity, emergency contact, and notes. This information guides the model. Pick does not enforce it against generated commands.
Interactive commands
| Command | Behavior |
|---|---|
/context, /scope |
Show the session context |
/sessions |
List saved sessions |
/plan [phase|all] |
Show an offline assessment plan |
/tools |
Check common assessment tools on PATH |
/mode manual|assisted|automated |
Change execution mode |
/timeout [seconds] |
Show or set the positive command timeout |
/exec <command> |
Execute a shell command and record the result |
/paste |
Paste external output, ending with a line containing only EOF |
/findings |
List recorded findings |
/report [path] |
Export a Markdown report |
/help, /exit |
Show help or quit |
Data and network behavior
By default, CLI state is written to .wizards-pick/ under the directory where Pick starts. Set
WIZARDS_PICK_DATA_DIR to choose another location. The setup script keeps its Ollama runtime,
model, cache, home, and logs in the repository's .wizards-pick/ directory.
State directories are created with owner-only permissions on POSIX systems. SQLite files and
reports are written with mode 0600. Reports and command history are unredacted and may contain
sensitive assessment data.
Inference uses loopback by default. The setup commands download Ollama and the model, and executed
assessment commands can use the network. WIZARDS_PICK_URL can point the client at another
OpenAI-compatible endpoint, but Pick does not add authentication headers. A remote endpoint
receives session context and conversation content.
Related settings:
| Variable | Default |
|---|---|
WIZARDS_PICK_DATA_DIR |
<current directory>/.wizards-pick |
WIZARDS_PICK_MODEL |
deephat |
WIZARDS_PICK_OLLAMA_HOST |
127.0.0.1:11435 |
WIZARDS_PICK_URL |
http://127.0.0.1:11435/v1/chat/completions |
WIZARDS_PICK_CONTEXT_TOKENS |
32768 |
WIZARDS_PICK_RESPONSE_TOKENS |
2048 |
Development
python -m pip install -e ".[dev]"
make check
make release-check
make check runs Ruff, mypy, and pytest. The test suite does not require a model server or network
access. See the
contribution guide
and security policy.
Metadata
Release files for wizards-pick 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| wizards_pick-0.2.0.tar.gz | 130.6 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| wizards_pick-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 161.4 kB
Release files / wizards_pick-0.2.0.tar.gz
| Download URL | wizards_pick-0.2.0.tar.gz |
|---|---|
| Size | 130.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a15ed8ebe7e21c8a10790955e7801ab996716f1ead1859507dfbf92d9f3c736f
|
|
BLAKE2b-256 checksum How to use checksums |
05f364e932caa1a27ff2916aca15a453a8b2f652233aa8e966e6c932150385bb
|
| 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 6, 2026.
Transparency logRelease files / wizards_pick-0.2.0-py3-none-any.whl
| Download URL | wizards_pick-0.2.0-py3-none-any.whl |
|---|---|
| Size | 30.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2ab77b2418e1297f0d29350da517539e885b46d2d8145ec5c692773f0ab18010
|
|
BLAKE2b-256 checksum How to use checksums |
5dc07cafc913a3345b607885026abafb62694027fad4d0e1f1bd01ac7bb6aaf3
|
| 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 6, 2026.
Transparency logSecurity for wizards-pick 0.2.0
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for wizards_pick-0.2.0.tar.gz
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 6, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.