Pixelbadger.Toolkit 4.1.3

There is a newer version of this package available.
See the version list below for details.
dotnet tool install --global Pixelbadger.Toolkit --version 4.1.3
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local Pixelbadger.Toolkit --version 4.1.3
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=Pixelbadger.Toolkit&version=4.1.3
                    
nuke :add-package Pixelbadger.Toolkit --version 4.1.3
                    

Pixelbadger.Toolkit

A CLI toolkit exposing varied functionality organized by topic.

Note: Search and MCP RAG functionality has been extracted to the separate Pixelbadger.Toolkit.Rag repository (pbrag CLI tool).

Installation

dotnet tool install --global Pixelbadger.Toolkit

Usage

pbtk [topic] [action] [options]

Get help for any command:

pbtk --help
pbtk strings reverse --help

Topics and Actions

strings

reverse
--in-file <path>    Input file path (required)
--out-file <path>   Output file path (required)
pbtk strings reverse --in-file hello.txt --out-file hello-reversed.txt
levenshtein-distance
--string1 <value>   First string or file path (required)
--string2 <value>   Second string or file path (required)
pbtk strings levenshtein-distance --string1 "hello" --string2 "world"
abjadify
--in-file <path>    Input file path (required)
--out-file <path>   Output file path (required)
pbtk strings abjadify --in-file article.txt --out-file article-abjad.txt
flesch-reading-ease
--in-file <path>    Input plain-text file path (required)
pbtk strings flesch-reading-ease --in-file article.txt

interpreters

brainfuck
--file <path>   Path to the Brainfuck program file (required)
pbtk interpreters brainfuck --file hello.bf
ook
--file <path>   Path to the Ook program file (required)
pbtk interpreters ook --file hello.ook
bf-to-ook
--source <path>   Path to the source Brainfuck file (required)
--output <path>   Path to the output Ook file (required)
pbtk interpreters bf-to-ook --source hello.bf --output hello.ook

images

steganography
--mode <encode|decode>   Operation mode (required)
--image <path>           Input image file path (required)
--message <text>         Message to encode (required for encode mode)
--output <path>          Output image file path (required for encode mode)
pbtk images steganography --mode encode --image photo.jpg --message "Secret" --output encoded.png
pbtk images steganography --mode decode --image encoded.png

web

serve-html
--file <path>    Path to the HTML file to serve (required)
--port <port>    Port to listen on (default: 8080)
pbtk web serve-html --file index.html --port 8080

openai

Requires OPENAI_API_KEY environment variable.

chat
--message <text>          Message to send (required)
--chat-history <path>     Path to chat history JSON file (optional, created if absent)
--model <name>            OpenAI model to use (default: gpt-5-nano)
pbtk openai chat --message "Hello" --chat-history ./chat.json
translate
--text <text>               Text to translate (required)
--target-language <lang>    Target language (required)
--model <name>              OpenAI model to use (default: gpt-5-nano)
pbtk openai translate --text "Hello, how are you?" --target-language "Spanish"
ocaaar
--image-path <path>   Path to the image file (required)
--model <name>        OpenAI model to use (default: gpt-5-nano)
pbtk openai ocaaar --image-path poster.jpg
corpospeak
--source <text|path>          Source text or file path (required)
--audience <name>             Target audience (required): csuite, engineering, product, sales,
                              marketing, operations, finance, legal, hr, customer-success
--user-messages <text|path>   Writing style examples (optional, multiple values allowed)
--model <name>                OpenAI model to use (default: gpt-5-nano)
pbtk openai corpospeak --source "API performance is great" --audience "csuite"
pbtk openai corpospeak --source update.txt --audience "engineering" --user-messages "Hey team" "Let's ship this"

oauth

OAuth authorities and discovered token endpoints must be absolute HTTPS URIs. The discovered token endpoint host must match the configured authority host before credentials are sent.

token
--profile <name>   Name of the OAuth profile to use (required)
pbtk oauth token --profile my-profile
profile add
--name <name>              Profile name (required)
--authority <uri>          OAuth authority URI (required)
--client-id <id>           OAuth client ID (required)
--client-secret <secret>   OAuth client secret (optional, prompted if omitted)
--scope <scope>            OAuth scope (optional)
pbtk oauth profile add --name my-profile --authority https://login.example.com/tenant --client-id abc123
profile update
--name <name>              Profile name to update (required)
--authority <uri>          New authority URI (optional)
--client-id <id>           New client ID (optional)
--client-secret <secret>   New client secret (optional)
--scope <scope>            New scope (optional)
profile delete
--name <name>   Profile name to delete (required)

crypto

Homomorphic encryption using the Paillier cryptosystem. Encrypted numbers support additive operations without decryption.

generate-key writes separate public and private key files. The public key file is safe to share; the private key file must be kept secret.

generate-key
--public-key-file <path>    Path to write the public key JSON file (required)
--private-key-file <path>   Path to write the private key JSON file (required)
pbtk crypto generate-key --public-key-file my.pub --private-key-file my.key
encrypt
--number <int>              Non-negative integer to encrypt (required)
--public-key-file <path>    Path to the public key JSON file (required)
--out-file <path>           Path to write the encrypted number JSON file (required)
pbtk crypto encrypt --number 37 --public-key-file my.pub --out-file a.enc
decrypt
--in-file <path>             Path to the encrypted number JSON file (required)
--private-key-file <path>    Path to the private key JSON file (required)
pbtk crypto decrypt --in-file a.enc --private-key-file my.key
add
--in-file1 <path>   First encrypted number JSON file (required)
--in-file2 <path>   Second encrypted number JSON file (required)
--out-file <path>   Path to write the encrypted sum JSON file (required)
pbtk crypto add --in-file1 a.enc --in-file2 b.enc --out-file sum.enc
subtract
--in-file1 <path>   Minuend encrypted number JSON file (required)
--in-file2 <path>   Subtrahend encrypted number JSON file (required)
--out-file <path>   Path to write the encrypted difference JSON file (required)
pbtk crypto subtract --in-file1 a.enc --in-file2 b.enc --out-file diff.enc
multiply
--in-file <path>    Encrypted number JSON file (required)
--scalar <int>      Non-negative plaintext scalar to multiply by (required)
--out-file <path>   Path to write the encrypted product JSON file (required)
pbtk crypto multiply --in-file a.enc --scalar 6 --out-file product.enc
encrypt-string
--string <text>             Plaintext string to encrypt, max 100 characters (required)
--public-key-file <path>    Path to the public key JSON file (required)
--out-file <path>           Path to write the encrypted string JSON file (required)
pbtk crypto encrypt-string --string "hello world" --public-key-file my.pub --out-file msg.estr
decrypt-string
--in-file <path>             Path to the encrypted string JSON file (required)
--private-key-file <path>    Path to the private key JSON file (required)
pbtk crypto decrypt-string --in-file msg.estr --private-key-file my.key
replace
--in-file <path>        Encrypted string JSON file (required)
--start <index>         Zero-based index of the first character to replace (required)
--replacement <text>    Plaintext replacement characters (required)
--out-file <path>       Path to write the updated encrypted string JSON file (required)
pbtk crypto replace --in-file msg.estr --start 6 --replacement "there" --out-file updated.estr
substring
--in-file <path>    Encrypted string JSON file (required)
--start <index>     Zero-based index of the first character to include (required)
--length <count>    Number of characters to include (optional, defaults to remainder)
--out-file <path>   Path to write the encrypted substring JSON file (required)
pbtk crypto substring --in-file msg.estr --start 6 --length 5 --out-file sub.estr

Requirements

  • .NET 9.0
  • OpenAI API key (for openai commands)
Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
6.8.0 46 7/24/2026
6.7.0 43 7/24/2026
6.6.0 49 7/24/2026
6.5.0 46 7/23/2026
6.4.0 128 6/21/2026
6.3.0 110 6/21/2026
6.2.0 110 6/21/2026
6.1.0 111 6/18/2026
6.0.0 114 6/18/2026
5.1.0 107 6/18/2026
5.0.0 125 5/28/2026
4.1.3 104 5/26/2026
4.1.2 101 5/26/2026
4.1.1 119 5/24/2026
4.0.1 123 4/30/2026
4.0.0 129 4/21/2026
3.3.0 118 4/21/2026
3.2.0 139 3/6/2026
3.1.0 126 2/12/2026
3.0.0 201 12/23/2025
Loading failed