> For the complete documentation index, see [llms.txt](https://docs.zama.org/concrete-ml/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.zama.org/concrete-ml/0.4/getting-started/pip_installing.md).

# Installation

{% hint style="danger" %}
Please note that not all hardware/OS combinations are supported. Determine your platform, OS version and Python version before referencing the table below.
{% endhint %}

Depending on your OS, Concrete-ML may be installed with Docker or with pip:

|                OS / HW               | Available on Docker | Available on pip |
| :----------------------------------: | :-----------------: | :--------------: |
|                 Linux                |         Yes         |        Yes       |
|                Windows               |         Yes         |   Not currently  |
|      Windows Subsystem for Linux     |         Yes         |        Yes       |
|             macOS (Intel)            |         Yes         |        Yes       |
| macOS (Apple Silicon, ie M1, M2 etc) |         Yes         |   Not currently  |

Also, only some versions of `python` are supported: in the current release, these are `3.8` and `3.9`. Please note that, at the time of this Concrete-ML version release, [Kaggle](https://www.kaggle.com) or [Google Colab](https://colab.research.google.com) use Python 3.7 which is a deprecated version and is not supported by Concrete-ML.

Most of these limits are shared with the rest of the Concrete stack (namely Concrete-Numpy and Concrete-Compiler). Support for more platforms will be added in the future.

## Using PyPi

### Requirements

Installing Concrete-ML using PyPi requires a Linux-based OS or macOS running on an x86 CPU. For Apple Silicon, Docker is the only currently supported option (see [below](#using-docker)).

Installing on Windows can be done using Docker or WSL. On WSL, Concrete-ML will work as long as the package is not installed in the /mnt/c/ directory, which corresponds to the host OS filesystem.

### Installation

To install Concrete-ML from PyPi, run the following:

```shell
pip install -U pip wheel setuptools
pip install concrete-ml
```

This will automatically install all dependencies, notably Concrete-Numpy.

## Using Docker

Concrete-ML can be installed using Docker by either pulling the latest image or a specific version:

```shell
docker pull zamafhe/concrete-ml:latest
# or
docker pull zamafhe/concrete-ml:v0.4.0
```

The image can be used with Docker volumes, [see the Docker documentation here](https://docs.docker.com/storage/volumes/).

The image can then be used via the following command:

```shell
# Without local volume:
docker run --rm -it -p 8888:8888 zamafhe/concrete-ml

# With local volume to save notebooks on host:
docker run --rm -it -p 8888:8888 -v /host/path:/data zamafhe/concrete-ml
```

This will launch a Concrete-ML enabled Jupyter server in Docker that can be accessed directly from a browser.

Alternatively, a shell can be lauched in Docker, with or without volumes:

```shell
docker run --rm -it zamafhe/concrete-ml /bin/bash
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.zama.org/concrete-ml/0.4/getting-started/pip_installing.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
