cpak documentation
Everything you need to build and ship with cpak.
Choose the path that matches what you are doing. Each guide uses the current v2 runtime, manifest and command line interface.
Use cpak
Install the runtime, check your host and run an application.
Run your first package arrow_forwardinventory_2Package an application
Turn an OCI image and a small manifest into a distributable application.
Build a package arrow_forwardcodeWork on cpak
Understand the repository map, development flow and project conventions.
Start contributing arrow_forwardStart here
Install cpak, understand its model, and run your first application.
Install cpak
Install the v2 command, check the host, and understand where cpak keeps its data.
cpak-installer
Install a Store application with the signed graphical or terminal installer, or add installer downloads to a package page.
Quick start
Install, launch, update, and remove your first cpak application.
cpak concepts
The small set of objects behind packages, layers, state, permissions, and versions.
Compare Linux package formats
Choose between cpak, Flatpak, Snap, AppImage, native packages and Distrobox based on what you need to distribute.
Host compatibility
Linux, architecture, kernel, filesystem, desktop, init, and GPU requirements for the v2 runtime.
Build packages
Create manifests, images, dependencies, SDKs, and reproducible releases.
Your first package
Create a v2 package repository, build its image, and test it in an isolated store.
Manifest v3 reference
Every top-level field in cpak.json, with strict validation and portable examples.
Permissions
Declare the smallest host access an application needs and understand user overrides.
Build OCI images
Produce small, multi-architecture images with cached CI builds, checksums, SBOMs, and attestations.
Choose and operate an OCI registry
Select a registry, publish cpak images, enable partial pulls, and run a private registry safely.
Desktop and kiosk sessions
Package a complete Wayland desktop or a focused login session with cpak.
Runtime sources
Add verified archives, native packages, or vendor files at installation time.
Dependencies and addons
Connect required packages and optional per-application addons.
Publisher signing
Sign what you publish so a machine can tell your build from a copy of it, keylessly through your CI.
SDKs and development tools
Package language toolchains as optional editor addons.
Test a package
Validate contracts, run isolated package checks, and cover desktop behavior before publication.
Publish to the Store
Prepare a package for the official catalog and add its reviewed metadata and media.
Runtime and security
Learn how isolation, permissions, brokers, and nested packages work.
Runtime architecture
How Git metadata, OCI layers, the local store, namespaces, and the application supervisor fit together.
Sandbox and threat model
What cpak isolates, what the manifest can reopen, and which protections depend on the host.
Storage drivers
Implement and deploy a cpak storage driver through the versioned Unix socket protocol.
File chooser access
Grant selected files and folders without exposing the host home.
System integration
Connect applications to display, audio, notifications, URIs, host applications, and typed host services.
Desktop dialog adapters
Select, package, and replace the native dialog backend used by cpak.
Host actions
Configure typed, policy-gated host services for an application.
Nested cpak
Declare and run a cpak dependency as a controlled service inside another package.
Verified launch
cpak records what an application is when it is installed and refuses to start it when the store no longer holds that.
Security reporting
Report a vulnerability privately and include the evidence needed to reproduce it.
Managed deployment
Decide centrally who may publish software on your machines and how much any application is ever allowed to do.
Operate cpak
Manage updates, storage, diagnostics, recovery, and automation.
CLI reference
The current v2 commands for packages, instances, development, storage, and system integration.
Updates, pins, and rollback
Choose a source reference, review permission changes, and recover the previous version.
Update the cpak runtime
Configure CLI and desktop update checks, package-manager builds, and native dialog selection.
Private OCI registries
Bind a registry credential to one package origin and repository without importing container-engine configuration.
Store, deduplication, and cleanup
Inspect cpak data, repair interrupted transactions, share equal content, and reclaim unused space.
Troubleshooting
Diagnose host support, package startup, permissions, nested services, desktop entries, and store state.
Automation and services
Use JSON output, non-interactive updates, orchestration, and explicit service lifecycle in scripts.
Release channels
Choose nightly, continuous, or versioned cpak builds and understand what each channel promises.
Contribute
Find the right repository, test a change, and send it to the project.
Contributing to cpak
Build the v2 branch, run its verification suite, and send focused changes to the correct repository.
Repository map
Find the project that owns the runtime, package, image, SDK, broker, Store, or website change.
Frequently asked questions
Short answers about daemons, OCI images, portability, Flatpak, Docker, package stores, and application state.
Cannot find what you need?
The documentation is maintained beside the project. Open the repository, inspect the code or propose a focused correction.
