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:
- Look for
jobs.yamlin the current directory - Find the specified job by name
- Set all environment variables from the job's
envsection - 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:
- Set
SOURCE_URL=https://jsonplaceholder.typicode.com/users - Set
OUTPUT_PATH=/data/raw/extracted_data.parquet - 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.yamlin 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
190a61ae4d414be2d20b4bc9f03b5e9492036b1df4123cf2958dfa4cd2d21053
|
|
| MD5 |
e178c668afbecb988f1788d07ba9ef28
|
|
| BLAKE2b-256 |
b20bdfa8ae71759c8b928049aa5b3c5b880594e979336c6981f63e63ffa746ab
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a5e15145faf30ffe2caf82264d97816177ab273bef63ea6f1f46342f84dbe99
|
|
| MD5 |
b3394075e438a6661a7b0fefd038ec62
|
|
| BLAKE2b-256 |
5eb5550fcf09ab9befafe5a75292b47645d25637d554ed1c20fce182a14bbacc
|