CLI Commands

This section documents all available commands in the Kelvin SDK CLI.

The Kelvin SDK provides a command-line interface accessible via the kelvin command.

kelvin

Kelvin CLI - The complete tool to interact with the Kelvin Ecosystem.

Use –json for machine-readable output. Use –yes to skip confirmations in scripts. Use –verbose for debug information. Use –tree to see all available commands.

Usage

kelvin [OPTIONS] COMMAND [ARGS]...

Options

--json

Output as JSON (for scripting).

-y, --yes

Skip confirmation prompts.

-v, --verbose

Enable debug logging.

--docs

Open the Kelvin SDK documentation webpage.

--tree

Show command tree with descriptions.

--version

Show the version and exit.

app

Create, build and manage applications.

Usage

kelvin app [OPTIONS] COMMAND [ARGS]...

agent

Manage AI agent configuration files for applications.

Usage

kelvin app agent [OPTIONS] COMMAND [ARGS]...
sync

Sync agent configuration files to the application directory.

Copies the latest AGENTS.md and .skills directory from the SDK into the specified application directory. Creates symlinks for AI coding assistants:

- CLAUDE.md → AGENTS.md
- .github/copilot-instructions.md → ../AGENTS.md
- .claude/skills → ../.skills
- .codex/skills → ../.skills
- .cursor/skills → ../.skills
- .github/skills → ../.skills

Example:

kelvin app agent sync –app-dir=”.”

Usage

kelvin app agent sync [OPTIONS]

Options

--app-dir <app_dir>

The path to the application’s directory. Assumes the current directory if not specified.

build

Build a local application into a packaged image.

Usage

kelvin app build [OPTIONS]

Options

--app-dir <app_dir>

The path to the application’s directory. Assumes the current directory if not specified.

--build-arg <build_args>

Docker build-args in KEY=VALUE format.

--multiarch <architectures>

Comma-separated list of architectures to build. Supported: amd64,arm64,arm32. Any other value will be passed to the docker build engine as is.

Default:

'amd64'

--fresh

Build without cache.

--skip-schema-validation

Skip JSON schema validation of app.yaml.

create

Create a new application based on the specified parameters.

If APP_NAME is not provided, you will be prompted for it.

Usage

kelvin app create [OPTIONS] [APP_NAME]

Options

-d, --description <description>

A simple description for the new app.

-t, --app-type <template>

Specify the application type.

Default:

'app'

Options:

app | importer | exporter | docker

--app-dir <app_dir>

The path to create the application in. Defaults to current directory.

--version <app_version>

Initial application version.

Default:

'0.0.1'

Arguments

APP_NAME

Optional argument

images

Management and display of local application images.

Usage

kelvin app images [OPTIONS] COMMAND [ARGS]...
list

List all locally built applications.

Usage

kelvin app images list [OPTIONS]
remove

Remove an application from the local applications list.

APP_NAME_WITH_VERSION must include the version tag (e.g., “my-app:1.0.0”).

Usage

kelvin app images remove [OPTIONS] APP_NAME_WITH_VERSION

Arguments

APP_NAME_WITH_VERSION

Required argument

unpack

Extract the content of an application from its built image.

APP_NAME_WITH_VERSION must include the version tag (e.g., “my-app:1.0.0”).

Example:

kelvin app images unpack “my-app:1.0.0” –output-dir=./extracted

Usage

kelvin app images unpack [OPTIONS] APP_NAME_WITH_VERSION

Options

-o, --output-dir <output_dir>

Required Directory to extract the application content to.

-c, --container-dir <container_dir>

Directory inside the container to extract. Defaults to /opt/kelvin/app.

Arguments

APP_NAME_WITH_VERSION

Required argument

mlflow

MLFlow integration commands.

Usage

kelvin app mlflow [OPTIONS] COMMAND [ARGS]...
create

Create app based on MLFlow model.

Downloads an MLflow model from the registry and creates a new Kelvin application with the model integrated.

Usage

kelvin app mlflow create [OPTIONS]

Options

--registry-uri <registry_uri>

Required MLFlow registry URI.

--model-name <model_name>

Model name

--model-version <model_version>

Model version

--app-name <app_name>

App name, defaults to the model name.

--app-dir <app_dir>

The path to the application’s directory. Assumes the current directory if not specified.

--prompt, --no-prompt

Prompt for missing information if needed.

import

Import a MLFlow model into an existing Kelvin App.

Downloads an MLflow model from the registry and places it in the ‘model’ directory of an existing Kelvin application.

Usage

kelvin app mlflow import [OPTIONS]

Options

--registry-uri <registry_uri>

Required MLFlow registry URI.

--model-name <model_name>

Model name

--model-version <model_version>

Model version

--app-dir <app_dir>

The path to the application’s directory. Assumes the current directory if not specified.

--prompt, --no-prompt

Prompt for missing information if needed.

--update-config, --no-update-config

Update App configuration with model info

list

Search MLFlow models.

Lists available models in the MLflow registry, limited to 1000 results.

Usage

kelvin app mlflow list [OPTIONS]

Options

--registry-uri <registry_uri>

Required MLFlow registry URI.

samples

Opens Kelvin’s code samples GitHub repo.

Usage

kelvin app samples [OPTIONS]

templates

List available application templates.

Usage

kelvin app templates [OPTIONS]

test

Test local applications with simulated data.

Usage

kelvin app test [OPTIONS] COMMAND [ARGS]...
csv

Publishes data from a csv to the application. The publishing rate is determined by the difference between timestamps in the csv rows.

Usage

kelvin app test csv [OPTIONS]

Options

--config <config>

Required Path to the app config file

Default:

'app.yaml'

--csv <csv>

Required Path to the csv file to publish

--publish-interval <publish_interval>

Publish interval. Set either to “csv” to use the interval between csv rows or to a number to set a fixed publishing interval in seconds.

Default:

'csv'

--ignore-timestamps

Ignore CSV timestamps.

Default:

False

--now-offset

Offsets the (first) CSV timestamp to current time (now).

Default:

False

--replay

Replay mode: Continuously publish data from CSV, restarting from the beginning at end of file

Default:

False

--asset-count <asset_count>

Overrides CSV asset column and generates test assets: from ‘test-asset-1’ to ‘test-asset-N’.

--assets <assets>

Assets Info (Properties) CSV file.

--asset-parameter <asset_parameter>

Override asset parameters eg –asset-parameters kelvin_closed_loop=true (Can be set multiple times)

generator

Publishes data generated by a custom generator class

Usage

kelvin app test generator [OPTIONS]

Options

--config <config>

Required Path to the app config file

Default:

'app.yaml'

--entrypoint <entrypoint>

Required Path to the entrypoint (setuptools style) of the generator python class. It can be path a .py file or path to a module. Eg: mygenerator.py:MyGenerator

--asset-count <asset_count>

Number of test assets from ‘test-asset-1’ to ‘test-asset-N’

simulator

Generates random data to application’s inputs

Usage

kelvin app test simulator [OPTIONS]

Options

--config <config>

Required Path to the app config file

Default:

'app.yaml'

--period <period>

Publish period in seconds

Default:

5

--min <min>

Minimum value to publish

Default:

0

--max <max>

Maximum value to publish

Default:

100

--random, --counter

Publish random values or incremental

Default:

True

--asset-count <asset_count>

Number of test assets from ‘test-asset-1’ to ‘test-asset-N’

--asset-parameter <asset_parameter>

Override asset parameters eg –asset-parameters kelvin_closed_loop=true (Can be set multiple times)

upload

Upload an application to the platform’s Application Registry.

This command builds the application Docker image and pushes it to the platform’s registry, then registers the application with the platform.

e.g. kelvin app upload –app-dir=”.”

Usage

kelvin app upload [OPTIONS]

Options

--app-dir <app_dir>

The path to the application’s directory. Assumes the current directory if not specified.

--build-arg <build_args>

Docker build-args in KEY=VALUE format.

--multiarch <architectures>

Comma-separated list of architectures to build. Supported: amd64,arm64,arm32. Any other value will be passed to the docker build engine as is.

Default:

'amd64'

--fresh

Build without cache.

--skip-schema-validation

Skip JSON schema validation of app.yaml.

appregistry

(Deprecated) Manage platform Applications.

This command group is deprecated. Use ‘apps’ instead.

Usage

kelvin appregistry [OPTIONS] COMMAND [ARGS]...

delete

(Deprecated) Delete an application from the platform’s Application Registry.

Usage

kelvin appregistry delete [OPTIONS] APP_NAME_WITH_VERSION

Arguments

APP_NAME_WITH_VERSION

Required argument

download

(Deprecated) Download an application from the platform.

Usage

kelvin appregistry download [OPTIONS] APP_NAME_WITH_VERSION

Options

--tag-local-name, --no-tag-local-name

Tag the downloaded image with a local name.

Default:

True

Arguments

APP_NAME_WITH_VERSION

Required argument

list

(Deprecated) List all available applications on the platform’s Application Registry.

Usage

kelvin appregistry list [OPTIONS]

show

(Deprecated) Show platform details and configurations for a specific application.

Usage

kelvin appregistry show [OPTIONS] [NAME]

Arguments

NAME

Optional argument

upload

(Deprecated) Upload an application to the platform’s Application Registry.

Usage

kelvin appregistry upload [OPTIONS]

Options

--app-dir <app_dir>

The path to the application’s directory.

--build-arg <build_args>

Docker build-args in KEY=VALUE format.

--multiarch <architectures>

Comma-separated list of architectures to build.

Default:

'amd64'

--fresh

Build without cache.

--skip-schema-validation

Skip JSON schema validation of app.yaml.

apps

Manage platform Applications.

Usage

kelvin apps [OPTIONS] COMMAND [ARGS]...

delete

Delete an application from the platform’s Application Registry.

APP_NAME_WITH_VERSION can be just the app name (deletes all versions) or include a specific version (e.g., “example-app:1.0.0”).

WARNING: This will also delete ALL workloads associated with this application.

Examples:

kelvin apps delete “example-app:1.0.0” # Delete specific version

kelvin apps delete “example-app” # Delete all versions

Usage

kelvin apps delete [OPTIONS] APP_NAME_WITH_VERSION

Arguments

APP_NAME_WITH_VERSION

Required argument

download

Download an application from the platform and make it available locally.

APP_NAME_WITH_VERSION should include the version (e.g., “example-app:1.0.0”). If no version is specified, the latest version will be downloaded.

Example:

kelvin apps download “example-app:1.0.0”

Usage

kelvin apps download [OPTIONS] APP_NAME_WITH_VERSION

Options

--tag-local-name, --no-tag-local-name

Tag the downloaded image with a local name (without registry prefix).

Default:

True

Arguments

APP_NAME_WITH_VERSION

Required argument

list

List all available applications on the platform’s Application Registry.

Usage

kelvin apps list [OPTIONS]

show

Show platform details and configurations for a specific application.

NAME can be just the app name or include a version (e.g., “example-app:1.0.0”).

Examples:

kelvin apps show example-app

kelvin apps show example-app:1.0.0

Usage

kelvin apps show [OPTIONS] [NAME]

Arguments

NAME

Optional argument

upload

Upload an application to the platform’s Application Registry.

This command builds the application Docker image and pushes it to the platform’s registry, then registers the application with the platform.

This is equivalent to running ‘kelvin app upload’.

Example:

kelvin apps upload –app-dir=”.”

Usage

kelvin apps upload [OPTIONS]

Options

--app-dir <app_dir>

The path to the application’s directory. Assumes the current directory if not specified.

--build-arg <build_args>

Docker build-args in KEY=VALUE format.

--multiarch <architectures>

Comma-separated list of architectures to build. Supported: amd64,arm64,arm32.

Default:

'amd64'

--fresh

Build without cache.

--skip-schema-validation

Skip JSON schema validation of app.yaml.

auth

Platform authentication.

Manage authentication to the Kelvin platform.

Usage

kelvin auth [OPTIONS] COMMAND [ARGS]...

login

Log in to a Kelvin platform.

URL is the platform URL (e.g., demo.kelvin.ai).

Authentication methods:
- Client credentials: –client-id and –client-secret
- Password: –username and –password (optionally –totp)
- Browser SSO: –browser
- Default: uses stored credentials or prompts for username/password

Usage

kelvin auth login [OPTIONS] [URL]

Options

-u, --username <username>

Username for password authentication.

-p, --password <password>

Password for password authentication.

--totp <totp>

Time-based one-time password (TOTP) for 2FA.

--client-id <client_id>

Client ID for client credentials flow.

--client-secret <client_secret>

Client secret for client credentials flow.

--browser

Use browser-based SSO login.

--reset

Ignore stored credentials and login with new ones.

Arguments

URL

Optional argument

logout

Log out from the current platform.

Usage

kelvin auth logout [OPTIONS]

reset

Reset all authentication state.

Clears stored credentials and session information.

Usage

kelvin auth reset [OPTIONS]

status

Show current authentication status.

Usage

kelvin auth status [OPTIONS]

token

Get the current access token.

Refreshes the token automatically if expired.

Usage

kelvin auth token [OPTIONS]

Options

-f, --full

Show full token information.

configuration

Manage CLI configuration settings.

Usage

kelvin configuration [OPTIONS] COMMAND [ARGS]...

autocomplete

Generate shell completion script.

SHELL is the shell type (bash, zsh, or fish). If not specified, attempts to detect from environment.

To enable completion, add to your shell config:

Bash: eval “$(kelvin configuration autocomplete bash)”
Zsh: eval “$(kelvin configuration autocomplete zsh)”
Fish: kelvin configuration autocomplete fish | source

Usage

kelvin configuration autocomplete [OPTIONS] [[bash|zsh|fish]]

Arguments

SHELL

Optional argument

list

List all available configurations.

Usage

kelvin configuration list [OPTIONS]

reset

Reset all configuration to defaults.

This removes the config file and restores all settings to their default values.

Example: kelvin configuration reset

Usage

kelvin configuration reset [OPTIONS]

set

Set a configuration value.

KEY is the configuration setting name. VALUE is the value to set.

Example: kelvin configuration set verbose 1

Usage

kelvin configuration set [OPTIONS] KEY VALUE

Arguments

KEY

Required argument

VALUE

Required argument

unset

Reset a configuration value to its default.

KEY is the configuration setting name.

Example: kelvin configuration unset verbose

Usage

kelvin configuration unset [OPTIONS] KEY

Arguments

KEY

Required argument

info

Display system and session information.

Shows current session URL, Python version, OS details, and CLI/SDK versions.

Usage

kelvin info [OPTIONS]

reset

Reset all CLI state and cached data.

This will: - Log out from all sessions - Clear stored credentials - Reset configuration to defaults - Remove cached data

This action cannot be undone.

Usage

kelvin reset [OPTIONS]

secret

Manage platform secrets.

Usage

kelvin secret [OPTIONS] COMMAND [ARGS]...

create

Create a secret on the platform.

Usage

kelvin secret create [OPTIONS] [SECRET_NAME]

Options

--value <value>

The value of the secret.

Arguments

SECRET_NAME

Optional argument

delete

Delete secrets on the platform.

SECRET_NAMES: One or more secret names to delete.

Examples:

kelvin secret delete my-secret

kelvin secret delete secret-1 secret-2 secret-3

Usage

kelvin secret delete [OPTIONS] SECRET_NAMES...

Arguments

SECRET_NAMES

Required argument(s)

list

List all the available secrets on the platform.

Usage

kelvin secret list [OPTIONS]

Options

--filter <query>

Filter secrets by name.

update

Update an existing secret on the platform.

Usage

kelvin secret update [OPTIONS] SECRET_NAME

Options

--value <value>

The new value for the secret.

Arguments

SECRET_NAME

Required argument

workload

Manage and view application workloads.

Usage

kelvin workload [OPTIONS] COMMAND [ARGS]...

deploy

Deploy a workload with specified parameters.

Usage

kelvin workload deploy [OPTIONS]

Options

-f, --app-config <app_config>

Required Path to app.yaml config file.

-r, --runtime <runtime>

Path to runtime.yaml config file.

-c, --cluster-name <cluster_name>

Target cluster name.

-n, --workload-name <workload_name>

Workload name.

-t, --workload-title <workload_title>

Workload display title.

list

List the workloads available on the platform.

Usage

kelvin workload list [OPTIONS]

Options

-a, --app-name <app_name>

Filter by application name.

-n, --node-name <node_name>

Filter by node name.

-c, --cluster-name <cluster_name>

Filter by cluster name.

-s, --status <status>

Filter by status.

logs

Display the logs of a specific workload.

Usage

kelvin workload logs [OPTIONS] WORKLOAD_NAME

Options

-n, --tail-lines <tail_lines>

Number of lines to show from the end.

-f, --follow

Follow log output.

-o, --output-file <output_file>

Write logs to a file.

Arguments

WORKLOAD_NAME

Required argument

show

Show the details of a specific workload.

Usage

kelvin workload show [OPTIONS] WORKLOAD_NAME

Arguments

WORKLOAD_NAME

Required argument

start

Start a workload on a node.

Usage

kelvin workload start [OPTIONS] WORKLOAD_NAME

Arguments

WORKLOAD_NAME

Required argument

stop

Stop a running workload.

Usage

kelvin workload stop [OPTIONS] WORKLOAD_NAME

Arguments

WORKLOAD_NAME

Required argument

undeploy

Undeploy and delete a workload.

Usage

kelvin workload undeploy [OPTIONS] WORKLOAD_NAME

Arguments

WORKLOAD_NAME

Required argument

update

Update a specific workload based with new configurations.

Usage

kelvin workload update [OPTIONS] WORKLOAD_NAME

Options

-f, --app-config <app_config>

Required Path to app.yaml config file.

-r, --runtime <runtime>

Path to runtime.yaml config file.

-t, --workload-title <workload_title>

Workload display title.

Arguments

WORKLOAD_NAME

Required argument