Skip to main content

A simple CLI tool to run jobs from jobs.yaml with proper environment setup

Project description

Steve CLI

A simple CLI tool to run jobs from jobs.yaml with proper environment setup. Perfect for local development and testing of automation kernel jobs.

Installation

Install from local development

cd /home/frank/Projects/7frank/tilt-ts-4/apps/example-hehnke/packages/steve-cli
uv venv
uv pip install -e .

Install from GitHub

uv add steve-cli

OR

uv add git+https://github.com/your-org/tilt-ts-4.git#subdirectory=apps/example-hehnke/packages/steve-cli

Usage

Run a job

steve extract-data
steve transform-data
steve validate-data

This will:

  1. Look for jobs.yaml in the current directory
  2. Find the specified job by name
  3. Set all environment variables from the job's env section
  4. Execute the job's command with the proper environment

List available jobs

steve ls

Shows all jobs in jobs.yaml with their commands, schedules, dependencies, and environment variables.

Get help

steve help
steve --help

Use custom jobs file

steve -f path/to/custom.yaml extract-data
steve ls -f path/to/custom.yaml

Example

Given a jobs.yaml file:

jobs:
  - name: extract-data
    cron: "0 2 * * *"
    command: ["uv", "run", "src/extract.py"]
    env:
      SOURCE_URL: "https://jsonplaceholder.typicode.com/users"
      OUTPUT_PATH: "/data/raw/extracted_data.parquet"

  - name: transform-data
    dependsOn: ["extract-data"]
    command: ["uv", "run", "src/transform.py"]
    env:
      INPUT_PATH: "/data/raw/extracted_data.parquet"
      OUTPUT_PATH: "/data/processed"

Running steve extract-data will:

  1. Set SOURCE_URL=https://jsonplaceholder.typicode.com/users
  2. Set OUTPUT_PATH=/data/raw/extracted_data.parquet
  3. Execute: uv run src/extract.py

Features

  • Simple: Just steve <job-name> to run any job
  • Environment: Automatically sets environment variables from jobs.yaml
  • Discovery: Auto-finds jobs.yaml in current directory
  • Listing: See all available jobs with steve ls
  • Flexible: Supports custom jobs file paths
  • Colorful: Nice colored output for better readability
  • Error handling: Clear error messages for missing jobs or files

Why Steve?

Named after Steve Jobs - because it helps you run jobs locally! 😄

Requirements

  • Python 3.8+
  • click >= 8.0.0
  • pyyaml >= 6.0

Development

# Install in development mode
uv pip install -e .

# Run tests (when added)
pytest

# Format code
black steve_cli/
isort steve_cli/

uv build uv publish

Project details


Download files

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

Source Distribution

steve_cli-0.2.0.tar.gz (7.5 kB view details)

Uploaded Source

Built Distribution

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

steve_cli-0.2.0-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file steve_cli-0.2.0.tar.gz.

File metadata

  • Download URL: steve_cli-0.2.0.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"25.04","id":"plucky","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for steve_cli-0.2.0.tar.gz
Algorithm Hash digest
SHA256 30639c181c586731ec1930cfea9676fcc7bb6967a5575afe9c4624c029e4fb4b
MD5 651993a2f6f4ab9c45f1282dc5d75387
BLAKE2b-256 2cebb33987444b389e0259bc37f896ddced0da539f9596410d0f7c3d187b543c

See more details on using hashes here.

File details

Details for the file steve_cli-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: steve_cli-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 6.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"25.04","id":"plucky","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for steve_cli-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 566d170483a23c15c752e3cda44d1504e14d7b6fb8e0411c0f252c5e8adebff9
MD5 8ace98ddc83fa7a3344017932a09b3c2
BLAKE2b-256 6b8c33dd87877bc28fae7af812108b56cdd74d943eaadcdb45dbf2c8dbfd32db

See more details on using hashes here.

Supported by

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