Give any Python agent a real, routable Whisper IPv6 identity and safe egress.
Project description
whisper-id
A real, routable IPv6 identity and safe egress for any Python agent — in two calls.
pip install whisper-id # add [socks] for requests+SOCKS: pip install "whisper-id[socks]"
from whisper_id import register, egress
import requests
agent = register("my-bot") # a routable Whisper /128 identity
with egress(): # route this block through your /128
requests.get("https://api64.ipify.org").text # ← leaves from your Whisper IPv6
That's it. Inside the with block the standard proxy env vars point at your local Whisper
proxy, so requests, httpx, urllib, and most libraries "just work"; on exit they're restored.
API
| Call | Does |
|---|---|
register(name, *, new_key=False) |
Create a named agent — a routable /128. new_key=True mints a new agent and its own API key. → Agent(address, id, name) |
egress(agent=None, *, tier="socks5", set_env=True) |
Context manager: bring up egress bound to your /128. Yields Egress (.port, .proxy_url, .socks_url, .proxies). tier="wireguard" for a routed /128. |
verify(address) |
Keyless — is address a real Whisper agent? (DANE + DNSSEC + reverse-DNS + JWS) → bool |
ip() |
Your current egress IP, proving it's your /128. → str |
Pass the proxy explicitly instead of via env if you prefer:
with egress(set_env=False) as e:
requests.get(url, proxies=e.proxies)
Requirements
The whisper CLI on your PATH (this package is a thin, dependency-free wrapper over it):
curl get.whisper.online | sh
For authenticated calls (register, egress, ip), set WHISPER_API_KEY in the environment
or run whisper login. verify is keyless. ($WHISPER_BIN overrides the CLI path.)
Links
MIT licensed.
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 whisper_id-0.1.0.tar.gz.
File metadata
- Download URL: whisper_id-0.1.0.tar.gz
- Upload date:
- Size: 7.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36963b18a0bf7e85534eea0298b20967f1a3fb26c82480b6981d69e1d6a41335
|
|
| MD5 |
6ab0621d2a430e6fe7aaf3bf01fa40c3
|
|
| BLAKE2b-256 |
53ed6df032aeacf89a97feee4dacbcbd3b252800c3719c49ff06cebb591dcb86
|
Provenance
The following attestation bundles were made for whisper_id-0.1.0.tar.gz:
Publisher:
publish.yml on whisper-sec/whisper-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
whisper_id-0.1.0.tar.gz -
Subject digest:
36963b18a0bf7e85534eea0298b20967f1a3fb26c82480b6981d69e1d6a41335 - Sigstore transparency entry: 2013185228
- Sigstore integration time:
-
Permalink:
whisper-sec/whisper-py@96c9a6923c9cb6993e48bf9c7e8ef74757bd95d4 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/whisper-sec
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@96c9a6923c9cb6993e48bf9c7e8ef74757bd95d4 -
Trigger Event:
release
-
Statement type:
File details
Details for the file whisper_id-0.1.0-py3-none-any.whl.
File metadata
- Download URL: whisper_id-0.1.0-py3-none-any.whl
- Upload date:
- Size: 6.4 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 |
c75404145d4ccd29fdc8f134a96c2a6867855bc94eaff76593b3cb5df639eedc
|
|
| MD5 |
aad779cad5ef65fece0d1c94a3ed896e
|
|
| BLAKE2b-256 |
ef5544c145c129964a5b7e03e6f7a4c982efb60cf6e9b431a4802fb627ee98c2
|
Provenance
The following attestation bundles were made for whisper_id-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on whisper-sec/whisper-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
whisper_id-0.1.0-py3-none-any.whl -
Subject digest:
c75404145d4ccd29fdc8f134a96c2a6867855bc94eaff76593b3cb5df639eedc - Sigstore transparency entry: 2013185317
- Sigstore integration time:
-
Permalink:
whisper-sec/whisper-py@96c9a6923c9cb6993e48bf9c7e8ef74757bd95d4 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/whisper-sec
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@96c9a6923c9cb6993e48bf9c7e8ef74757bd95d4 -
Trigger Event:
release
-
Statement type: