_____ __ _____ ____ ____
/ ___// / / / | / __ \/ __ \
\__ \/ /_/ / /| | / /_/ / /_/ /
___/ / __ / ___ |/ _, _/ ____/
/____/_/ /_/_/ |_/_/ |_/_/
local dev toolkit
Go Version License TUI CLI Status Tests
sharp is a local, terminal-first developer toolkit. It combines a keyboard-driven TUI inspired by lazygit with scriptable CLI commands for JSON, encoding, crypto, time, text, network, conversion, JWT inspection, and generators.
The project is designed for everyday developer workflows: paste data, transform it, inspect the output, chain the result into another action, or call the same tool from shell scripts.
| Capability | Description |
|---|---|
| TUI | Numbered regions, bordered panes, keyboard-first navigation, status hints, and searchable help. |
| CLI | Every registered tool can be called from shell commands, files, or stdin. |
| JSON | Pretty, minify, validate, sort, escape, unescape, path query, and apply-output chaining in one workspace. |
| Tools | JSON, Encode, Crypto, Time, Text, Network, Convert, Inspector, and Generator workflows. |
| Local | Runs locally and avoids service dependencies for core transformations. |
Install the latest version from source:
go install github.com/gkmz/sharp/cmd/sharp@latest
Install from a local checkout:
git clone https://github.com/gkmz/sharp.git
cd sharp
go install ./cmd/sharpRun directly during development:
go run ./cmd/sharp
Start the interactive app:
sharp
The TUI is organized into four numbered regions:
| Region | Purpose |
|---|---|
1 Search |
Search categories, subcategories, and concrete tools. |
2 Categories |
Select a category or subcategory. Parent categories with subcategories are headers only. |
3 Tools |
Select tools in the current subcategory. JSON uses one Workspace page. |
4 Workspace |
Work with input, options/path, actions, and output. |
Common shortcuts:
| Key | Action |
|---|---|
1, 2, 3, 4 |
Focus a region. |
/ |
Open search. |
j / k |
Move in the category list. |
h / l |
Move between tools in region 3. |
i or Enter |
Edit input when the current tool accepts input. |
o |
Edit options, or JSON path in the JSON workbench. |
r |
Run the current tool or default action. |
v |
Paste clipboard data into input. |
x / X |
Clear input / clear output. |
y |
Copy trimmed output. |
s |
Save trimmed output to sharp-output.txt. |
p |
Pipe output back into input for chaining. |
ctrl+u / ctrl+d |
Scroll output by half a page. |
alt+u / alt+d |
Scroll input by half a page. |
? |
Open searchable command help. |
q |
Quit from normal mode. |
List tools:
sharp list
Print version information:
sharp version
Examples:
echo '{"data":{"id":1}}' | sharp json pretty echo '{"data":{"id":1}}' | sharp json get --path data.id sharp b64 encode hello sharp b64 decode aGVsbG8= sharp url encode "a=b&c=d" sharp hash sha256 hello sharp hmac sha256 --key secret hello sharp time now sharp time from 1714723200 sharp uuid v4 sharp password --length 32 sharp jwt decode "$JWT"
CLI input can come from an argument, a file path, or stdin.
| Category | Tools |
|---|---|
| JSON | pretty, minify, validate, get, sort, escape, unescape |
| Encode | Base64, Base64 URL, raw Base64 URL, URL, Hex, HTML, Unicode |
| Crypto | CRC32, MD5, SHA1, SHA224, SHA256, SHA384, SHA512, HMAC SHA256, HMAC SHA512 |
| Time | current time, timestamp to time, time to timestamp |
| Text | uppercase, lowercase, trim, case conversion, sort, unique, count, regex test, regex replace |
| Network | URL parse, query parse, DNS lookup, CIDR parse |
| Convert | JSON to YAML, YAML to JSON, CSV to JSON, HTTP headers to JSON |
| Inspector | JWT decode without signature verification |
| Generator | UUID v4, random password, random token |
Requirements:
- Go 1.25.1 or newer matching
go.mod.
Useful commands:
make test
make run
make build
make fmt
make tidyBuild with a release version:
go build -ldflags "-X github.com/gkmz/sharp/internal/cli.Version=0.1.0" ./cmd/sharpIn sandboxed environments where the default Go build cache is not writable, use:
GOCACHE=/private/tmp/sharp-gocache go test ./...
GOCACHE=/private/tmp/sharp-gocache go vet ./...Project layout:
cmd/sharp CLI entrypoint
internal/cli Cobra command tree
internal/tui Bubble Tea TUI
internal/tools Built-in tools and default registry
pkg/tool Public tool contract and registry
docs Product and development notes
Apache License 2.0. See LICENSE.