One-command tool
Turn a script into a tool anyone runs by name — nothing to copy, no folder to set up. They type one word, it fetches itself and runs, on any platform.
Reach for it when people will run the same thing over and over — a calculator, a cleanup step, a weekly report. Skip it when they need to read or change the code (that's a GitHub repo) or click a finished thing (that's a website or Artifact).
Last verified: 2026-06-07 · Confidence: high on the run-command, the registry-account step, and free public publishing.
It allows you to
- Hand over a verb, not a folder. They run
your-tooland it works — the code fetches itself, nothing to copy or open. - Keep the code out of reach. The recipient runs it but never sees or changes it. (Want them to? That's a repo.)
- Ship fixes silently. Publish a new version; they get it on their next run — no re-sending, no re-install.
- Let their agent run it. "Run
your-toolon this file" is a one-liner for their Claude Code — no human steps at all. - Reach anyone. Once published, the command is the whole share — paste it in chat, an email, a doc.
Ideal for
- A shared calculation people re-run — an org's forecasting calculator run the same way by everyone, instead of a spreadsheet each person copies and quietly breaks.
- A tidy-up step on messy input — "clean this BibTeX", "normalize this CSV of survey responses" — one command over a file, no UI to build, no notebook to hand around.
- An org routine anyone can fire — a make-the-weekly-report command, so it's not stuck on the one person who has the script.
- A research tool a whole field runs — like Simon Willison's
llm:uvx llm "your prompt"fetches and runs it, identically, for everyone querying models from the command line without touching the source.
Who can get in
- A public registry → anyone with the command. Put it on PyPI (Python) or npm (Node); anyone who knows the name can run it — public and searchable, the whole-internet rung.
[confirmed] - A private link → named people only. Skip the registry and run it straight from a private GitHub repo: only people invited there can fetch it, on the repo's own invite flow.
[confirmed] - No clean middle rung. A registry is all-or-nothing public; for "just my team," gate it behind that private repo — no org-wide-but-not-public publish here.
[estimate] - Cutting off is partial — and a public package can't be un-shared. Pull someone from the private repo and their next run fails; a copy already on their machine keeps working (true everywhere).
[estimate]
Which rungs it can hold. Named people (private repo) or the whole internet (public registry) — no just-you, no clean org-only. → Who can see it? [confirmed]
Handing data to the host. A public registry is readable by anyone, so publish nothing secret; the private path sits on GitHub. → Can you trust the company? [confirmed]
What you do to set it up
- Ask: tell Claude Code "package this script as a uvx-runnable command-line tool and publish it" (Python; say "as an npx tool" for Node). It writes the packaging, pauses for your account, publishes, and prints the command to share. Every later version: one sentence, ~0 effort.
- One-time, in order:
- Set up Claude Code — the thing that packages and publishes, ~10 min once.
- A registry account + publish token — the one step nobody can do for you: it's your name on the tool, so it needs an email confirm and 2FA
[confirmed]. ~10 min once (account + token + 2FA).[estimate]
- No account at all? If the code's in a public repo, people run it straight from the Git URL — zero signup → the no-account path.
[confirmed]
Full how-to — build, publish, version bumps, fixes — in Package a CLI tool.
What the other person does
- Run it: one command —
uvx your-tool(Python) ornpx your-tool(Node) — fetches and runs in one step, no install, no account.[confirmed] - Cost to them: ~2–3 min the first time if they need
uv(or Node) on their machine; ~0 after. Their agent can install and run it for them — then no human steps at all.[estimate] - Get your updates: just re-run it;
uvx your-tool@latestforces the newest.[confirmed] - Pay: nothing — running a public tool is free, no signup.
Other ways to share
- Everyone's on a Mac and you want it one hotkey away, not typed in a terminal? → a Raycast extension lives in their launcher — Mac-only, where this runs cross-platform.
- A routine their agent should absorb and run on its own, not a command a person types? → a Claude skill teaches their Claude the procedure.
- It should fire automatically on every change, not when someone runs it? → a GitHub Action runs the same step in CI on a trigger, where a tool waits to be typed.
- It needs to reach a live system you run — your database, an API? → an MCP server hands out the reach, not the code, with your keys on your side.
Sources
- Running tools with uvx — runs a published tool, or one from a repo, with no install
- Building and publishing a package (uv) —
uv build,uv publish, version bumps npm publish— must be signed in; new packages default to public- PyPI — register an account & mandatory 2FA
llm— Simon Willison's CLI for querying LLMs (in-the-wild example)- Package a CLI tool — the full how-to
Good to know
The fine print — a published name is public and near-permanent, 2FA is mandatory to publish, other distribution shapes (npm, Homebrew), and pricing — lives on One-command tool: the fine print.