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/

use cli

source .venv/bin/activate steve

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.3.2.tar.gz (8.9 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.3.2-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: steve_cli-0.3.2.tar.gz
  • Upload date:
  • Size: 8.9 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.3.2.tar.gz
Algorithm Hash digest
SHA256 3e261493984ccd7cfcfee005f2bb622775c2fb83203f3e6ba672ab13b7130ae1
MD5 8d586ab6cd47288a2c48f2db13dbf71e
BLAKE2b-256 281f6273ce7b8df330342402781253243acd93326fccd5ab7df4648c13a67253

See more details on using hashes here.

File details

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

File metadata

  • Download URL: steve_cli-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 8.1 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.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 79408a286c47579d548059ba56acdd43e9ee021c88c3f76e562d3c188497dce6
MD5 1c36539c7ed2bdf3eb550a88488847dd
BLAKE2b-256 e3fbe0e755fefb54d0e721cac3cd2d88c1737acce0bb1a6f445febe2adbf3e43

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