Home / Getting Started / Updating
Updating
How a downstream repo picks up new Wikidown releases — CLI/MCP tool versions, agent config files, and the VS extension each update differently.
CLI and MCP server (NuGet global tools)
Wikidown.Cli and Wikidown.Mcp are published to NuGet as global .NET
tools. Update them with:
dotnet tool update -g Wikidown.Cli
dotnet tool update -g Wikidown.Mcp
A push to main doesn't always mean a new version is available. The
release.yml
workflow runs on every push to main that touches Directory.Build.props,
src/Wikidown.Cli/**, src/Wikidown.Mcp/**, src/Wikidown.Core/**,
assets/**, or the workflow file itself, and it packs + pushes to NuGet with
--skip-duplicate. The package version comes from <VersionPrefix> in
Directory.Build.props — and that value is not auto-incremented per
push. --skip-duplicate means a push that doesn't bump VersionPrefix
re-packs and tries to push the same version, which NuGet rejects as a
duplicate and the step just no-ops. So a plain code-fix push only becomes
something dotnet tool update can see once a maintainer bumps
VersionPrefix in the same push (or a later one).
If dotnet tool update reports you're already on the latest version but you
expected a fix, check whether VersionPrefix has actually moved since your
last update — the fix may be merged but not yet released.
Self-contained CLI binary (no-.NET installs)
If wikidown was installed by the wikidown.org install script on a machine
without .NET, it's a self-contained binary in ~/.wikidown/bin
(%USERPROFILE%\.wikidown\bin on Windows) — dotnet tool update doesn't
apply to it. Update by re-running the script; it always fetches the newest
native release:
curl -fsSL https://wikidown.org/install.sh | sh
irm https://wikidown.org/install.ps1 | iex
Native binaries are built by
cli-native.yml
when a maintainer pushes a cli-v* tag — a separate release track from
NuGet, so the newest NuGet version and the newest native binary aren't
necessarily the same; if the script reinstalls and a fix still isn't there,
check whether a cli-v* tag has been cut since the fix merged. The MCP
server has no native binary — it's NuGet-only and always needs .NET (see
MCP Server; agents fall back to the CLI when it's
absent).
Agent configs (.claude/, .github/, .vscode/mcp.json, CLAUDE.md)
These files are copied into a downstream repo once, by wikidown init (see
CLI and Agents) — they don't auto-update. To
pick up changes to the shipped configs (wording tweaks, new instructions,
new tool wiring), re-run init with --force:
wikidown init --agents all --force
--force is required because init otherwise skips any file that already
exists in the target repo. Review the diff before committing — --force
overwrites local edits to those files too.
VS extension (VSIX)
The Visual Studio extension auto-updates through the Visual Studio
Marketplace's normal extension update mechanism once a new version is
published. Publishing is triggered by pushing a vsix-v* tag (see
vsix.yml),
which builds the VSIX, runs VsixPublisher.exe against the Marketplace, and
attaches the .vsix to the GitHub Release. No action is needed downstream
beyond letting Visual Studio check for extension updates as usual — see
Visual Studio Extension.
Summary
| Component | Trigger to publish | How consumers update |
|---|---|---|
Wikidown.Cli / Wikidown.Mcp (NuGet) |
Push to main touching Core/CLI/MCP/Directory.Build.props, and a VersionPrefix bump |
dotnet tool update -g Wikidown.Cli / Wikidown.Mcp |
| Self-contained CLI binary | Push of a cli-v* tag |
Re-run the wikidown.org install script |
| Agent configs | N/A — copied at init time |
wikidown init --agents all --force |
| VS extension (VSIX) | Push of a vsix-v* tag |
Automatic via VS Marketplace update check |