Skip to main content

Open Job Description - CLI

pypi python license

Open Job Description (OpenJD) is a flexible open specification for defining render jobs which are portable between studios and render solutions. This package provides a command-line interface that can be used to validate OpenJD templates, run OpenJD jobs locally, and more.

For more information about Open Job Description and our goals with it, please see the Open Job Description Wiki on GitHub.

Compatibility

This library requires:

  1. Python 3.9 or higher;
  2. Linux, MacOS, or Windows operating system;
  3. On Linux/MacOS:
    • sudo

Versioning

This package's version follows Semantic Versioning 2.0, but is still considered to be in its initial development, thus backwards incompatible versions are denoted by minor version bumps. To help illustrate how versions will increment during this initial development stage, they are described below:

  1. The MAJOR version is currently 0, indicating initial development.
  2. The MINOR version is currently incremented when backwards incompatible changes are introduced to the public API.
  3. The PATCH version is currently incremented when bug fixes or backwards compatible changes are introduced to the public API.

Contributing

We encourage all contributions to this package. Whether it's a bug report, new feature, correction, or additional documentation, we greatly value feedback and contributions from our community.

Please see CONTRIBUTING.md for our contributing guidelines.

Commands

Getting Help

The main openjd command and all subcommands support a --help option to display information on how to use the command.

check

Validates, or reports any syntax errors that appear in the schema of a Job Template file.

Arguments

Name Type Required Description Example
path path yes A path leading to a Job or Environment template file. /path/to/template.json
--output string no How to display the results of the command. Allowed values are human-readable (default), json, and yaml. --output json, --output yaml

Example

$ openjd check /path/to/job.template.json

Template at '/path/to/job.template.json' passes validation checks!

summary

Displays summary information about a sample Job or Step, and the Steps and Tasks therein. The user may provide parameters to customize the Job, as parameters can have an impact on the amount of Steps and Tasks that a job consists of.

Arguments

Name Type Required Description Example
path path yes A path leading to a Job template file. /path/to/job.template.json
--job-param, -p string, path no The values for the job template's parameters. Can be provided as key-value pairs, inline JSON string, or path(s) to a JSON or YAML document. If provided more than once then the given values are combined in the order that they appear. --job-param MyParam=5, -p file://parameter_file.json, -p '{"MyParam": "5"}'
--step string no The name of the Step to summarize. --step Step1
--output string no How to display the results of the command. Allowed values are human-readable (default), json, and yaml. --output json, --output yaml

Example

$ openjd summary /path/to/job.template.json \
    --job-param JobName=SampleJob \
    --job-param '{"FileToRender": "sample.blend"}' \
    --job-param file://some_more_parameters.json

--- Summary for 'SampleJob' ---

Parameters:
    - JobName (STRING): SampleJob
    - FileToRender (PATH): sample.blend
    - AnotherParameter (INT): 10

Total steps: 2
Total tasks: 15
Total environments: 0

--- Steps in 'SampleJob' ---

1. 'Step1'
    1 Task parameter(s)
    10 total Tasks

2. 'Step2'
    2 Task parameter(s)
    5 total Tasks

run

Given a Job Template, Job Parameters, and optional Environment Templates this will run a set of the Tasks from the constructed Job locally within an OpenJD Sesssion.

Please see How Jobs Are Run for details on how Open Job Description's Jobs are run within Sessions.

Arguments

Name Type Required Description Example
path path yes A path leading to a Job template file. /path/to/job.template.json
--step string yes The name of the Step to run in a local Session. --step Step1
--environment paths no Path to a file containing Environment Template definitions. Can be provided multiple times. --environment /path/to/env.template1.json --environment /path/to/env.template2.yaml
--job-param, -p string, path no The values for the job template's parameters. Can be provided as key-value pairs, inline JSON string, or as path(s) to a JSON or YAML document. If provided more than once then the given values are combined in the order that they appear. --job-param MyParam=5, -p file://parameter_file.json, -p '{"MyParam": "5"}'
--task-param, -tp string no Instructs the command to run a single task in a Session with the given value for one of the task parameters. The option must be provided once for each task parameter defined for the Step, with each instance providing the value for a different task parameter. Mutually exclusive with --tasks and --maximum-tasks. -tp MyParam=5 -tp MyOtherParam=Foo
--tasks string, path no Instructs the command to run one or more tasks for the Step in a Session. The argument must be either the filename of a JSON or YAML file containing an array of maps from task parameter name to value; or an inlined JSON string of the same. Mutually exclusive with --task-param/-tp and --maximum-tasks. --tasks '[{"MyParam": 5}]', --tasks file://parameter_set_file.json
--maximum-tasks integer no A maximum number of Tasks to run from this Step. Unless present, the Session will run all Tasks defined in the Step's parameter space or the Task(s) selected by the --task-param or --tasks arguments. Mutually exclusive with --task-param/-tp and --tasks. --maximum-tasks 5
--run-dependencies flag no If present, runs all of a Step's dependencies in the Session prior to the Step itself. --run-dependencies
--path-mapping-rules string, path no The path mapping rules to apply to the template. Should be a JSON-formatted list of Open Job Description path mapping rules, provided as a string or a path to a JSON/YAML document prefixed with 'file://'. --path-mapping-rules [{"source_os": "Windows", "source_path": "C:\test", "destination_path": "/mnt/test"}], --path-mapping-rules file://rules_file.json
--preserve flag no If present, the Session's working directory will not be deleted when the run is completed. --preserve
--verbose flag no If present, then verbose logging will be enabled in the Session's log. --verbose
--output string no How to display the results of the command. Allowed values are human-readable (default), json, and yaml. --output json, --output yaml

Example

$ openjd run /path/to/job.template.json --step Step1 \
    --job-param PingServer=amazon.com \
    --task-param PingCount=20 \
    --task-param PingDelay=30

# ... Task logs accompanied by timestamps ...

--- Results of local session ---

Session ended successfully
Job: MyJob
Step: Step1
Duration: 1.0 seconds
Chunks run: 1

schema

Returns the Open Job Description model as a JSON schema document body.

Arguments

Name Type Required Description Example
--version string yes The specification version to get the JSON schema for. --version jobtemplate-2023-09
--output string no How to display the results of the command. Allowed values are human-readable (default), json, and yaml. --output json, --output yaml

Example

$ openjd schema --version jobtemplate-2023-09

{
    "title": "JobTemplate",
    # ... JSON body corresponding to the Open Job Description model schema ...
}

Downloading

You can download this package from:

Verifying GitHub Releases

See Verifying GitHub Releases for more information.

Security

We take all security reports seriously. When we receive such reports, we will investigate and subsequently address any potential vulnerabilities as quickly as possible. If you discover a potential security issue in this project, please notify AWS/Amazon Security via our vulnerability reporting page or directly via email to AWS Security. Please do not create a public GitHub issue in this project.

License

This project is licensed under the Apache-2.0 License.

Metadata

Release files for openjd-cli 0.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for openjd-cli 0.8.0
File Size Uploaded
openjd_cli-0.8.0.tar.gz 37.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for openjd-cli 0.8.0
File Interpreter ABI Platform
openjd_cli-0.8.0-py3-none-any.whl Python 3 none any Details

Total release size: 84.2 kB

Release files / openjd_cli-0.8.0.tar.gz

Download URL openjd_cli-0.8.0.tar.gz
Size 37.8 kB
Tags Source
SHA-256 checksum
How to use checksums
45f323919f945ecb1310d5b427ec351fa575665f7f179dd9cf6e3daed1b7e4ca
BLAKE2b-256 checksum
How to use checksums
2e123527efc61eb15cf60f85227287e31928a4681e8826596517614ce1b0f6fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / openjd_cli-0.8.0-py3-none-any.whl

Download URL openjd_cli-0.8.0-py3-none-any.whl
Size 46.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cd3b7f2a1df6d40f64fd0fd7d75c27c94837af9f8c3ed98da1e8f2c4a1420e03
BLAKE2b-256 checksum
How to use checksums
c4e74e32c03272c2d1d9fb0191b3d72a66caa52ef8c039ba52d6d7c2c2aaade1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.8.0 This release

2 release files

0.7.7

2 release files

0.7.6

2 release files

0.7.5

2 release files

0.7.4

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page