One manifest. One command. kpkg packages your app for Linux, Windows, macOS, Android, and iOS — and installs natively via the Koder Store without a single extra click.
[package] name = "my-app" version = "1.0.0" display = "My App" [platforms] "linux-amd64" = "my-app" "win-x64" = "my-app.exe" "macos-arm64" = "My App.app" "android" = "app.apk"
$ kpkg build --deb --rpm --msix ✓ my-app-1.0.0.kpkg (Koder Store) ✓ my-app_1.0.0_amd64.deb (Debian/Ubuntu) ✓ my-app-1.0.0.x86_64.rpm (Fedora/RHEL) ✓ my-app-1.0.0.msix (Windows) $ kpkg publish ✓ Published to Koder Store
kpkg handles the complexity of multi-platform distribution so you can focus on building your app.
A single ZIP-based archive carries binaries for every platform, metadata, icon, screenshots, and a bootstrap script that runs even without the Koder Store installed.
The Koder Store installs .kpkg files silently in the background, registering launchers, shortcuts, and file associations — no wizard, no UAC prompts, no user friction.
One build command produces .deb, .rpm, .msix, .pkg, .AppImage, and .apk alongside the .kpkg — each properly structured for its target package manager.
Every .kpkg is signed with your Koder ID key. The Koder Store verifies the signature before installation. Tampered packages are rejected automatically.
The Koder Store tracks installed versions and can roll back to any previous .kpkg. Developers can push delta updates to minimize download size.
Declare exactly what your app needs — network, filesystem paths, camera, notifications. Users see a clear permission summary before installing.
From source to store in three steps.
Create a kpkg.toml in your project root. Declare your app's identity, which platforms it targets, what permissions it needs, and how it should be installed.
[store] slug = "my-app" price = "free" category = "productivity" [permissions] network = true notifications = true filesystem = ["~/Documents/my-app"] [install] launcher = true data_dir = "{AppData}/my-app"
Run kpkg build and get every package format your app needs. No separate toolchain configuration per platform.
$ kpkg build \ --deb --rpm --msix --appimage Building my-app v1.0.0... ✓ dist/my-app-1.0.0.kpkg ✓ dist/my-app_1.0.0_amd64.deb ✓ dist/my-app_1.0.0_arm64.deb ✓ dist/my-app-1.0.0.x86_64.rpm ✓ dist/my-app-1.0.0.msix ✓ dist/my-app-1.0.0-x86_64.AppImage 6 artifacts in 4.2s
Sign and publish with a single command. Your app appears in the Koder Store immediately, available for install on every supported platform.
$ kpkg publish Signing my-app-1.0.0.kpkg... ✓ Signed with Koder ID key Uploading to Koder Store... ✓ linux/amd64 58 MB ✓ linux/arm64 56 MB ✓ win/x64 61 MB ✓ macos/arm64 54 MB ✓ Published: store.koder.dev/app/my-app Version 1.0.0 is live
One build, every channel. kpkg exports to all major distribution formats from a single manifest.
Why .kpkg instead of shipping formats separately?
| Feature | .kpkg | .deb / .rpm | .msix | .AppImage |
|---|---|---|---|---|
| Single file, all platforms | ✓ | — | — | — |
| Bootstrap without store installed | ✓ | — | — | ✓ |
| Silent native install via Store | ✓ | — | — | — |
| Signed with developer identity | ✓ | — | ✓ | — |
| Version rollback from Store UI | ✓ | — | — | — |
| Store listing metadata in manifest | ✓ | — | — | — |
| Declarative permissions | ✓ | — | ✓ | — |
chmod +x app.kpkg && ./app.kpkg will extract and launch the app directly — no Koder Store required. On Windows, you do need the Koder Store (or install it from store.koder.dev) since Windows cannot execute shell scripts on double-click.makemsix under the hood, which runs on Linux. The resulting .msix is structurally valid, but Authenticode signing for Windows SmartScreen requires a separate Windows code-signing certificate, which is your responsibility. kpkg handles the Koder Store signing automatically.kpkg CLI is the tool that builds, signs, and publishes packages. The .kpkg extension is the file format produced by the CLI and consumed by the Koder Store. The CLI can also manage source-level dependencies (like Cargo or npm) for projects written in Koder Lang, Go, Dart, or Rust.kpkg add <package> adds a dependency to your kpkg.toml and resolves it from the Koder package registry at pkg.koder.dev. For Go, Dart, and Rust projects, kpkg delegates to the native toolchain (go mod, pub, cargo) and wraps the result for distribution.Stop maintaining separate build pipelines for each OS. Ship faster with kpkg.