1 ยท Install the CLI
brew install carlosframework/tap/carlos
Not on Homebrew? Prebuilt binaries live at github.com/carlosframework/releases. It's one static binary: put it on your PATH and you're done.
2 ยท Sign in
Create your account at console.carloku.com โ you sign in with a passkey through Keymail, so there's no password to invent. Then connect your terminal:
carlos auth login -console https://console.carloku.com
The CLI prints a short code; you approve it in the browser you're already signed in to. That's the whole ceremony. (Forget this step and nothing breaks: the first command that needs a login offers to run it for you, right there in the terminal.)
3 ยท Create and deploy
carlos apps create -app hello
carlos deploy ./hello-linux-arm64
Every app starts with one channel, edge, and carlos
deploy ships straight to it โ no promotion step in between. It waits
until your URL is provably serving the new build; when it prints
live, it is. Version strings are yours to choose; a git short
SHA is the house convention. Notice there's no -app on the
deploy: with one app in your account, the CLI knows which one you mean โ
flags are for the day you have several.
Shipping a static site instead? Same shape:
carlos deploy -kind static ./public
Run it from your project once and it offers to remember the artifact in
.carlos/config; say yes, and from then on the whole release is
just carlos deploy, no arguments at all. The session on the
homepage is a real capture of exactly that, and the app it
deployed is really running.
4 ยท Add a pipeline, if you want one
One channel is enough for most apps: deploy, and it's live. When a team wants a staged rollout instead โ a bake window before a wider audience sees it, a passkey on the way up, sign-off from teammates โ opt into a pipeline:
carlos pipeline init -template edge-production
That adds a production channel behind edge,
with a 24-hour bake, a passkey requirement, and an approval on any change
to that protection, so nobody can quietly strip it later either.
carlos promote <version> production moves the exact same
bytes forward once the bake has run. There's also a
full-ladder template matching the classic edge โ beta โ
stable shape, and custom channels if neither fits.
Carloku is young and moving quickly. If anything on this page surprises you, the console is the source of truth, and the platform underneath is open source.
Under the hood
For the technically curious, this is the part we keep off the front page:
- A release is an immutable, content-addressed artifact. Promotion moves a signed pointer; nothing is ever rebuilt between preview and production, and every box verifies the signature before running a release.
- Canary channels always let you try a build on a live URL without touching what's deployed. Opt into a pipeline and its later channels carry releases through a bake stage too, so a wider channel only adopts what already served traffic upstream.
- Idle apps hibernate: the process stops, the route stays, and the first request wakes it.
- Custom domains get per-host certificates minted and renewed automatically.
The whole design is public โ read it at carlosframework.com.