> For the complete documentation index, see [llms.txt](https://docs.ellipsis-drive.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ellipsis-drive.com/extra/creating-a-process.md).

# Creating a process

A process allows you to execute a [Python script](https://ellipsis-package.readthedocs.io/en/latest/) on Ellipsis Drive using the Information Factory compute environment.

Processes are deployed via a Git repository and executed on server side.

***

#### Execution model

To benefit from server side performance optimizations, data must be accessed and written using the Ellipsis Python package. An example script can be found [here](https://github.com/ellipsis-drive/process-example/blob/main/chlorophyl.py).

This enables optimized data streaming when the process runs server side instead of client side.

***

#### Deployment

A process is defined as a Python script stored in a Git repository.

The repository must include:

* the main script
* [a requirements.txt file](https://github.com/ellipsis-drive/process-example/blob/main/requirements.txt) in the root directory

To add a process:

1.) Click New → More → New Process

<figure><img src="/files/mzaD3moOnsujwTw7OV5N" alt=""><figcaption></figcaption></figure>

2.) Provide the Git URL and specify the script path inside the repository

<figure><img src="/files/B8UmTMahsFHEoBZU0640" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Once deployed, the latest version of the Git repository is always used at runtime, ensuring you do not need to re-add your process when you update it.
{% endhint %}

***

#### Parameters

Your script can take free parameters that can be provided whenever the process is run.

These parameters are:

* defined when creating the process
* provided by the user at execution time
* passed to the script as command-line arguments

{% hint style="info" %}
**Each parameter requires:**

* name
* description
* example value
  {% endhint %}

<figure><img src="/files/GkqyIpe6GjFycWyFZcdT" alt=""><figcaption></figcaption></figure>

Example usage in script:

```
pathId = sys.argv[1]
```

All parameters are passed as strings and must be parsed accordingly to an appropriate format.
