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

Uploaded Python 3

File details

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

File metadata

  • Download URL: steve_cli-0.3.1.tar.gz
  • Upload date:
  • Size: 7.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.1.tar.gz
Algorithm Hash digest
SHA256 190a61ae4d414be2d20b4bc9f03b5e9492036b1df4123cf2958dfa4cd2d21053
MD5 e178c668afbecb988f1788d07ba9ef28
BLAKE2b-256 b20bdfa8ae71759c8b928049aa5b3c5b880594e979336c6981f63e63ffa746ab

See more details on using hashes here.

File details

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

File metadata

  • Download URL: steve_cli-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 7.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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8a5e15145faf30ffe2caf82264d97816177ab273bef63ea6f1f46342f84dbe99
MD5 b3394075e438a6661a7b0fefd038ec62
BLAKE2b-256 5eb5550fcf09ab9befafe5a75292b47645d25637d554ed1c20fce182a14bbacc

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