---
title: "Install Tatolab"
description: "Install the Tatolab runtime and CLI with Homebrew on a Mac or one command on Linux, then add the Python SDK to your projects."
type: "docs-page"
url: "https://tatolab.com/docs/install"
site: "Tatolab"
section: "Install"
---

# Install Tatolab

> Install the Tatolab runtime and CLI with Homebrew on a Mac or one command on Linux, then add the Python SDK to your projects.

Installing Tatolab puts two programs on your machine: **the runtime** (`tatolabd`), which runs your streams, and **the CLI** (`tatolab`), which you use to create, run and inspect them. They're installed together, at matching versions, and the runtime is set up to start on its own and stay running.

On a Mac with Apple silicon, install the app with Homebrew, then open it once to finish setting up:

```sh
brew install --cask tatolab/tap/tatolab
open -a Tatolab
```

On Linux:

```sh
curl -fsSL https://get.tatolab.com/install.sh | sh
```

The SDK is separate. Each stream project adds the Python SDK, `tatolab-stream`, from PyPI into its own virtual environment, like any other dependency. Nothing from the runtime goes into your projects.

## Pick your platform

| Platform | You need | Install with |
|---|---|---|
| [macOS](https://tatolab.com/docs/install/macos) | A Mac with Apple silicon (M1 or later) and macOS 15 or later | Homebrew, or the app from a download |
| [Linux](https://tatolab.com/docs/install/linux) | x86_64, glibc 2.28 or later, a GPU with a Vulkan driver, and systemd | One `curl` command |
| Windows | Not supported yet | |
| Anything else | A Rust toolchain and patience | [Build from source](https://tatolab.com/docs/install/from-source) |

## After you install

1. Check that the runtime answers:

   ```sh
   tatolab streams
   ```

   A working install prints `No streams in this runtime.` If you see `no runtime is running on this machine`, the runtime isn't started. The message suggests running `tatolabd` in a terminal, which is right for a source build. With an installer, start it the installer's way instead: switch on **Run Tatolab** in the menu bar on a Mac, or run `systemctl --user start tatolabd` on Linux.

2. [Install uv](https://tatolab.com/docs/install/python#install-uv), which the Python SDK uses, if you don't have it yet.

3. Follow the [quickstart](https://tatolab.com/docs/quickstart).

## What goes where

| | macOS | Linux |
|---|---|---|
| The runtime and CLI | Inside `Tatolab.app`, with `tatolab` linked into `/usr/local/bin` | `~/.local/share/tatolab/<version>/`, linked into `~/.local/bin` |
| How the runtime starts | A login item, registered by the app | A systemd user service, `tatolabd.service` |
| The runtime's state: the streams it keeps, and its own log | `~/Library/Application Support/Tatolab/` | `~/.local/state/tatolab/` |
| Each stream's logs | `.streamlib/logs/` in the stream's project | The same |

Uninstalling removes the programs and the service, and leaves the state folder and your projects alone.
