Pixelbadger.Toolkit 6.2.0

There is a newer version of this package available.
See the version list below for details.
dotnet tool install --global Pixelbadger.Toolkit --version 6.2.0
                    
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 6.2.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=Pixelbadger.Toolkit&version=6.2.0
                    
nuke :add-package Pixelbadger.Toolkit --version 6.2.0
                    

Pixelbadger.Toolkit

A CLI toolkit exposing varied functionality organized by topic. The CLI uses Spectre.Console for rich terminal output — colour-coded success and error messages, formatted tables for data-heavy commands, and styled interactive prompts for secure input.

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
report

Performs a full text analysis including word count, sentence averages, page count, Flesch Reading Ease score, reading time, and more. Provide either a file path or a direct string.

--in-file <path>    Input file path (one of --in-file or --string required)
--string <text>     Input text string (one of --in-file or --string required)
pbtk strings report --in-file article.txt
pbtk strings report --string "The quick brown fox jumps over the lazy dog."

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

llm

Requires OPENAI_API_KEY environment variable (when using the default OpenAI provider).

All commands automatically persist conversation history to a SQLite database at ~/.pbtk/history.db. Use llm history to inspect and manage sessions.

chat
--message <text>            Message to send (required)
--session-id <id>           Session ID to continue a previous conversation (optional, omit to start new)
--model <name>              Model to use (default: gpt-5-nano)
--reasoning-effort <level>  Reasoning effort level for o-series models: low, medium, high (optional)
pbtk llm chat --message "Hello"
pbtk llm chat --message "Continue our conversation" --session-id 42
pbtk llm chat --message "Solve this hard problem" --reasoning-effort high

The session ID is written to stderr after each call so it can be captured for follow-up messages.

translate
--text <text>               Text to translate (required)
--target-language <lang>    Target language (required)
--model <name>              Model to use (default: gpt-5-nano)
pbtk llm translate --text "Hello, how are you?" --target-language "Spanish"
ocaaar
--image-path <path>   Path to the image file (required)
--model <name>        Model to use (default: gpt-5-nano)
pbtk llm 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>                Model to use (default: gpt-5-nano)
pbtk llm corpospeak --source "API performance is great" --audience "csuite"
pbtk llm corpospeak --source update.txt --audience "engineering" --user-messages "Hey team" "Let's ship this"
history list

Lists all stored sessions with their ID, command, creation time, and token usage.

pbtk llm history list
history delete

Deletes a session and all its stored messages.

--session-id <id>   ID of the session to delete (required)
pbtk llm history delete --session-id 42

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

markov

Word-level Markov chain text generation. The model is stored in a .Markov subfolder relative to the current working directory.

train

Trains a Markov chain model from a source text file.

--source <path>   Path to the source text file (required)
pbtk markov train --source corpus.txt
complete

Generates a text completion using the trained Markov chain model.

--text <text>     Input text to complete (required)
--count <n>       Number of words to generate (default: 50)
pbtk markov complete --text "The quick brown"
pbtk markov complete --text "Once upon a time" --count 100

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