bc6a5f28d9
* feat: cli launcher * feat: improved debug
1.9 KiB
1.9 KiB
Kandev Launcher (npx)
This package powers npx kandev by downloading prebuilt release bundles from GitHub Releases and running them locally. It:
- Detects OS/arch and fetches the matching bundle ZIP.
- Verifies the SHA256 checksum when available.
- Extracts the bundle into
~/.kandev/bin/<version>/<platform>/. - Starts the backend binary and waits for the
/healthendpoint. - Starts the Next.js standalone server with runtime
KANDEV_API_BASE_URL. - Uses the latest GitHub Release by default, so runtime bundles update automatically. It also supports local dev runs from a repo checkout.
Updates
On run, the launcher checks npm for the latest kandev CLI version and prompts:
Update available: <current> -> <latest>. Update now? [y/N]
If you accept, it re-runs npx kandev@latest with the same arguments.
This check is skipped in dev mode.
Note: the runtime bundles are pulled from the latest GitHub Release by default, even if the CLI version is unchanged. So:
- New runtime release without CLI publish: users get new runtime automatically, but no update prompt.
- New CLI publish: users get an update prompt and then re-run with the new CLI.
You can disable the prompt with:
KANDEV_NO_UPDATE_PROMPT=1 npx kandev
Usage
# Run the latest release bundle
npx kandev
# Run a specific release tag
npx kandev run --version v0.1.0
# Local dev (from repo root)
npx kandev dev
Local Development
pnpm -C apps/cli dev
Build / Publish
pnpm -C apps/cli build
npm publish --access public
The published package name is kandev, with a bin entry kandev.
Environment Overrides
KANDEV_GITHUB_OWNER,KANDEV_GITHUB_REPO: Override the GitHub repo to fetch releases from.KANDEV_GITHUB_TOKEN: Optional token for GitHub API rate limits.KANDEV_NO_UPDATE_PROMPT=1: Disable the update prompt.KANDEV_SKIP_UPDATE=1: Internal guard to avoid update loops.