Privacy-first VirusTotal hash lookup CLI
Project description
jwvtscore
jwvtscore is a privacy-first CLI for checking whether VirusTotal already knows a file by its SHA-256 hash.
Goals
- compute the hash locally
- query VirusTotal with the hash only
- never upload file contents
- keep the CLI output concise and readable
Installation
Install the CLI in an isolated tool environment:
uv tool install jwvtscore
You can also install it with pipx:
pipx install jwvtscore
Configuration
jwvtscore requires a VirusTotal API key. Set it with the VIRUSTOTAL_API_KEY
environment variable before running the command:
export VIRUSTOTAL_API_KEY="your-api-key"
The CLI only sends SHA-256 hashes to VirusTotal lookup endpoints. It does not upload file contents.
Usage
Check one or more regular files:
jwvtscore /path/to/file
jwvtscore /path/to/file another-file.bin
Example output:
/path/to/file
sha256: b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
verdict: malicious
stats: harmless=1 suspicious=2 malicious=3 undetected=4
link: https://www.virustotal.com/gui/file/b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
Development
uv sync
uv run pytest
uv run jwvtscore /path/to/file
uv tool install .
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 jwvtscore-0.1.0.tar.gz.
File metadata
- Download URL: jwvtscore-0.1.0.tar.gz
- Upload date:
- Size: 6.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2d50dbb3f297251141bd49fe46e02bc3e9d71d604dbce544f5bb54c2d26af06c
|
|
| MD5 |
992f7c4e368b8a5fa2696806e26d6c45
|
|
| BLAKE2b-256 |
a2124db390ed8319aed84233cf93427f83a9b2633489672b2571ff02a87619ee
|
File details
Details for the file jwvtscore-0.1.0-py3-none-any.whl.
File metadata
- Download URL: jwvtscore-0.1.0-py3-none-any.whl
- Upload date:
- Size: 6.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6521f5ea46e73df5122b1fd192470f8f3cd93c4273d5de726dfa6f13b8d1218e
|
|
| MD5 |
7ced62f70e118ae1ee0aec73a0e531ab
|
|
| BLAKE2b-256 |
289e99f6b5c476003a5c33fdbe7f9520f788963de09c657cce6b4d14254f6d23
|