# Install Jadpo

Install the Jadpo CLI with one command, then start a project with `jadpo new`. The newest release is [0.1.0](https://github.com/jadpo-dev/jadpo/releases/tag/v0.1.0), from 30 October 2026. New to Jadpo? [Learn Jadpo's first page](/learn/learn-setting-up) walks you through this, then builds an app with you.

## Install the CLI

Pick one. Each puts `jadpo` on your `PATH`.

`macOS and Linux` (install script):

```text
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/jadpo-dev/jadpo/releases/latest/download/jadpo-cli-installer.sh | sh
```

`Windows` (PowerShell):

```text
powershell -c "irm https://github.com/jadpo-dev/jadpo/releases/latest/download/jadpo-cli-installer.ps1 | iex"
```

`Homebrew`:

```text
brew install jadpo-dev/tap/jadpo
```

`npm`:

```text
npm install -g @jadpo/jadpo
```

To try it without installing, run `npx @jadpo/jadpo` in place of `jadpo`.

You install `jadpo` once, not once per project. Each project's `app.jadpo` names the Jadpo version the project is written for. The `jadpo` you installed runs that version, and downloads and checks it the first time. See [Which jadpo runs](/docs/which-jadpo-runs).

## Start a project

Run `jadpo new` to start a project. Its options are on the [`jadpo new`](/docs/jadpo-new) page. Or follow [Learn Jadpo](/learn) to build an app step by step, with every file explained.

An app that stores data needs PostgreSQL for its tests; [see below](#postgres).

Using a coding agent? `jadpo new` also writes an `AGENTS.md` file, the instructions file most coding agents read. It points the agent at the docs for the Jadpo version your project uses. For a project not made with `jadpo new`, copy [the Jadpo section](/agents#agents-md) into its `AGENTS.md`, and create the file if it doesn't exist.

[Next: build an app in Learn Jadpo ](/learn)

## Download a prebuilt binary

The install script, PowerShell and npm download these same files. To install by hand, download yours, unpack it and put `jadpo` on your `PATH`. They're from [0.1.0](https://github.com/jadpo-dev/jadpo/releases/tag/v0.1.0).

-   **macOS, Apple silicon:** [`jadpo-cli-aarch64-apple-darwin.tar.gz`](https://github.com/jadpo-dev/jadpo/releases/download/v0.1.0/jadpo-cli-aarch64-apple-darwin.tar.gz) · [checksum](https://github.com/jadpo-dev/jadpo/releases/download/v0.1.0/jadpo-cli-aarch64-apple-darwin.tar.gz.sha256)
-   **macOS, Intel:** [`jadpo-cli-x86_64-apple-darwin.tar.gz`](https://github.com/jadpo-dev/jadpo/releases/download/v0.1.0/jadpo-cli-x86_64-apple-darwin.tar.gz) · [checksum](https://github.com/jadpo-dev/jadpo/releases/download/v0.1.0/jadpo-cli-x86_64-apple-darwin.tar.gz.sha256)
-   **Linux, x86\_64:** [`jadpo-cli-x86_64-unknown-linux-gnu.tar.gz`](https://github.com/jadpo-dev/jadpo/releases/download/v0.1.0/jadpo-cli-x86_64-unknown-linux-gnu.tar.gz) · [checksum](https://github.com/jadpo-dev/jadpo/releases/download/v0.1.0/jadpo-cli-x86_64-unknown-linux-gnu.tar.gz.sha256)
-   **Linux, arm64:** [`jadpo-cli-aarch64-unknown-linux-gnu.tar.gz`](https://github.com/jadpo-dev/jadpo/releases/download/v0.1.0/jadpo-cli-aarch64-unknown-linux-gnu.tar.gz) · [checksum](https://github.com/jadpo-dev/jadpo/releases/download/v0.1.0/jadpo-cli-aarch64-unknown-linux-gnu.tar.gz.sha256)
-   **Windows, x86\_64:** [`jadpo-cli-x86_64-pc-windows-msvc.zip`](https://github.com/jadpo-dev/jadpo/releases/download/v0.1.0/jadpo-cli-x86_64-pc-windows-msvc.zip) · [checksum](https://github.com/jadpo-dev/jadpo/releases/download/v0.1.0/jadpo-cli-x86_64-pc-windows-msvc.zip.sha256)

If you download a file yourself, check it before you run it. Download its `.sha256` file too. The checksum shows the download is complete, and `gh attestation verify` shows it's Jadpo's official build, naming the GitHub workflow run and commit that made it.

```sh
shasum -a 256 -c jadpo-cli-aarch64-apple-darwin.tar.gz.sha256
gh attestation verify jadpo-cli-aarch64-apple-darwin.tar.gz --repo jadpo-dev/jadpo
```

Use your file's name in place of `jadpo-cli-aarch64-apple-darwin.tar.gz`. On Windows, compare the output of `Get-FileHash` with the `.sha256` file.

The release also has the [VS Code extension](https://github.com/jadpo-dev/jadpo/releases/download/v0.1.0/jadpo-0.1.0.vsix), the [source code](https://github.com/jadpo-dev/jadpo/releases/download/v0.1.0/source.tar.gz) and every checksum in [`sha256.sum`](https://github.com/jadpo-dev/jadpo/releases/download/v0.1.0/sha256.sum).

## Build from source

For a platform without a prebuilt binary, or to work on Jadpo itself.

Install Git, and install Rust through [`rustup`](https://rustup.rs). The repository's `rust-toolchain.toml` pins the Rust toolchain and its components, so `rustup` fetches the right one on the first build.

```sh
git clone https://github.com/jadpo-dev/jadpo.git
cd jadpo
cargo build --release --locked -p jadpo-cli
```

The build puts the program at `target/release/jadpo`. These docs write `jadpo`: run `target/release/jadpo` instead, or add `target/release` to your `PATH`.

## When you need PostgreSQL

An app that stores data needs PostgreSQL, and so does `jadpo test` for any app with tables. Either point `JADPO_TEST_DATABASE_URL` at a PostgreSQL server you already have, or install PostgreSQL so Jadpo can start a temporary one for the tests. Each of the [example projects](https://github.com/jadpo-dev/jadpo/tree/main/examples) says whether it needs PostgreSQL.
