Skip to main content

sleight-of-hand

A multicall CLI wrapper that transparently extends existing command-line tools with custom subcommands.

How it works

sleight-of-hand is a single Go binary that impersonates other CLI tools via symlinks. When invoked, it checks os.Args[0] to determine which tool it's acting as:

  • If it recognizes a custom subcommand, it handles it directly
  • Otherwise, it forwards all arguments to the real binary transparently (preserving stdin/stdout/stderr, signals, and exit codes)

Build

cd sleight-of-hand
go build -o sleight-of-hand .

Install

# Install symlinks for all registered tools
./sleight-of-hand install

# Install a specific tool
./sleight-of-hand install gh

# Custom bin directory
./sleight-of-hand install --bin-dir /usr/local/bin

Uninstall

# Remove all symlinks (only removes symlinks pointing to sleight-of-hand)
./sleight-of-hand uninstall

# Remove a specific tool
./sleight-of-hand uninstall gh

Wrapped tools

gh (GitHub CLI)

Custom subcommands:

  • gh pr retry <PR#> - Retry all failed CI jobs for a pull request
    • --repo, -R - Specify repository in OWNER/REPO format

All other gh commands are forwarded to the real GitHub CLI.

Adding a new tool

  1. Create a package under tools/<name>/
  2. Implement func Run(args []string) int
  3. Register in internal/dispatch/dispatch.go
  4. Run sleight-of-hand install <name>

Metadata

Release files for sleight-of-hand 0.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for sleight-of-hand 0.0.4
File
sleight_of_hand-0.0.4-py3-none-win_arm64.whl Python 3 none Windows ARM64 Details
sleight_of_hand-0.0.4-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
sleight_of_hand-0.0.4-py3-none-manylinux_2_17_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
sleight_of_hand-0.0.4-py3-none-manylinux_2_17_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
sleight_of_hand-0.0.4-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
sleight_of_hand-0.0.4-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details

Total release size: 8.3 MB

Release files / sleight_of_hand-0.0.4-py3-none-win_arm64.whl

Download URL sleight_of_hand-0.0.4-py3-none-win_arm64.whl
Size 1.4 MB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
0c8fd524ff5507188b17dfbc548c0f655edd91ace7e86ac5c8b33884f699db60
BLAKE2b-256 checksum
How to use checksums
661111a2a1e07dcd91a88a18f6cca43f8b1e2f3e015e4d4cbda55acfa4742548
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / sleight_of_hand-0.0.4-py3-none-win_amd64.whl

Download URL sleight_of_hand-0.0.4-py3-none-win_amd64.whl
Size 1.4 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
39cb7fe336a8be3de0cc5dd625531203b17108c03773c2b89ba327a5edc447cd
BLAKE2b-256 checksum
How to use checksums
6830d4fd26f14cea5fc3ae478b75befc405c5461debd7ece796d55272f37844b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / sleight_of_hand-0.0.4-py3-none-manylinux_2_17_x86_64.whl

Download URL sleight_of_hand-0.0.4-py3-none-manylinux_2_17_x86_64.whl
Size 1.4 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
153cac89fbcbf121635ca6536111b81a4a542378b3002882fdf2d6a3bd11b756
BLAKE2b-256 checksum
How to use checksums
804926f82a609c7555f678d3b6595768d135c942457dff3ac349c78cd67a9565
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / sleight_of_hand-0.0.4-py3-none-manylinux_2_17_aarch64.whl

Download URL sleight_of_hand-0.0.4-py3-none-manylinux_2_17_aarch64.whl
Size 1.4 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
770b91ca013ffc2afcc02c039ce4001fafeea1290e7b063c11af9519d6ed7bb3
BLAKE2b-256 checksum
How to use checksums
753a775c05de4b1b3742d1598dc45a3ac0d430c6fa0c926fce18493fca117305
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / sleight_of_hand-0.0.4-py3-none-macosx_11_0_arm64.whl

Download URL sleight_of_hand-0.0.4-py3-none-macosx_11_0_arm64.whl
Size 1.4 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
195106a7ff9eb6ce185701bea8307caf4ccd282fe3c7bb1f6dca4d453a7fe3a3
BLAKE2b-256 checksum
How to use checksums
def586502ad4cd041304bacaaa02bbd2c4c05225f9c071d26ac6eb7570c9ec4f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / sleight_of_hand-0.0.4-py3-none-macosx_10_12_x86_64.whl

Download URL sleight_of_hand-0.0.4-py3-none-macosx_10_12_x86_64.whl
Size 1.4 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
96657460da4937af4856a6cbf0f1b031d27d105afc9728343687eea747b52328
BLAKE2b-256 checksum
How to use checksums
6588d4fd0e8fd8686662a07d01ade97c34622cb6ac84c6ee9d1f405e497afc06
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.0.4 This release

6 release files

0.0.3

6 release files

0.0.2

5 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page