The command line

kaisin talks to your installation from a terminal. It exists for the two things a browser is slowest at: watching a build that is failing, and answering "what is going on right now" without clicking into four screens.

Installing

brew install bluepawlabs/kaisin/kaisin

On macOS and Linux, Intel and ARM. It is one self-contained file and needs no runtime on the machine that runs it. Without Homebrew, the same archives are on the tap's releases.

This is the one part of Kaisin anybody can install with no token. The platform itself is installed with one.

Signing in

Kaisin is self-hosted, so the first thing it asks is which installation.

$ kaisin auth login admin.example.com

  Your code is  KQ7F-M2XP
  Enter it at   https://admin.example.com/cli?code=KQ7FM2XP

  Waiting for approval… (Ctrl-C to stop)

Open that address in a browser you are already signed in to and approve it. No password is typed into the terminal and none is stored: approving in the browser is what creates the session, which is the same kind of session the browser itself holds — it appears in your sessions, is revoked the same way, and expires on the same clock.

This works over SSH, where the machine running the command has no browser at all. The code is short enough to read off one screen and type into another.

Signed in to more than one installation? --host picks one for a command, and KAISIN_HOST does the same for a script. The token is kept in ~/.config/kaisin/hosts.json, readable only by you.

Debugging a deployment

kaisin builds                    # what is building right now, across everything
kaisin builds storefront         # that application's recent builds
kaisin build 4f2a9c1e            # stages, then the log — following if it is still running

kaisin build exits non-zero when the build failed, so it can be the last line of a script.

kaisin deployments storefront    # what went out, and what happened to it
kaisin logs storefront           # the application's own output, followed

Operating

kaisin apps                      # everything, and whether it is healthy
kaisin show storefront           # one application in detail
kaisin deploy storefront         # deploy the current commit
kaisin scale storefront 3        # change how many instances it runs
kaisin restart storefront        # roll its instances

Naming an application

An application with one environment is named by its name. One with several takes app/environment:

kaisin logs storefront           # production
kaisin logs storefront/pr-14     # the preview for pull request 14

A bare name resolves to production when the alternatives are previews — three open pull requests do not make kaisin logs storefront an ambiguous question. Two long-lived environments and no production do, and it says which it found rather than picking one.

Handing it to an agent

kaisin mcp

speaks MCP over stdio, as you, on the session kaisin auth login made. There is no token to paste, and signing the command line out cuts the agent off too. Agents has the rest.