0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【pkgx】bunx/uvxを超えた?何でも即実行

0
Last updated at Posted at 2026-04-15

結論:pkgxでできること

  • どんなツールもインストールなしで即実行
  • システム環境を汚さない(~/.pkgxに隔離)
  • バージョン指定も自由(python@3.12node@18など)
echo '{"name":"test"}' | pkgx jq '.name'

こんな人におすすめ

  • 一時的にツールを試したいが環境を汚したくない
  • ffmpegやjqなど、言語ランナーでは動かないツールも使いたい

pkgxとは

Homebrewの作者Max Howell氏による、単一バイナリの「万能ツールランナー」。

既存ツールとの比較

ツール 対象 用途
npx Node.js npmパッケージ実行
bunx Node.js npmパッケージ実行(単一バイナリ)
uvx Python PyPIパッケージ実行(単一バイナリ)
pipx Python PyPIパッケージ実行
mise 多言語 ランタイム管理
pkgx 多言語 mise/uvx/bunxを含むツール群

言語やエコシステムに依存しない。Node.js、Python、Ruby、Go、Rustはもちろん、ffmpegやjqなどのCLIツールまで対応。

インストール

egetでGitHub Releaseから直接取得。egetについてはGitHub Releaseを5秒でインストールする方法【Eget】を参照。

eget pkgxdev/pkgx --asset 'tar.gz'

基本的な使い方

pkgxだけでuvx/bunx/miseも動く

pkgxはuvx、bunx、mise自体も実行できる。pkgxさえあれば他のランナーのインストールすら不要。

# uvxでPythonツールを実行
pkgx uvx httpie --version

# bunxでnpmパッケージを実行
pkgx bunx cowsay "hello"

# mise execでバージョン指定実行
pkgx mise exec node@18 -- node --version

実践例

JSONを整形(jq)

echo '{"users":[{"name":"alice"},{"name":"bob"}]}' | pkgx jq '.users[].name'

動画変換(ffmpeg)

pkgx ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4

バージョン指定でPythonスクリプト実行

pkgx python@3.11 -c "import sys; print(sys.version)"

shebangで依存関係ごと1ファイルに

pkgxのshebangを使えば、スクリプトファイル単体で実行環境と依存関係が完結する。Gemfileなしで配布可能。

loc.rb

#!/usr/bin/env -S pkgx +tokei ruby

# tokeiでコード行数を集計してRubyで整形
require 'json'

dir = ARGV[0] || '.'
json = `tokei -o json "#{dir}"`
data = JSON.parse(json)

total = data['Total']
puts "コード統計: #{dir}"
puts "  総行数: #{total['code']} 行"
puts "  コメント: #{total['comments']} 行"
puts "  空行: #{total['blanks']} 行"
./loc.rb ./src

使えるツールの調べ方

GitHub pantryで一覧

projects/ディレクトリ配下にパッケージ定義がある。ディレクトリ名がそのままツール名として使える。

コマンドで確認

pkgx -Q jq

出力があればpkgxで実行可能。

まとめ

やりたいこと コマンド
ツールを即実行 pkgx <tool>
バージョン指定 pkgx <tool>@<version>
利用可能か確認 pkgx -Q <tool>
依存追加してスクリプト #!/usr/bin/env -S pkgx +<dep> <runtime>

pkgxがあれば、どんなツールもインストールなしで即実行できる。shebangを使えば依存関係込みの単一ファイルスクリプトも配布可能になる。

参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?