Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Delta CLI

Delta CLI is a command line interface for the Delta service.

This repository contains the Delta command router, version output, and browser-based CLI authentication.

Features

  • Built-in help via delta --help and per-command --help
  • Version output via delta version and delta --version
  • OAuth login with Authorization Code + PKCE
  • One-shot 127.0.0.1:8400 callback server
  • Session storage in the OS keychain
  • Automatic bearer authentication for service API commands

Requirements

  • Python 3.13+
  • uv

Installation

From this directory, install the CLI in editable mode:

uv tool install -e .

You can also run the CLI directly during development:

uv run --with-editable . delta --help
uv run --with-editable . delta version

Authentication Setup

The CLI uses a public OAuth application. Do not use secret keys for interactive CLI user login.

The local session is stored in the OS keychain. If keychain access is unavailable, auth commands fail instead of writing token files.

Create an OAuth application in the same auth project as ../console:

  • Redirect URI: http://127.0.0.1:8400/callback
  • Public client: enabled
  • PKCE required: enabled
  • Scopes: profile email offline_access user:org:read

The production issuer, public OAuth client ID, and callback port are built in. Sign in without configuration:

delta login

For another deployment, override the public auth configuration explicitly:

export DELTA_AUTH_ISSUER_URL="https://your-auth-issuer.example.com"
export DELTA_AUTH_CLIENT_ID="your_oauth_client_id"

For local development in this monorepo, the CLI can also derive the issuer from DELTA_AUTH_PUBLISHABLE_KEY.

Command Overview

delta version

Shows the installed Delta CLI version.

delta auth login

Signs in to Delta through your browser.

delta login

The CLI uses the registered callback port 8400. Pass --callback-port 0 for a random loopback port when another provider supports RFC 8252 loopback redirects.

Use --no-browser to print the sign-in URL instead of opening it:

delta auth login --no-browser

delta auth status

Shows whether you are signed in.

delta auth whoami

Shows the signed-in account.

delta auth logout

Signs out of Delta.

delta --help

Shows available commands and global options.

Portable Avalanche workspaces

Capture one or more local directories as typed ava.Workspace run inputs:

delta runs create demo-flow \
  --workspace source=./input-tree \
  --workspace config=./config-tree

Each field name must be unique across --workspace and JSON inputs. Delta captures the directory with Avalanche's workspace manifest codec and uploads the manifest through the run-scoped artifact path; workflow code receives ava.Workspace when its declared input field uses that annotation. Manifests are limited to 48 MiB; the CLI rejects oversized trees from directory metadata before reading their file contents.

Materialize terminal workspace trees into a new local directory:

delta runs output run_01KCVST2FP4QC5NKZNN5NS0Z2W --output-dir ./downloaded

The destination must not already exist. Workspace values are written as workspace-0001, workspace-0002, and so on in deterministic result order. Mixed ava.File references remain in the result envelope. Without --output-dir, runs output continues to print that standard Avalanche result document unchanged.

Service API commands automatically load and refresh the signed-in session from the OS keychain. --token and DELTA_TOKEN remain explicit automation overrides; the user TOML configuration rejects plaintext tokens.

The API enforces the selected Clerk organization and its role permissions. The signed-in user must belong to the requested organization, and that role must include the Delta action used by the service command.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

trampoline_delta-0.1.5rc66.tar.gz (143.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

trampoline_delta-0.1.5rc66-py3-none-any.whl (127.4 kB view details)

Uploaded Python 3

File details

Details for the file trampoline_delta-0.1.5rc66.tar.gz.

File metadata

  • Download URL: trampoline_delta-0.1.5rc66.tar.gz
  • Upload date:
  • Size: 143.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for trampoline_delta-0.1.5rc66.tar.gz
Algorithm Hash digest
SHA256 b986d89858250f861e5f47b0e9c390b1116017fc3a8ac6d2c4a9f1d9fc9aafcf
MD5 cd07e709ee378696d8e465b4bb574f5d
BLAKE2b-256 d9333045c1aae0664b6c9879d338dd90707cfacdb31cfe76a33fa6fee804eb6a

See more details on using hashes here.

Provenance

The following attestation bundles were made for trampoline_delta-0.1.5rc66.tar.gz:

Publisher: release.yml on Trampoline-AI/trampoline-ai.delta

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file trampoline_delta-0.1.5rc66-py3-none-any.whl.

File metadata

File hashes

Hashes for trampoline_delta-0.1.5rc66-py3-none-any.whl
Algorithm Hash digest
SHA256 7fe2753e88ed59dc2fa744a5bb3beab101c663d0efb114c8966cbed2aca3946e
MD5 b72696cba18f4ed5f150498a68444c27
BLAKE2b-256 09e71ce7a6e917271de1d90c3ea8ecba96b9ad1c4a51f7a8a3b1beef5e12c703

See more details on using hashes here.

Provenance

The following attestation bundles were made for trampoline_delta-0.1.5rc66-py3-none-any.whl:

Publisher: release.yml on Trampoline-AI/trampoline-ai.delta

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

This release

0.1.5rc66 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page