Command line wallet tooling built on the pollyweb library.
Project description
pollyweb-cli
pollyweb-cli provides the pw command, a small wallet-style CLI built on top of the pollyweb Python package.
It helps you:
- create a local PollyWeb key pair
- bind that identity to a PollyWeb-enabled domain
- send signed shell commands to a remote domain
Install
Install the CLI globally from PyPI with pipx:
pipx install pollyweb-cli
Or install it globally with pip:
python3 -m pip install pollyweb-cli
After installation, the CLI is available as:
pw --help
To confirm which release is installed:
pw --version
For more setup details, see docs/install.md.
Quick Start
Create your local key pair:
pw config
This writes your keys to:
~/.pollyweb/private.pem~/.pollyweb/public.pem
Bind your wallet to a domain:
pw bind vault.example.com
This sends a signed Bind@Vault request to https://pw.vault.example.com/inbox using the compact public-key value in the request body. The bind request now relies on PollyWeb's optional message fields, so it omits explicit From and Schema values, and stores the returned bind token in ~/.pollyweb/binds.yaml. Rebinding the same domain replaces the existing bind for that domain unless the server returns a different Schema, in which case both entries are kept.
Open an interactive shell against a domain:
pw shell vault.example.com
Each command you enter is parsed into a base Command plus an Arguments dictionary, then sent as a signed Shell@Domain message whose From header is set to the first stored bind for that domain. Long flags like --all 123 become {"all":"123"}, short flags like -a 123 become {"a":"123"}, key=value tokens like a=123 become {"a":"123"}, and plain positional arguments remain indexed as {"0":"value"}. pw shell also keeps the last 20 commands for that exact domain in ~/.pollyweb/history/, so you can use the up/down arrows to revisit recent commands. Commands are recorded before the network request is sent, which means failed requests still appear in that domain's history.
To inspect the signed shell request and response for each command as colorized, indented YAML:
pw shell --debug vault.example.com
Debugging Bind Requests
Use --debug with pw bind to print the outbound request payload and inbound response body as colorized, indented YAML:
pw bind --debug vault.example.com
This is useful when you want to inspect the exact message contents being sent or troubleshoot an unexpected server response.
Command Summary
pw configgenerates a PollyWeb key pair in~/.pollywebpw config --forcereplaces an existing key pairpw bind <domain>requests and stores a bind token for a domainpw bind --debug <domain>shows bind request and response payloads as colorized YAMLpw shell <domain>starts an interactive remote shell sessionpw shell <domain>remembers the last 20 commands per domain for arrow-key navigationpw shell --debug <domain>shows shell request and response payloads as colorized YAMLpw --versionprints the installed CLI version
For more examples and command behavior, see docs/usage.md.
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 pollyweb_cli-0.1.18.tar.gz.
File metadata
- Download URL: pollyweb_cli-0.1.18.tar.gz
- Upload date:
- Size: 16.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5e7460d5660c546134c81fe6f1112419e61eb4081464219a8de155eac1dc1179
|
|
| MD5 |
046ee9a43f3d49a95eaba5fc1d700928
|
|
| BLAKE2b-256 |
8eb2284b26a8406d5c086de76debe848f1464ed664d567be265d27a8706b4fe0
|
Provenance
The following attestation bundles were made for pollyweb_cli-0.1.18.tar.gz:
Publisher:
publish.yml on pollycore/wallet-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pollyweb_cli-0.1.18.tar.gz -
Subject digest:
5e7460d5660c546134c81fe6f1112419e61eb4081464219a8de155eac1dc1179 - Sigstore transparency entry: 1098838690
- Sigstore integration time:
-
Permalink:
pollycore/wallet-cli@39915feacfa88660cc2cc0c08502720083f403f0 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/pollycore
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@39915feacfa88660cc2cc0c08502720083f403f0 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pollyweb_cli-0.1.18-py3-none-any.whl.
File metadata
- Download URL: pollyweb_cli-0.1.18-py3-none-any.whl
- Upload date:
- Size: 9.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
180369be8ee9f7ab0bc4cc64a0486aa9566ea7cde565e0b6164b4dd0700b9225
|
|
| MD5 |
6850eb5e44e86d1344e48c76b9746e4b
|
|
| BLAKE2b-256 |
a52238fbea63d84d8bbcf17746bd68345163ed8d8d680f8d70afcc8e48ac3333
|
Provenance
The following attestation bundles were made for pollyweb_cli-0.1.18-py3-none-any.whl:
Publisher:
publish.yml on pollycore/wallet-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pollyweb_cli-0.1.18-py3-none-any.whl -
Subject digest:
180369be8ee9f7ab0bc4cc64a0486aa9566ea7cde565e0b6164b4dd0700b9225 - Sigstore transparency entry: 1098838760
- Sigstore integration time:
-
Permalink:
pollycore/wallet-cli@39915feacfa88660cc2cc0c08502720083f403f0 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/pollycore
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@39915feacfa88660cc2cc0c08502720083f403f0 -
Trigger Event:
push
-
Statement type: