# Procfiles

Procfiles are a simple manifest format that describes processes. Here's an example:

```
web: node run dev
api: go run ./server
```

Each line contains a process name and a command to execute separated by a colon and some whitespace.

When a process is started, a unique `PORT` environment variable is supplied to each.

Most procfile runners, Exo included, have a single command to start all processes in the procfile, then tail their logs until interrupted:

```bash
exo run Procfile
```

## Video

Video demonstration of using Exo with a Rails application configured via a Procfile.

{% embed url="<https://youtu.be/WPaLj9R8rXE>" %}

## References

* [The New Heroku](https://blog.heroku.com/the_new_heroku_1_process_model_procfile) - Introduction of Procfiles from 2011.
* [Foreman](https://github.com/ddollar/foreman) - The original Procfile runner.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.deref.io/exo/manifests/migrate/procfiles.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
