# Workflows

Add background [workflows](/docs/workflows) to a project created before they were part of every new one.

### Syntax

```
$ vela enable workflows
```

Projects created with Vela 0.13 or later already have everything this adds, and running it there changes nothing. On an older project it brings the same files in:

- `src/lib/server/workflows.ts` - The OpenWorkflow client, the superuser client for steps, and the worker
- `src/lib/workflows/` - Where workflow files go, with a README
- An `init` hook in `src/hooks.server.ts` that starts the worker when the server does
- The PocketBase and workflow variables declared in `src/env.ts`

and installs `openworkflow`, `openworkflow-pocketbase` and `croner`.

### The init hook

The hook is appended to `src/hooks.server.ts` as it is, whether the file exports a bare `handlePocketbase` or a `sequence` of handles:

```ts
import type { ServerInit } from '@sveltejs/kit/hooks';
import { startWorker } from '#lib/server/workflows.js';

export const init: ServerInit = () => startWorker();
```

A file that already exports an `init` is left alone, with a note to call `startWorker()` from it yourself.

After enabling, [`vela generate workflow`](/docs/generate/workflow) adds the first workflow.