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

Uploaded Python 3

File details

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

File metadata

  • Download URL: steve_cli-0.3.0.tar.gz
  • Upload date:
  • Size: 7.8 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.0.tar.gz
Algorithm Hash digest
SHA256 a8c4423dfecd3a34a42fe81ec099f6eef34084d50fc3eafb2a6dfdb2c43680b4
MD5 ed46b693a8c18a0937a68c376a9d0ed2
BLAKE2b-256 f36c40936803eefb6a6f530e4acb6581e6a7ca963200157b63bba1b7b5fbe628

See more details on using hashes here.

File details

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

File metadata

  • Download URL: steve_cli-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 7.0 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 be1e9d50844474c9f2d9f55045404ac0fe6cc865b98df15e4018b659c370046c
MD5 ead1ba764546e43713dc7be0fce97f27
BLAKE2b-256 99b7b8e6c7d6d2811366e6fbdcf9b4fe218c854aa2d73b32ba03213d693857e4

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