Conversation
62de4c0 to
3c6bd2b
Compare
60f8dc0 to
916fa9a
Compare
We should hold this PR until we're ready for the stable release, it'll bump it to 1.0.0 once we're ready to go.
04f718c to
2f8edbc
Compare
2f8edbc to
9ad8bb7
Compare
rafa-thayto
previously approved these changes
Apr 22, 2026
9ad8bb7 to
e2809e6
Compare
We should hold this PR until we're ready for the stable release, it'll bump it to 1.0.0 once we're ready to go.
e2809e6 to
247c88e
Compare
247c88e to
f0d46ff
Compare
wyattjoh
approved these changes
Apr 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or setup this action to publish automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
clerk@1.0.0
Major Changes
Release Clerk CLI 1.0 as the first stable
1.xline. (#199) by @wyattjohThis milestone rolls up the recent improvements to bootstrap flows, authentication and keyless claiming, bundled agent skills, PATH-aware updates, interactive prompts, and docs into a stable baseline for the standalone
clerkCLI.Minor Changes
Automatically claim and link keyless applications on
clerk auth login, and write temporary dev keys duringclerk initwhen skipping authentication. (#157) by @rafa-thaytoAdd
clerk skill installto install the bundledclerkClaude Code skill into your project. The skill ships with the CLI and is pinned to the CLI's version, andclerk initnow offers to install it alongside the framework-pattern skills. (#126) by @wyattjohThe bundled skill's command reference and agent-mode docs have also been resynced with the CLI:
clerk init --app,clerk config patch/put--appand--instance, andclerk updateare now documented, agent-mode errors are documented as structured JSON on stderr, theclerk doctor --jsonshape is spelled out in full (detail,fixalongsideremedy),apps createis noted as auto-emitting JSON in agent mode (same asapps list), and the OpenAPI catalog cache TTL is corrected to 1 hour. The auth docs now list thesignup/signin/sign-inandsignout/sign-outaliases plus the top-levelclerk login/clerk logoutshortcuts,config patchexplains--destructivethe same wayconfig putdoes,configcommands are noted as Platform-API-only (they ignore--secret-key), and the agent-mode reference maps each failingclerk doctorcheck to the manual command that would remediate it when--fixis unavailable. Hardcoded~/.clerk/config.jsonand~/.clerk/cache/paths are replaced with platform-agnostic guidance (runclerk doctor --verboseto see resolved paths; override withCLERK_CONFIG_DIR), andCLERK_CONFIG_DIRis added to the environment variables table.Fix
clerk updatesilently writing to the wrong installer when multipleclerkbinaries exist on PATH. The command now walks PATH to identify the binary the user's shell will actually execute, determines which installer owns that specific path (via a newownerOfBinary()check), and runs the corresponding installer. Binaries installed outside any known package manager (e.g. viainstall.sh) are refused with reinstall guidance rather than silently updated via npm. Also fixes bun detection, which previously matched the shim dir (~/.bun/bin) instead of the install dir (~/.bun/install/global/node_modules) and fell through to the npm fallback. Adds a--allflag to update everyclerkinstall on PATH in one run, skipping Homebrew on non-stable channels and unknown-owner binaries with a warning. Prints ahash -r/rehashhint based on$SHELLafter a successful update. (#179) by @rafa-thaytoStamp authenticated CLI app creation with
from_source=cliso apps created through Clerk CLI flows are attributable in Clerk's analytics. The value is set on the PLAPI request body and persists toapplications.from_source. Requires matching PLAPI support to be deployed server-side. (#192) by @mwickettAdd scroll indicators ("↑ N more above" / "↓ N more below") to interactive list prompts when choices overflow the visible page. Add interactive environment picker to
clerk switch-envwhen no argument is given. (#176) by @rafa-thaytoRefresh expired OAuth sessions automatically for authenticated CLI commands. (#205) by @wyattjoh
Patch Changes
Fix agent-mode linking flows.
clerk link --app <id>now works non-interactively in agent mode,clerk linkwithout--apptries deterministic autolink before failing with a usage error, andclerk unlink --yesnow unlinks instead of printing guidance. The bundledskills/clerkdocs were updated to match the new agent-mode behavior. (#212) by @wyattjohAccept comma-separated values for
--keysinconfig pullandconfig schema, and clarify that keys refer to top-level config sections. (#187) by @dmoernerPrevent local unsigned macOS builds from sharing the release keychain entry. (#201) by @wyattjoh
Fix shell completion install tips so they work on fresh systems. The
clerk doctorzsh remedy now leads witheval "$(clerk completion zsh)"and points toclerk completion --helpfor the file-based install method, and the fish remedy prefixesmkdir -p ~/.config/fish/completionsbefore writing. The zsh completion script's install banner now tells users tomkdir -p ~/.zfuncbefore writing the completion file. (#206) by @rafa-thaytoDefault
clerk env pullto.env.localon Next.js projects with no existing env file, matching the framework's convention for local secrets. Projects that already have keys in.envcontinue to write there. (#204) by @rafa-thaytoFix link saving to wrong directory during bootstrap flow. When creating a new project via
clerk init, the Clerk application link is now correctly saved to the new project directory instead of the parent directory. (#186) by @kylemacStore macOS credentials in the system Keychain instead of a plaintext file. (#198) by @wyattjoh
~/Library/Application Support/clerk-cli/credentialsbecause cross-compiled binaries were missing the native Keychain binding.clerk loginafter upgrading so the CLI writes a fresh token into the Keychain and removes the old plaintext file.Surface the bundled agent skill in
clerk --helpand bareclerkoutput with a tip pointing toclerk skill install, so users discover how to give AI coding agents Clerk context. (#191) by @rafa-thaytoTighten the
clerk initbootstrap flow: (#184) by @rafa-thayto--starteror on an empty directory). The scaffold plan is still previewed; only the now-superfluous prompt is removed since the user already opted in by starting bootstrap.cd <project>,<pm> dev, etc.) after the optional "Install agent skills?" prompt so they remain the last thing visible when the command finishes.Fix
clerk initbootstrap flow failing with "No Clerk project linked to this directory" when pulling API keys into a newly created project subdirectory. (#195) by @rafa-thaytoFix
install.sh --install-dir <path>so it creates the directory when it does not already exist, matching the behavior of the~/.local/binfallback. (#202) by @wyattjohFix
clerk initprompt flow: (#175) by @rafa-thaytoCLERK_PLATFORM_API_KEY),clerk initskips straight to the authenticated flow — no more "Skip authentication for now?" prompt.clerk initnow goes keyless automatically (previously prompted) and points you toclerk auth loginfor later. Re-runs in an existing project still fall through to the authenticated flow so real keys can be pulled.clerk init --starterfully interactive — it no longer fails with "Non-interactive mode requires --framework" when running without-y.Run
config patch --dry-runandconfig put --dry-runagainst the server when changes are detected, so validation errors are caught and the projected configuration (including any server-applied defaults) is returned before changes are committed. (#200) by @dmoernerInstall the full Clerk core and feature skill sets by default during
clerk init. Agents now get context forclerk-custom-ui,clerk-backend-api,clerk-orgs,clerk-testing, andclerk-webhooksin addition to the previous defaults, plus a framework-specific skill when one matches. Pass--no-skillsto opt out. (#185) by @rafa-thaytoExpand
--verbosedebug output across the CLI and surface silent environment fallbacks. (#183) by @wyattjoh--verbose.--verbosewhen the saved environment is not available in the current binary, instead of silently falling back to production.Document the
--allflag forclerk updatein the bundled Clerk agent skill's command reference table. The flag was already implemented but missing from the skill, so agents couldn't help users with multiple clerk installs on PATH. (#196) by @wyattjohFix
clerk skill installfailing withNo valid skills foundon published releases. The bundled skill's frontmatter now parses as strict YAML. (#189) by @wyattjohHide the "install the Clerk skills" tip in
clerk --helpand bareclerkoutput when the Clerk agent skill is already installed for one of the common local agents (Claude Code, Codex, Cursor, Windsurf, Zed, Cline, VS Code, GitHub Copilot). (#194) by @rafa-thayto