OpenGyver

March 31, 2026 ยท View on GitHub

openGyver

A Swiss-army-knife CLI tool with 47 commands and 180+ subcommands for everyday conversions, encoding, hashing, generation, formatting, validation, and more. Built in Go for zero-dependency, single-binary distribution across Linux, macOS, and Windows.

Designed to be used standalone, or hooked into CI/CD pipelines, shell scripts, and AI agents.

Installation

Claude Code Plugin (use openGyver as AI tools)

/plugin marketplace add https://raw.githubusercontent.com/create-flow-ai/openGyver/main/plugin/marketplace.json
/plugin install opengyver
/reload-plugins

This gives Claude 16 native MCP tools for encoding, hashing, conversion, generation, weather, stocks, and more.

CLI

# Homebrew
brew tap create-flow-ai/tap
brew install opengyver

# Go
go install github.com/mj/opengyver@latest

# From source
git clone https://github.com/create-flow-ai/openGyver.git
cd openGyver && go build -o openGyver .

Quick Start

openGyver convert 100 cm in                    # unit conversion
openGyver convert 100 usd eur                  # live currency rates
openGyver encode base64 "hello world"           # encoding
openGyver hash sha256 "hello"                   # hashing
openGyver generate password --length 32         # password generator
openGyver stock AAPL -f price                   # stock price
openGyver epoch                                 # current Unix epoch
openGyver timex now --tz Asia/Tokyo             # time in Tokyo
openGyver qr "https://example.com"              # QR code in terminal
openGyver uuid                                  # random UUID v4
openGyver json format '{"a":1}'                 # JSON beautify
openGyver validate html --file index.html       # HTML validation
openGyver format sql "select * from users"      # SQL formatting
openGyver color convert "#ff5733" --to rgb      # color conversion
openGyver finance loan --principal 300000 --rate 6.5 --years 30
openGyver testdata person --count 5 -j          # fake test data
openGyver weather "New York"                    # current weather
openGyver weather Tokyo --date 2024-12-25       # historical weather

Output Modes

Every command supports multiple output modes:

ModeFlagDescription
JSON--json / -jStructured JSON output for scripting and piping
Abbreviated-a, -f, -bSingle value output (command-specific)
Quiet--quiet / -qSuppress confirmation messages (file converters)
openGyver convert -j 100 cm in                 # {"input_value":100,"output_value":39.37,...}
openGyver stock AAPL -f price                  # 248.80
openGyver timex now -b                         # 2026-03-28T08:44:46-04:00
openGyver convertFile data.csv -o data.xlsx -q # silent

Commands

Conversion Tools

CommandDescriptionDocs
convertUnit & currency conversions (9 categories, 38 currencies)details
convertAudioAudio format conversion (33 formats via ffmpeg)details
convertCADCAD file conversion (DWG, DXF, DWF)details
convertEbookEbook format conversion (25 formats via Calibre)details
convertFileDocument & spreadsheet conversion (CSV, XLSX, MD, HTML, DOCX, PDF, PS)details
convertFontFont format conversion (TTF, OTF, WOFF, WOFF2, EOT + 7 more)details
convertImageImage format conversion (PNG, JPEG, GIF, BMP, TIFF, WebP, RAW, SVG)details
convertPresentationPresentation conversion (PPTX, KEY, ODP via LibreOffice)details
convertVectorVector graphics conversion (SVG, EPS, AI, CDR + 20 more)details
convertVideoVideo format conversion (37 formats via ffmpeg)details
toGifCreate animated GIF from imagesdetails
toIcoCreate Windows ICO from imagesdetails
trimVideoTrim video to time range (stream copy or re-encode)details
extractFrameExtract frames from animated GIF/APNGdetails

Encoding & Hashing

CommandDescriptionDocs
encodeEncode/decode: Base64, Base32, Base58, URL, HTML, hex, binary, ROT13, Morse, Punycode, JWTdetails
hashHashing: MD5, SHA-1/256/384/512, HMAC, bcrypt, CRC32, Adler-32details
checksumFile checksum calculator and verifier (MD5, SHA-1/256/512, CRC32)details

Data & Format Tools

CommandDescriptionDocs
dataformatConvert between YAML, TOML, XML, CSV, and JSONdetails
jsonJSON format, minify, validate, path query, escape/unescapedetails
formatFormat/beautify/minify HTML, XML, CSS, SQLdetails
validateValidate HTML, CSV, XML, YAML, TOMLdetails
diffCompare files: text (unified diff), JSON (structural), CSVdetails
regexRegex test, replace, extractdetails

Generators

CommandDescriptionDocs
generatePassword, passphrase, API key, secret, OTP, nanoid, snowflake, short IDdetails
uuidUUID v4 (random) and v6 (time-sorted)details
qrQR code generator (ASCII terminal, PNG, SVG)details
barcodeBarcode generator (Code128, EAN-13, QR, DataMatrix)details
testdataFake data: people, CSV, JSON, random numbersdetails

Time & Date

CommandDescriptionDocs
epochUnix epoch: current time, add/subtract durationsdetails
timexTime tools: now, to-utc, to-tz, to-unix, from-unix, format, diff, add, infodetails
cronCron expression parser, validator, and next-run calculatordetails

Lookup & Reference

CommandDescriptionDocs
stockStock ticker lookup from 35+ global markets (Yahoo Finance, no API key)details
weatherWeather: current, forecast (16 days), historical (back to 1940) for any citydetails
networkDNS lookup, public IP, WHOIS, CIDR calculator, URL parser, HTTP status codesdetails
colorColor convert (hex/RGB/HSL/CMYK), WCAG contrast, palette, name lookupdetails
numberNumber base conversion (2-36), Roman numerals, IEEE 754details
mimeMIME type lookup, reverse lookup, and file detectiondetails
asciiASCII art banners, table reference, character lookupdetails
phonePhone number formatter, validator, and country code lookupdetails

Text Tools

CommandDescriptionDocs
textCount, case convert, reverse, sort, dedupe, slug, lorem, diff, wrap, trim, replacedetails

Math & Calculators

CommandDescriptionDocs
mathMath expression evaluator, percentage, GCD, LCM, factorial, Fibonaccidetails
chmodUnix file permission calculator (octal/symbolic/umask)details

File Tools

CommandDescriptionDocs
pdfPDF merge, split, page count, metadata (pure Go, no external tools)details

Crypto & Security

CommandDescriptionDocs
cryptoAES encrypt/decrypt, RSA keygen, SSH keygen, self-signed cert, CSRdetails

Science & Engineering

CommandDescriptionDocs
electricalOhm's law, resistor color codes, LED resistor, voltage dividerdetails
geoHaversine distance, DMS/decimal converter, lat/lon to UTMdetails
accessibilityWCAG contrast checker, Flesch/Gunning Fog readability scoresdetails

Finance

CommandDescriptionDocs
financeLoan/mortgage, compound interest, ROI, tip, tax, salary, discount, margindetails

Archive

CommandDescriptionDocs
archiveCreate/extract ZIP, TAR, TAR.GZ, 7Z, RARdetails

Claude Code Integration

openGyver is available as a Claude Code plugin with native MCP tools. Once installed, Claude can call openGyver commands directly.

Install as Claude Code Plugin

Option A: MCP server (recommended)

Add to your Claude Code MCP config (~/.claude/mcp.json):

{
  "mcpServers": {
    "opengyver": {
      "command": "npx",
      "args": ["-y", "mcp-server-opengyver"]
    }
  }
}

Or clone and build locally:

git clone https://github.com/create-flow-ai/openGyver.git
cd openGyver/plugin/mcp-server
npm install && npm run build

# Add to ~/.claude/mcp.json:
# "opengyver": { "command": "node", "args": ["/path/to/plugin/mcp-server/dist/index.js"] }

Option B: Skill file (simplest)

Copy the skill into your project:

mkdir -p .claude/skills
cp -r openGyver/plugin/skills/opengyver .claude/skills/

This gives Claude 16 native tools: opengyver_encode, opengyver_hash, opengyver_convert, opengyver_json, opengyver_generate, opengyver_color, opengyver_time, opengyver_network, opengyver_dataformat, opengyver_validate, opengyver_format, opengyver_crypto, opengyver_weather, opengyver_stock, opengyver_math, and opengyver_run (catch-all).

See plugin/README.md for details.

Plugin Architecture

openGyver uses a plugin-based architecture where each command is a self-contained Go package. Adding a new command requires no changes to existing code.

Adding a New Command

  1. Create a new package under cmd/:
// cmd/yourcommand/yourcommand.go
package yourcommand

import (
    "github.com/mj/opengyver/cmd"
    "github.com/spf13/cobra"
)

var yourCmd = &cobra.Command{
    Use:   "yourcommand <args>",
    Short: "One-line description",
    Long:  `Detailed help text with examples.`,
    RunE: func(c *cobra.Command, args []string) error {
        // implementation
        return nil
    },
}

func init() {
    yourCmd.Flags().StringVarP(&output, "output", "o", "default", "description")
    cmd.Register(yourCmd)
}
  1. Add a blank import in main.go:
_ "github.com/mj/opengyver/cmd/yourcommand"
  1. Build and run. Your command appears in openGyver --help.

Building from Source

git clone https://github.com/create-flow-ai/openGyver.git
cd openGyver
go build -o openGyver .

Run tests:

go test ./...

Cross-Compilation

GOOS=linux   GOARCH=amd64 go build -o openGyver-linux-amd64 .
GOOS=linux   GOARCH=arm64 go build -o openGyver-linux-arm64 .
GOOS=windows GOARCH=amd64 go build -o openGyver-windows-amd64.exe .
GOOS=darwin  GOARCH=arm64 go build -o openGyver-darwin-arm64 .
GOOS=darwin  GOARCH=amd64 go build -o openGyver-darwin-amd64 .
GOOS=freebsd GOARCH=amd64 go build -o openGyver-freebsd-amd64 .

Each produces a single static binary with zero runtime dependencies.