# Jobs: hand longer work to the coder

> A job is longer work Piste hands to the coder, which runs it on its own computer for up to 60 minutes. Follow it on Jobs, step into its browser, or cancel it.

Source: https://www.usepiste.com/docs/jobs

A job is a longer piece of work that Piste hands to the coder, which runs it in the background on its own disposable computer. Only the workspace owner can start one, one job runs at a time, and each attempt gets up to 60 minutes of working time. You follow it on the Jobs page, and its result comes back to the conversation you asked in.

## What can the coder do?

The coder works on a fresh computer of its own, with a shell, Node and the internet, and a real web browser for work on a website. A job on your [Claude plan](#how-do-i-run-jobs-on-my-claude-plan) has no browser. It suits work that needs a computer rather than a reply: writing and running a script, building or checking something, transforming a file, or working through a site's admin pages, dashboards and forms.

The coder can't see your conversation. Piste writes it a brief with everything it needs, and tells you the job has started. Questions and small tasks Piste answers itself.

The coder has no credentials of its own:

- It has no access to your code repositories or GitHub.
- It has no connection to your Shopify store or theme. Work in your Shopify admin, such as a theme fix, can happen only in the coder's browser, after you sign in for it when it asks.
- It never gets your passwords. When a sign-in, a 2FA prompt or a captcha stops it, it hands the browser to you.

> **A job doesn't stop for approvals**
> Once a job starts, the coder works through its brief without asking anyone. What it does on a website happens on that site directly, so it isn't a [store edit](https://www.usepiste.com/docs/approvals/store-edits): there's no card and no Undo in Piste. Say exactly what you want done, and what it shouldn't touch.

## Who can start a job?

Only the workspace owner, in any conversation with Piste: on the web, in Slack or over iMessage. When someone else asks for longer work, Piste says only the workspace owner can start coder jobs.

Piste doesn't offer the coder in a dry run (Try it now), or in a conversation started with Ask Piste about this or Watch for this on a Slack message.

## How do I run a job?

### 1. Ask Piste for the work

Describe what you want done and what finished work looks like. Piste hands it to the coder and tells you the job has started.

### 2. Follow it on Jobs

Open **Jobs** in the sidebar ([app.usepiste.com/jobs](https://app.usepiste.com/jobs)). The sidebar shows how many jobs are in progress. The list shows Running and Queued jobs first, then finished ones by day, and you can filter by All, In progress, Failed and Done. A job's page refreshes by itself while the job is live.

### 3. Read the result

When the job finishes, Piste reports the coder's summary in the conversation you asked in. The job's page shows it under Result.

A job's status is one of Queued, Running, Done, Failed or Cancelled. While it waits for you in its browser, its page says "Waiting for you in the browser".

## What happens when the coder needs me in its browser?

When a sign-in, a 2FA prompt or a captcha blocks the coder, it hands the browser to you and pauses. A job on your Claude plan has no browser, so it never hands one over. Nothing of the coder runs while it waits, and the attempt's 60 minutes stop. Piste lets you know:

| Where you asked | How you hear |
|---|---|
| The web app | The computer button at the top of the chat gets an amber dot, and a line above the message box says "The coder needs you:" with `Open browser`. |
| Slack | A DM from Piste: "The coder needs you in its browser on" the site, the coder's reason, a Take over in Piste link, and how many minutes it waits. |
| iMessage | A text with the same details and link. |

The job's page also shows "The coder needs a hand in the browser on" the site, with the coder's reason and the time it waits until.

### 1. Press Take control

On the job's page, or in the chat's browser sheet, press `Take control`. The live browser opens.

### 2. Do what it asks

Sign in, enter the code or solve the captcha in the live browser. The job's clock stays stopped while you have it.

### 3. Press Hand back

Press `Hand back`. The coder carries on from the page as you left it.

If you can't do it, press `I can't do this`, and the coder carries on without the browser. Hand-offs can hold an attempt for up to 45 minutes in all. If nobody finishes in time, the browser is closed and the coder says what it still needs, and once the 45 minutes are used up, the coder can't hand over again. Only the workspace owner can take over the browser.

The coder keeps a browser profile for each site, so a sign-in can last from one job to the next.

## How long can a job run?

Each attempt gets 60 minutes of working time. Time spent waiting for you in the browser doesn't count, up to 45 minutes. A job that runs out of time stops with "The job used its 60 minutes of working time and was stopped."

One job runs at a time in each workspace. Another job waits in the queue, and its page says "It starts as soon as the coder is free. One job runs at a time." A queued job waits up to 1 hour 45 minutes for the other job to finish, then gives up.

## How do I cancel or retry a job?

- `Cancel job` stops a queued or running job. Its computer is deleted and its browser closed.
- `Retry` runs a failed or cancelled job again. It sends "Retry the coder job" with the job's title into the chat the job came from, and the same job runs again as its next attempt. The page then shows the attempt's number.

Retry needs the web chat the job started from. For a job you asked for in Slack or over iMessage, `Retry` is switched off: ask Piste for the work again. Only the workspace owner can cancel or retry a job.

## What do I get when a job finishes?

| | |
|---|---|
| Result | The coder's summary in plain language, on the job's page and in your conversation |
| Transcript | What the coder did, step by step |
| Started from | The chat the job came from, for a job asked for in the web app |
| Took | How long the job ran |
| Ran on | Piste, your Claude plan or your ChatGPT plan |

The coder's computer is deleted when the job ends, and nothing it made there is kept. If you need an output, such as a list or a short file, ask for it in the summary.

## Which plan does a job run on?

Each attempt runs on the first of these that's connected when it starts, and the job's page says which under Ran on:

| | Runs on | Ran on reads, for example |
|---|---|---|
| 1 | Your Claude plan, with Claude Code | "Your Claude Max plan" |
| 2 | The workspace's [ChatGPT plan](https://www.usepiste.com/docs/chatgpt-plan), with Codex | "Your ChatGPT Plus plan" |
| 3 | Piste | "Piste" |

On a Claude or ChatGPT plan, a job that fails doesn't fall back to Piste: its error says what to do next, such as retrying once the plan's limit resets or reconnecting the plan.

## How do I run jobs on my Claude plan?

The workspace owner can connect their own Claude Pro or Max plan, and coder jobs they start then run Claude Code on the plan's own limits instead of on Piste, even when a ChatGPT plan is connected too. It's for jobs only: conversations and automations don't run on it. You sign in on Claude's site, and Claude Code keeps the sign-in: Piste never sees your password or your sign-in.

### 1. Open the Connections page

Press `Connections` in the links at the foot of the sidebar. The Claude card is under Jobs: "Run your coder jobs on your own Claude plan, with Claude Code, instead of Piste's."

### 2. Press Connect Claude

Press `Connect Claude`. The card reads "Starting Claude Code…", then shows three steps.

### 3. Open Claude's sign-in page

Press `Open Claude`. Only continue if you started this from Piste just now.

### 4. Sign in and approve

Use the Claude account with your Pro or Max plan. Claude then shows you a code.

### 5. Paste the code

Paste Claude's code into the card and press `Connect`. After "Checking with Claude…", the card's state reads "Connected", with your account, its plan, such as "Claude Max", and "Coder jobs you start run Claude Code on your Claude plan, even when ChatGPT is connected too."

The sign-in has to finish within 15 minutes, or the card says "That sign-in took longer than 15 minutes. Start again." Press `Start again`.

A job on your Claude plan works the same way as any other, with the same 60 minutes and queue, except that it has no browser: the coder can't work through a website's pages or hand you its browser. Jobs on ChatGPT or Piste have the browser.

### When your Claude plan can't run a job

The job fails, and its error says what to do. It doesn't move to Piste.

| Situation | The job's error |
|---|---|
| The plan reaches its usage limit | "Your Claude plan hit its usage limit. Retry the job once it resets (claude.ai/settings/usage shows when), or disconnect Claude in Settings > Connections to run jobs on Piste." |
| Claude Code's sign-in expired or was signed out | "Claude Code's sign-in to your Claude plan has expired or was signed out. Reconnect Claude in Settings > Connections, then retry the job." |

Once a job finds the sign-in expired, the Claude card's state reads "Needs reconnecting", and the card says your coder jobs can't run on the plan. Jobs you start fail the same way until you press `Reconnect`, or `Disconnect` to run jobs on ChatGPT or Piste. Needs you doesn't list it.

### Switching account or disconnecting

- **Switch account:** press `Switch account` on the card and sign in again. Your current account stays connected until the new sign-in finishes.
- **Disconnect:** press `Disconnect` and confirm. "Your coder jobs will run on ChatGPT, if it's connected, or on Piste again. Claude Code is signed out of your Claude account here."

Only the workspace owner can connect, switch or disconnect Claude.

## Limits

| | |
|---|---|
| Working time per attempt | 60 minutes |
| Browser hand-offs per attempt | 45 minutes in all, with the clock stopped |
| Jobs running at once | 1 per workspace |
| Longest wait in the queue | 1 hour 45 minutes |
| Who can start, cancel or retry a job | The workspace owner |
| Files kept after the job | None |
| Browser on a Claude plan | None |
| Connecting Claude | The sign-in has to finish within 15 minutes |

## Related

- [ChatGPT plan](https://www.usepiste.com/docs/chatgpt-plan): run coder jobs on your own ChatGPT plan.
- [Team and roles](https://www.usepiste.com/docs/team): what the owner can do that others can't.
- [Approvals](https://www.usepiste.com/docs/approvals): what Piste asks before acting, outside of jobs.
- [Security and privacy](https://www.usepiste.com/docs/security): what Piste stores and what it never sees.

## Questions

### How long can a coder job run?

Up to 60 minutes of working time per attempt. Time the job spends waiting for you in its browser, up to 45 minutes in all, doesn't count, and Retry starts a new attempt with fresh time.

### Can two jobs run at once?

No. One job runs at a time in each workspace, and the next one waits in the queue. A queued job gives up after waiting 1 hour 45 minutes.

### Do I have to give Piste my passwords for a job?

No. When a site needs a sign-in, the coder hands its browser to you and you type your details yourself. Never put a password in a request.

### Can a teammate start a job?

No. Only the workspace owner can start, cancel or retry a coder job, or take over its browser.

### Where do I see what a job did?

Piste reports the coder's summary in the conversation you asked in. The job's page on Jobs shows the same summary under Result, and the coder's steps under Transcript.

### Does the coder keep the files it makes?

No. Its computer is deleted when the job ends, so the job's outputs are its summary and its transcript.

### Can coder jobs run on my Claude plan?

Yes. The workspace owner can connect their Claude Pro or Max plan on the Connections page, under Jobs. Jobs they start then run Claude Code on that plan, even when a ChatGPT plan is connected too.
