> For the complete documentation index, see [llms.txt](https://docs.dothq.co/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.dothq.co/main/cloning-dot/macos.md).

# macOS

## First things first...

* Make sure you have at least 20 GB of space free on your hard drive.
* You'll need to be on a 64-bit operating system to clone and build Dot Browser.
  * If typing `uname -m` into a terminal returns `x86_64` you are on a 64-bit computer.
* The following software and tools are required for the build process:
  * Git ([git-scm.org](https://git-scm.org))
  * Mercurial ([mercurial-scm.org](https://www.mercurial-scm.org/))
  * Homebrew ([brew.sh](https://brew.sh))
  * python3 ([python.org](https://www.python.org/downloads/))
  * python2 ([python.org](https://python.org))
  * git-cinnabar ([github.com/glandium/git-cinnabar/#setup](https://github.com/glandium/git-cinnabar/#setup))

{% hint style="info" %}
Dot Browser is based on Firefox, which is why it is referenced a lot in the build process.
{% endhint %}

## Downloading the bootstrapper

We're now going to install the tool to clone and bootstrap Dot Browser.

```
curl https://raw.githubusercontent.com/dothq/browser-ff/master/python/mozboot/bin/bootstrap.py -o bootstrap.py
```

This will download the `bootstrap.py` Python script from GitHub.

Now we want to run the bootstrapper by typing the command below. The bootstrap will take around 10 minutes up to a couple hours.

```bash
python3 bootstrap.py
```

After the clone is complete the bootstrapper will ask you what version you want to build. This table will demonstrate the differences between an artifact build and a generic build.

|                                     | Artifact builds | Generic builds |
| ----------------------------------- | --------------- | -------------- |
| Time to build                       | \~10 seconds    | \~1 hour       |
| Can build on low-end computers      | ✅               | ❌              |
| Can build front-end (HTML, CSS, JS) | ✅               | ✅              |
| Can build C++ code                  | ❌               | ✅              |
| Can build Rust code                 | ❌               | ✅              |
| Modify build system                 | ❌               | ✅              |

## Building Dot Browser

It's time to build the browser! Start by entering the repo directory.

```bash
cd dot # or the name of the repo you chose in the bootstrapper
```

Now we can start building.

```
./mach build
```

If everything went smoothly with the build you should see the following text:

```jsx
1:03.56 Your build was successful!
To take your build for a test drive, run: |mach run|
```

## Running Dot Browser

You've made it! You have successfully built Dot Browser. Now it's time to take our build for a test drive. We can do that by running:

```
./mach run
```

If everything went according to plan, you should see Dot Browser appear before your eyes!

![It's magic! ✨](/files/-MP6L79Litc5_EDcMU75)

If you encounter any issues, [open an issue with the correct component on our GitHub repository](https://github.com/dothq/browser/issues/new/choose).


---

# 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 dynamically by asking a question.

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

```
GET https://docs.dothq.co/main/cloning-dot/macos.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
