The impreza CLI & devkit
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
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
.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 #
- Source: github.com/imprezahost/impreza-devkit (cli-go/, sdk-go/, agent source, Caddy DNS provider).
- Prefer raw HTTP? Tutorial 3 โ REST API.
- Prefer chatting with an AI? Tutorial 1 โ MCP.
