stetdocdocs

Install

View as markdown

Every way to install stetdoc is here, with what each one costs an agent per call and how to update, remove or script the install.

Pick a channel

Every channel installs the same binary. Homebrew comes first, and uv is the pick on a machine without it.

ChannelCommandPlatformsNotes
Homebrewbrew install clauseo-ai/tap/stetdocmacOS, LinuxFrom the tap clauseo-ai/homebrew-tap. Each call starts in about 5 ms
uvuv tool install stetdocmacOS, Linux, WindowsThe wheel holds the native binary, so no Python runs after the install. Each call starts in about 5 ms
pipxpipx install stetdocmacOS, Linux, WindowsThe same wheel as uv. Each call starts in about 5 ms
npmnpm install -g stetdocmacOS, Linux, Windowsnpm swaps its Node launcher for the binary when install scripts run. Each call then starts in about 6 ms
Install scriptcurl -fsSL https://raw.githubusercontent.com/clauseo-ai/stetdoc/main/packaging/install.sh | shmacOS, LinuxChecks the SHA-256 and installs to ~/.local/bin. Each call starts in about 5 ms
Cargocargo install stetdoc --lockedAny platform with a Rust toolchainBuilds from source on crates.io

pip install stetdoc into a virtual environment works too, and uvx stetdoc runs stetdoc once without installing it.

Why the channel matters

An agent can run stetdoc dozens of times in one task, so the time each call takes to start adds up. These are medians of 20 runs of stetdoc --version on an M-series Mac mini:

How it startsMedian
The binary, from Homebrew, the install script, uv tool install or pipx4.8 ms
A pip virtual environment's bin/stetdoc5.5 ms
npm install -g with the install step, which puts the binary in place of the launcher5.9 ms
uvx stetdoc29 ms
npm install -g --ignore-scripts, which keeps the Node launcher106 ms
npx stetdoc, with the install step135 ms
npx stetdoc, with the Node launcher278 ms

So put the binary itself on the PATH. Through npx, every call starts Node and npm first. Keep npx stetdoc mcp for the MCP server, which starts once per session.

Bun blocks install scripts by default, so bun add -g stetdoc keeps the Node launcher. Install with bun add -g --trust stetdoc to get the binary.

Platforms

Each release builds stetdoc for seven targets, which cover macOS on Apple silicon and Intel, Linux on x64 and arm64 for both glibc and musl, and Windows on x64. Homebrew and the install script give Linux the static musl build, which runs on glibc and musl alike.

Windows

Four channels ship a Windows x64 binary:

  • uv tool install stetdoc or pipx install stetdoc. PyPI has a Windows wheel that holds stetdoc.exe. This is the one to pick.
  • npm install -g stetdoc. On Windows the install step leaves the Node launcher in place, so every call starts Node first.
  • The zip from the release page (on GitHub), stetdoc-x86_64-pc-windows-msvc.zip. Check it against stetdoc-x86_64-pc-windows-msvc.zip.sha256 with Get-FileHash -Algorithm SHA256, then put stetdoc.exe in a folder on your PATH.
  • cargo install stetdoc --locked, which builds it from source.

Homebrew and the install script don't run on Windows. There is no Windows build for Arm. On Windows, stetdoc init saves your name under %APPDATA% unless XDG_CONFIG_HOME is set.

Check the install

stetdoc --version
stetdoc 0.9.1

Then run stetdoc init --list. It prints each agent stetdoc knows, whether it found that agent on this machine, the skill folder, the stetdoc version installed there, and the author you saved. Use stetdoc with your agent covers stetdoc init and each agent's setup.

Update and uninstall

ChannelUpdateUninstall
Homebrewbrew upgrade stetdocbrew uninstall stetdoc
uvuv tool upgrade stetdocuv tool uninstall stetdoc
pipxpipx upgrade stetdocpipx uninstall stetdoc
npmnpm install -g stetdoc@latestnpm uninstall -g stetdoc
Install scriptRun the script againrm ~/.local/bin/stetdoc
Cargocargo install stetdoc --lockedcargo uninstall stetdoc

After an update, run stetdoc init again to bring the skill stubs up to the new version. A stub sends the agent to stetdoc skills get core, which always prints the skill of the binary you run, so an old stub still works.

Before you uninstall, run stetdoc init --remove. It deletes the skill folders stetdoc wrote and nothing else. Your saved name stays in stetdoc/config.toml in your config folder until you delete that file.

Installing without a terminal prompt

Agents and CI run the install with no one at the keyboard. Nothing in the install asks a question, and stetdoc init asks only when it runs in a terminal.

sh
brew install clauseo-ai/tap/stetdoc
stetdoc init --agent claude-code,codex --author "Jane Doe"
stetdoc init --list
  • --agent names the agents to install for, or all. Without it and without a terminal, init installs for the agents it detects.
  • --author saves the name. Without a terminal and without --author, init saves nothing and says how to set one. On a shared or hosted machine, skip the saved name and set STETDOC_AUTHOR or pass --author on each command.
  • --dry-run lists every file init would write, such as would write ~/.claude/skills/stetdoc/SKILL.md (Claude Code), and changes nothing.
  • --json prints the result, or the error, as JSON.

To pin a release, name it in the install:

sh
curl -fsSL https://raw.githubusercontent.com/clauseo-ai/stetdoc/main/packaging/install.sh | STETDOC_VERSION=v0.9.1 sh
uv tool install stetdoc==0.9.1
npm install -g stetdoc@0.9.1
cargo install stetdoc --version 0.9.1 --locked

The install script reads STETDOC_VERSION, which defaults to latest, and STETDOC_INSTALL_DIR, which defaults to ~/.local/bin. It stops before it writes anything when the checksum doesn't match.