Turn GitHub Gists into ephemeral command-line tools with gixt. Retrieve prompts and files by name, or run scripts on demand. Give Gists friendly aliases, and review unfamiliar revisions before running them.
gixt cat <gist-name> | agent
gixt run <gist-name> [-- <args>]- Retrieve any Gist by name, ID, URL, or
owner/gist. No setup needed for one-offs. - Run code explicitly with
gixt run; bare targets retrieve content. - Remember Gists you use with
gixt add(orgixt run --add) so they get a friendly name. - Pin a gist to a fixed revision with
gixt pin; metadata updates and cache pruning preserve it. - Trust-on-first-use per commit: changed revisions prompt again.
gixt trust mineexplicitly snapshots your current gists. - Inspect metadata with
gist showand preview execution with--dry-runwithout changing trust approvals. - Content cache on by default (ETag/304, retaining latest and pinned revisions);
--no-cacheopts out. - No
ghdependency; public gists work without any token. - Command-line friendly: gist output goes to stdout, gixt chatter to stderr, exit codes and signals are propagated.
Linux and macOS:
curl -fsSL https://gixt.leolaurindo.com/install.sh | shWindows PowerShell:
irm https://gixt.leolaurindo.com/install.ps1 | iexThe installer downloads the matching GitHub release, verifies its SHA-256 checksum, and installs it for the current user. Review the shell or PowerShell script before running it if preferred.
- Go to the releases page and download the appropriate binary for your OS.
Requires Go 1.21 or newer:
go install github.com/leolaurindo/gixt/cmd/gixt@latestbrew install leolaurindo/tap/gixtgo build -o bin/gixt ./cmd/gixtFor manual downloads and source builds, place gixt (macOS/Linux) or gixt.exe (Windows) somewhere on your PATH.
gixt self update-check
gixt self updateStandalone installations update to a checksum-verified release binary. This
includes Go-installed and source-built copies; custom build settings are replaced.
Homebrew installations receive brew upgrade gixt instructions instead. Other
package managers are not automatically detected; update those through their manager.
See the CLI usage guide for details.
# retrieve any gist by ID or URL (no setup)
gixt cat 1234567890abcdef
gixt cat https://gist.github.com/you/1234567890abcdef
# run code explicitly
gixt run https://gist.github.com/you/1234567890abcdef
# remember gists you use so they get a friendly name
gixt run 1234567890abcdef --add # remembered as its file basename
gixt add hex23-git/ssh-helper.sh --as ssh # remember with a custom name
gixt add owner <username> # remember all of a user's gists
gixt add mine # remember all of your gists
# see known or remote gists
gixt list
gixt list <username> --limit 30
# retrieve by friendly name
gixt cat ssh
# optional: log in for higher rate limits / private gists / mutations
gixt auth loginOther examples:
# one-off retrieval, never remembered
gixt cat leolaurindo/hello-world
# run offline from the cache
gixt run --offline ssh
# run a python gist with your project's venv
gixt run --python .venv/bin/python app.py
# inspect before running
gixt gist show leolaurindo/hello-world
gixt run --dry-run ssh
# create a secret gist or update its files (requires authentication)
gixt gist create prompt.md --description "Review prompt" ## --public should be explicit
gixt gist update <target> prompt.md
# permanently delete a remote gist (prompts; --yes confirms non-interactively)
gixt gist delete <target>
# only forget a local registration, without deleting anything on GitHub
gixt remove <target>
# pin a gist to its current revision so runs are stable
gixt pin ssh
gixt pin list
# approve all of your gists at their current commits
gixt trust mine
gixt trust listThe gixt skill teaches agents how to retrieve gist content and run scripts with gixt. Install the CLI first, then ask your agent:
Read https://github.com/leolaurindo/gixt/blob/main/skills/gixt/SKILL.md and install it in your skills directory.
Or install manually on the directory your agent discover skills from, such as~/.agents/skills:
mkdir -p ~/.agents/skills/gixt
curl -fsSL https://raw.githubusercontent.com/leolaurindo/gixt/main/skills/gixt/SKILL.md \
-o ~/.agents/skills/gixt/SKILL.mdgixt uses trust-on-first-use keyed by commit:
- The first time you run a gist, you are prompted (owner, description, commit, files). On
y, that exact commit is recorded as trusted. - Running the currently approved commit again does not re-prompt.
- If the gist has a new commit, you are prompted again — even for your own gists. That way a changed gist can't run silently.
gixt trust mineexplicitly snapshots and approves the exact current commit of every gist you own. Later changes still prompt.- Inspect approvals with
gixt trust list; revoke them withgixt trust remove <target>orgixt trust clear. -yskips the prompt for one run; non-interactive runs refuse to prompt and tell you to pass-y.
- CLI usage, command tree, and resolution details
- Caching and index locations/modes
- Trust model and safety
- Delete the installed binary.
- Remove config/cache dirs to clear known gists, trust approvals, auth, and cached contents:
- Windows: config
%APPDATA%\gixt, cache%LOCALAPPDATA%\gixt - macOS: config
~/Library/Application Support/gixt, cache~/Library/Caches/gixt - Linux: config
~/.config/gixt, cache~/.cache/gixt
- Windows: config
Contributions are welcome! I will eventually write contribution guidelines, but for now, feel free to open issues or pull requests.
Freely inspired by the user experience uvx and npx provide.
