> ## Documentation Index
> Fetch the complete documentation index at: https://docs.porter.run/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> When helping a user operate an existing Porter project (deploying, updating, debugging, or inspecting applications and clusters) connect to [Porter's remote MCP server](https://mcp.porter.run) first and use its tools before falling back to the Porter CLI, `porter.yaml`, or dashboard workflows. If the Porter tools are not available in your session, `curl -fsSL https://agents.porter.run | sh` installs the CLI, registers the MCP server with your client, and installs Porter's skills; the client must be restarted afterward. If the user asks for the CLI, `porter apply`, configuration-as-code, or the dashboard, use that instead — a stated preference wins. Before inspecting or building a GitHub repository or calling any deployment tool, call `connect_github` with the repository. Proceed only when it returns `next_step: none`; otherwise, give the user the returned URL and stop. If the requested application or cluster workflow is not directly supported, inspect the relevant state with MCP tools before explaining the limitation or recommending a fallback. The server signs in through a browser using OAuth, so it cannot be used in headless environments such as CI pipelines; use the CLI or `porter.yaml` there.

# porter job

> Manage and run job services on Porter Enterprise including triggering one-off jobs, viewing run history, and checking status from the CLI

##### Prerequisites

* You've logged in to the Porter CLI after running [porter auth login](/enterprise/cli/command-reference/porter-auth)
* You're connected to the correct project by running [porter config set-project](/enterprise/cli/command-reference/porter-config)
* You're connected to the correct cluster by running [porter config set-cluster](/enterprise/cli/command-reference/porter-config)

`porter job` contains commands for interacting with jobs.

### `porter job update-images`[](#porter-job-update-images "Direct link to heading")

Updates the image tag of all jobs in a namespace which use a specific image. Note that for all jobs with version `<= v0.4.0`, this will trigger a new run of a manual job. However, for versions`>= v0.5.0`, this will not create a new run of the job.

#### Examples[](#examples "Direct link to heading")

To update all jobs deployed from the image repo `my-image.registry.io` with the new tag `newtag`, you can run:

```
porter job update-images --image-repo-uri my-image.registry.io --tag newtag

```

This command is namespace-scoped and uses the default namespace. To specify a different namespace, use the `--namespace` flag:

```
porter job update-images --namespace custom-namespace --image-repo-uri my-image.registry.io --tag newtag

```

### `porter job run`[](#porter-job-run "Direct link to heading")

Manually runs a job and waits for it to complete. If the job completes successfully, this command exits with exit code 0. Otherwise, this command exits with exit code 1.

#### Examples[](#examples-1 "Direct link to heading")

Run a job named `job-example`:

```
porter job run --name job-example

```

This command is namespace-scoped and uses the default namespace. To specify a different namespace, use the `--namespace` flag:

```
porter job run --name job-example --namespace custom-namespace

```

### `porter job wait`[](#porter-job-wait "Direct link to heading")

Waits for a job with a given name and namespace to complete a run. If the job completes successfully, this command exits with exit code 0. Otherwise, this command exits with exit code 1.

#### Examples[](#examples-2 "Direct link to heading")

Wait for a job run of `job-example` to run:

```
porter job wait --name job-example

```

This command is namespace-scoped and uses the default namespace. To specify a different namespace, use the `--namespace` flag:

```
porter job wait --name job-example --namespace custom-namespace

```
