5 stable releases
2.3.1 | Mar 30, 2024 |
---|---|
2.3.0 | Mar 17, 2024 |
2.2.1 | Jul 10, 2023 |
2.2.0 | Dec 12, 2021 |
2.1.0 | Dec 10, 2021 |
#708 in Command line utilities
224 downloads per month
31KB
592 lines
Privatebin CLI
pbcli is a command line client which allows to upload and download pastes from privatebin directly from the command line.
It is dual licensed under MIT or the UNLICENSE.
Table of Contents
Installation
You can find pre-compiled binaries under the release tab in github.
For Archlinux, it is available inside the AUR.
Building
pbcli is written in Rust, so you will need a rust toolchain to build it.
git clone https://github.com/Mydayyy/pbcli.git
cd pbcli
cargo build --release
./target/release/pbcli --version
User Guide
pbcli is simple to use and only involves a few flags. The only
needed argument is either the positional argument URL
or the option flag
host
. If both are provided the positional argument URL takes
precedence. To avoid specifying the host / url everytime you can
take advantage of a config file as described here.
When posting a paste you can specify --json
to receive post details. The output
includes the base58 encoded key used to encrypt/decrypt the paste
and can be used to construct the paste url.
Example output:
{"deletetoken":"ajae8c36aa945ff93a04bef4ff08fa505f96d49e1z28eb09a36l797c2eaeg952",
"id":"e6a227cfbc0fec3e",
"status":0,
"url":"/?e6a227cfbc0fec3e",
"bs58key":"31rvVHezWQH7sh7tgZGxfQJGKK4WLLCwFBL64Jr5nhLu"}
Example usages to get a paste:
pbcli https://privatebin.net/?f37ca34e72e2ef77#G8wFGVnpSb4pogzGbMMcgbDgeYkQ5cfcWkcsVwTQJmzd
pbcli --host https://privatebin.net/?f37ca34e72e2ef77#G8wFGVnpSb4pogzGbMMcgbDgeYkQ5cfcWkcsVwTQJmzd
Example usages to post a new poste
echo 'TestPaste' | pbcli --host https://privatebin.net/
echo 'TestPaste' | pbcli https://privatebin.net/ --json
echo 'TestPaste' | pbcli --host https://privatebin.net/ --expire=1hour
echo '## Title\nSome Markdown' | pbcli https://privatebin.net/ --format markdown
echo 'TestPaste' | pbcli --host https://privatebin.net/ --burn
CLI Help:
pbcli 2.3.1
Mydayyy <dev@mydayyy.eu>
pbcli is a command line client which allows to upload and download
pastes from privatebin directly from the command line.
Project home page: https://github.com/Mydayyy/pbcli
USAGE:
pbcli [OPTIONS] [URL]
ARGS:
<URL>
OPTIONS:
--burn
--discussion
--download <FILE>
--expire <EXPIRE> [default: 1week]
--format <FORMAT> [default: plaintext] [possible values: plaintext, syntax, markdown]
-h, --help Print help information
--host <HOST>
--json
--oidc-client-id <OIDC_CLIENT_ID> client id to send to the token endpoint
--oidc-password <OIDC_PASSWORD> password to send to the token endpoint
--oidc-token-url <OIDC_TOKEN_URL> oidc token endpoint from which to obtain an access token
--oidc-username <OIDC_USERNAME> username to send to the token endpoint
--overwrite overwrite the file given with --download if it already exists
--password <PASSWORD>
--size-limit <SIZE_LIMIT> Prompt if the paste exceeds the given size. Fail in non-interactive environments
--upload <FILE>
-V, --version Print version information
Configuration File
pbcli supports a configuration file to fine tune the default behaviour.
You need to set the environment variable PBCLI_CONFIG_PATH
to a file path. The file
needs to contain flags you want to pass to pbcli, one per line.
Lines starting with a # are ignored. An useful case for this may be
setting a default instance to use by setting the --host argument.
Instead of typing echo 'test' | pbcli https://privatebin.net/
you'll only need
to type echo 'test' | pbcli
Example config:
--host=https://privatebin.net/
--expire=1month
Roadmap
- Descriptive error messages
- Add support for auth mechanism
- Basic auth
oauthAdded in v2.2.0 using Resource Owner Password Credential Grant flow
Add support for file attachmentsAdded in v2.1.0
Dependencies
~13–28MB
~519K SLoC