PBinCLI is a command line client for PrivateBin written in Python 3.
Installing globally using pip3:
pip3 install pbincli
Installing with virtualenv
:
python3 -m virtualenv --python=python3 venv
. venv/bin/activate
pip install pbincli
Note: if you used virtualenv
installation method, don't forget to activate your virtual environment before running the tool: call . /path/to/venv/bin/activate
in terminal
By default PBinCLI is configured to use https://paste.i2pd.xyz/
for sending and receiving pastes. No proxy is used by default.
You can always create a config file to use different settings.
Configuration file is expected to be found in ~/.config/pbincli/pbincli.conf
, %APPDATA%/pbincli/pbincli.conf
(Windows) and ~/Library/Application Support/pbincli/pbincli.conf
(MacOS)
server=https://paste.i2pd.xyz/
proxy=http://127.0.0.1:3128
Option | Default | Possible value |
---|---|---|
server | https://paste.i2pd.xyz/ | Domain ending with slash |
mirrors | None | Domains separated with comma, like http://privatebin.ygg/,http://privatebin.i2p/ |
proxy | None | Proxy address starting with scheme http:// or socks5:// |
expire | 1day | 5min / 10min / 1hour / 1day / 1week / 1month / 1year / never |
burn | False | True / False |
discus | False | True / False |
format | plaintext | plaintext / syntaxhighlighting / markdown |
short | False | True / False |
short_api | None | tinyurl , clckru , isgd , vgd , cuttly , yourls , custom |
short_url | None | Domain name of shortener service for yourls , or URL (with required parameters) for custom |
short_user | None | Used only in yourls |
short_pass | None | Used only in yourls |
short_token | None | Used only in yourls |
output | None | Path to the directory where the received data will be saved |
no_check_certificate | False | True / False |
no_insecure_warning | False | True / False |
compression | zlib | zlib / none |
auth | None | basic , custom |
auth_user | None | Basic authorization username |
auth_pass | None | Basic authorization password |
auth_custom | None | Custom authorization headers in JSON format, like {'Authorization': 'Bearer token'} |
json | False | Print sending result in JSON format |
PBinCLI tool is started with pbincli
command. Detailed help on command usage is provided with -h
option:
pbincli {send|get|delete} -h
- Sending text:
pbincli send -t "Hello! This is a test paste!"
- Using stdin input to read text into a paste:
pbincli send - <<EOF
Hello! This is a test paste!
EOF
- Sending a file with text attached into a paste:
pbincli send -f info.pdf -t "I'm sending my document."
- Sending a file only with no text attached:
pbincli send -q -f info.pdf
It is also possible to set-up paste parameters such as "burn after reading", expiritaion time, formatting, enabling discussions and changing compression algorithm. Please refer to pbincli send -h
output for more information.
To retrieve a paste from a server, you need to use get
command with the paste info.
Paste info must be formated as pasteID#Passphrase
or just use full URL to a paste. Example:
pbincli get "xxx#yyy" ### receive paste xxx from https://paste.i2pd.xyz/ by default
pbincli get "https://example.com/?xxx#yyy" ### receive paste xxx from https://example.com/
To delete a paste from a server, use delete
command with paste info:
pbincli delete "pasteid=xxx&deletetoken=yyy" ### delete paste xxx from https://paste.i2pd.xyz/ by default
pbincli delete "https://example.com/?pasteid=xxx&deletetoken=yyy" ### delete paste xxx from https://example.com/
If you need to delete a paste on different server than the configured one, use -s
option together with the instance URL.
Here you can find additional examples.
Change settings to set server to http://privatebin.i2p/
and proxy to http://127.0.0.1:4444
. Configuration file for this example is:
server=http://privatebin.i2p/
proxy=http://127.0.0.1:4444
Example of alias to send a paste from stdin
direclty to I2P service:
alias pastei2p="echo 'paste the text to stdin' && pbincli send -s http://privatebin.i2p/ -x http://127.0.0.1:4444 -"
Call it by running pastei2p
in terminal.
This project is licensed under the MIT license, which can be found in the file LICENSE in the root of the project source code.