Skip to content

The impreza CLI & devkit

CLI & SDKImpreza documentationRead as Markdown ↗

One static Go binary that packages your project and ships it to your VPS. No runtime, no dependencies — download it, impreza login, and deploy from any directory with a Dockerfile. This is the terminal-and-scripts path; AI tools should use MCP instead.

Install

Single binary for Mac (amd64/arm64), Linux (amd64/arm64), Windows (amd64). Grab it from the devkit releases, put it on your PATH, and you are set.

# macOS / Linux example
curl -fsSL -o impreza https://github.com/imprezahost/impreza-devkit/releases/latest/download/impreza_$(uname -s)_$(uname -m)
chmod +x impreza && sudo mv impreza /usr/local/bin/
impreza --version

Log in (one-time)

The CLI authenticates with the same API key + secret as everything else. It verifies against /v1/account and stores the credentials locally:

impreza login          # prompts for API key + secret
Need a key? Portal → Impreza API → Generate New Key. Whitelist your machine's IP, or pick tofu / keyonly to skip that step. Full walk-through in Tutorial 1 → API key.

Deploy your project

From any directory with a Dockerfile, one command packages the directory, uploads it, and asks the agent to build + run it:

cd ~/my-app
impreza deploy --agent agt_xxxxxxxxxxxx --follow
# → Packaging → Uploading → Deploying → ✓ Deployed at https://my-app-3f7c9a.imprezaapps.com

Re-ship under the same name (uninstall old + create new):

impreza deploy --agent agt_xxxxxxxxxxxx --name my-app --follow --force
Lean build context. Uploads cap at 100 MB. The CLI already excludes .git, node_modules, __pycache__ and friends; add a .dockerignore for anything else heavy.

Browse + manage

impreza platform servers list
impreza platform apps list
impreza platform deployments list
impreza platform deployments show dpl_xxxxxxxxxxxx
impreza platform deployments logs dpl_xxxxxxxxxxxx

# Install a catalog app from the terminal
impreza platform deploy vaultwarden --agent agt_... --domain vault.example.com

Multiple accounts? Named contexts

Keep separate credentials side by side and switch between them:

impreza context create work --key imp_... --secret ...
impreza context use work

The SDKs (devkit)

The same repo ships the official Go SDK — the one the CLI, the agent and the MCP server are built on. Use it to script custom (non-AI) integrations:

import sdkclient "github.com/imprezahost/impreza-devkit/sdk-go/client"

c, _ := sdkclient.New(sdkclient.Context{ Key: "imp_...", Secret: "..." })
servers, _ := c.PlatformListServers(context.Background())
for _, s := range servers.Servers {
    fmt.Println(s.AgentID, s.Hostname, s.Status)
}

A Python SDK with the same surface lives at pypi.org/project/impreza-sdk.

Where to go next