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

# Your first workflow

> Scaffold, push, and run a workflow from the CLI in a few minutes.

This tutorial creates a workflow project, pushes it to EigenPal, runs it on a
file, and reads the output.

## 1. Install the CLI

```bash theme={null}
npm install -g @eigenpal/cli
eigenpal auth login
```

`auth login` opens a browser to create an API key and stores it locally. One key
maps to one tenant.

## 2. Scaffold a project

```bash theme={null}
eigenpal init workflow parse-invoice
cd parse-invoice
```

You get a self-contained project: `workflow.yaml`, `evaluators.yaml`, and a
`dataset/` folder. Open `workflow.yaml` to see the step graph.

## 3. Validate and push

```bash theme={null}
eigenpal workflow validate     # check the project locally
eigenpal workflow push         # create the workflow (or a new version)
```

`push` prints the workflow id (`wf_...`). Validation runs locally first, so you
catch schema mistakes before anything hits the server.

## 4. Run it on a file

```bash theme={null}
eigenpal run workflows.parse-invoice --input-file document=invoice.pdf
```

File fields use `--input-file name=path`. The command starts a run and prints a run id
(`exec_...`).

## 5. Read the output

```bash theme={null}
eigenpal runs get <run-id>        # status + output JSON
eigenpal runs watch <run-id>      # live, until it finishes
eigenpal runs trace <run-id>      # per-step detail
```

`runs get` prints the structured output. `runs trace` shows what each step did,
which is where you look when a step produced the wrong thing.

## Next

* Add examples and ground truth in [Build a dataset](/guides/build-a-dataset).
* Score the workflow in [Evaluate a workflow](/guides/evaluate-workflow).
* Browse every step type under [Workflow steps](/concepts/steps-overview).
