Kilo Code uses a fully automated CI pipeline triggered via GitHub Actions workflow_dispatch. A single workflow handles version bumping, building all artifacts, publishing to every distribution channel, and updating package registries.
-
Go to the
publishworkflow in GitHub Actions. -
Click "Run workflow".
-
Select the branch (typically
main). -
Fill in the inputs:
bump(choice):patch,minor, ormajor. Determines how the version number is incremented.version(string, optional): Override the version explicitly instead of usingbump. Leave empty to use the bump-based calculation.
⚠️ Do not fill inversionunless you have a specific reason to. The default behavior — leavingversionempty and selecting abumplevel — is almost always what you want. The automated bump logic computes the correct next version from the current state of the repo. Only use theversionoverride for exceptional cases like skipping versions or publishing a pre-release (e.g.1.5.0-beta.1). -
Click "Run workflow" to start the release.
The publish.yml workflow runs four jobs sequentially:
- Checks out the repo with full history (
fetch-depth: 0). - Runs
script/version.tsto compute the next version based on thebumporversioninput. - Generates release notes from the commit history since the last release.
- Creates a draft GitHub Release with the computed tag (e.g.
v1.2.3) and release notes. - Outputs the
version,release(database ID), andtagfor downstream jobs.
- Runs
packages/opencode/script/build.tsto compile the Kilo CLI binary. - Builds native binaries for all supported platforms and architectures:
- Linux: x64, arm64 (glibc and musl), plus baseline (non-AVX2) variants
- macOS: x64, arm64, plus baseline variants
- Windows: x64, plus baseline variant
- Patches ELF interpreters on Linux binaries for broad compatibility.
- Creates platform archives (
.tar.gzfor Linux,.zipfor macOS/Windows) and uploads them to the draft GitHub Release. - Uploads the
dist/directory as a workflow artifact (kilo-cli) for subsequent jobs.
- Downloads the CLI artifacts from the previous job.
- Runs
packages/kilo-vscode/script/build.tsto build VSIX packages for all target platforms:linux-x64,linux-arm64,alpine-x64,alpine-arm64,darwin-x64,darwin-arm64,win32-x64
- Each VSIX bundles the platform-specific CLI binary.
- Uploads the VSIX files as a workflow artifact (
kilo-vscode).
Downloads all build artifacts and publishes to every distribution channel:
- Updates the
versionfield in allpackage.jsonfiles across the monorepo. - Updates the Zed extension manifest (
extension.toml) with the new version. - Rebuilds the TypeScript SDK (
packages/sdk/js). - Commits the version bump, tags the commit, and pushes to the repo.
- Promotes the draft GitHub Release to a published release.
- Publishes platform-specific binary packages to npm (e.g.
@kilocode/cli-linux-x64,@kilocode/cli-darwin-arm64, etc.). - Publishes the main
@kilocode/clipackage to npm with optional dependencies on the binary packages. - Builds and pushes a multi-arch Docker image (
ghcr.io/kilo-org/kilo) to GitHub Container Registry (linux/amd64 + linux/arm64).
- Builds and publishes the TypeScript SDK to npm.
- Builds and publishes the plugin interface package to npm.
- Publishes platform-specific VSIX packages to the VS Code Marketplace via
vsce. - Uploads all VSIX files to the GitHub Release as assets.
- AUR (Arch Linux): Clones
kilo-binfrom the AUR, updates thePKGBUILDwith new version and SHA256 checksums, and pushes. - Homebrew: Clones
Kilo-Org/homebrew-tap, updates thekilo.rbformula with new version, download URLs, and SHA256 checksums, and pushes.
- The workflow only runs in the
Kilo-Org/kilocoderepository (guarded byif: github.repository == 'Kilo-Org/kilocode'). - You must have write access to the repository to trigger a
workflow_dispatchevent.
The workflow requires these GitHub token permissions:
id-token: write-- for npm provenance attestationcontents: write-- for creating releases, pushing tags, and uploading assetspackages: write-- for publishing Docker images to GHCR
The following secrets must be configured in the repository:
| Secret | Purpose |
|---|---|
KILO_API_KEY |
Kilo API key used during version computation |
KILO_ORG_ID |
Kilo organization ID |
KILO_MAINTAINER_APP_ID |
GitHub App ID for the kilo-maintainer bot (used for git commits) |
KILO_MAINTAINER_APP_SECRET |
GitHub App secret for the kilo-maintainer bot |
NPM_TOKEN |
npm authentication token for publishing packages |
VSCE_TOKEN |
VS Code Marketplace personal access token |
OVSX_TOKEN |
Open VSX Registry token (currently unused but configured) |
AUR_KEY |
SSH private key for pushing to the AUR |
The workflow uses concurrency control (workflow-ref-bump/version) to prevent parallel releases from conflicting.