Skip to content

gkmz/sharp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Sharp

   _____ __  _____    ____  ____
  / ___// / / /   |  / __ \/ __ \
  \__ \/ /_/ / /| | / /_/ / /_/ /
 ___/ / __  / ___ |/ _, _/ ____/
/____/_/ /_/_/  |_/_/ |_/_/
        local dev toolkit

Go Version License TUI CLI Status Tests

Chinese Documentation

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.

Highlights

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.

Installation

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/sharp

Run directly during development:

go run ./cmd/sharp

TUI Usage

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.

CLI Usage

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.

Tool Categories

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

Development

Requirements:

  • Go 1.25.1 or newer matching go.mod.

Useful commands:

make test
make run
make build
make fmt
make tidy

Build with a release version:

go build -ldflags "-X github.com/gkmz/sharp/internal/cli.Version=0.1.0" ./cmd/sharp

In 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

Documentation

License

Apache License 2.0. See LICENSE.

About

A local developer toolkit for terminal-first workflows.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Contributors