v0.1
  /\_/\      /\_/\      /\_/\
 ( o.o )    ( ^.^ )    ( -.- )
  > ^ <      > ^ <      > ^ <
 (_/ \_)    (_/ \_)    (_/ \_)
    

Otter will be the last thing
you ever install.

From then on, otter installs everything for you. 🦦
Any software. Any system. One installer to rule them all.

Terminal

    

Free Β· Open source Β· No account needed

$ curl -fsSL https://otter.utopiaia.com/install.sh | sh

Installs to ~/.local/bin/otter Β· Requires macOS 13+ Β· All releases β†’

$ curl -fsSL https://otter.utopiaia.com/install.sh | sh

Supports x86_64 and arm64 Β· Linux kernel 4.19+ Β· All releases β†’

βœ“ Requires Rust toolchain
$ cargo install otter

Works on any platform where Rust compiles Β· Install Rust first β†’

βœ“ PowerShell 7+
PS> iwr https://otter.utopiaia.com/install.ps1 | iex

Windows 11 Β· Or install via Cargo: cargo install otter

See it in action

Terminal β€” otter
$ otter install postgresql

  🦦  otter  ollama β€Ί qwen3.5:4b
  target     postgresql

  ── Installation plan ──  postgresql
  ⏳  1.  Search for latest PostgreSQL version
  ⏳  2.  Install via Homebrew
  ⏳  3.  Initialize database cluster
  ⏳  4.  Start PostgreSQL service
  ⏳  5.  Verify installation

     $ brew install postgresql@16
  βœ“  postgresql@16 1.0_1 already installed

     $ brew services start postgresql@16
  βœ“  Successfully started postgresql@16

     $ psql --version
  βœ“  psql (PostgreSQL) 16.4

  βœ“  postgresql installed successfully
  5/5 steps done Β· 14 turns Β· 48 seconds
      

Make your software otter-ready

Drop an OTTER.md in your repo.
Anyone with otter installed can then install your software with a single command.

Step 1

Create OTTER.md

Add an OTTER.md file to the root of your repo. Write plain English: what needs to be installed, what needs to be configured, what commands to run.

Step 2

Push to GitHub

Commit and push. That's it. No CI pipeline, no package registry, no special tooling required.

Step 3

Users install in seconds

Anyone with otter can run otter install github.com/you/your-repo and otter handles the rest autonomously.

OTTER.md βœ“ otter-ready
# MyApp β€” Installation Guide

## Requirements
- Node.js 20+
- PostgreSQL 15+
- An API key from example.com (free tier works)

## Install

1. Install dependencies:
   npm install

2. Copy the example env file and fill in the values:
   cp .env.example .env
      Set MYAPP_API_KEY to your key from example.com/dashboard

3. Create the database and run migrations:
   createdb myapp && npm run db:migrate

4. Start the server:
   npm start

## Verify

Open http://localhost:3000 β€” you should see the login page.
Run npm test to confirm everything works.

## Common Issues

- EADDRINUSE: port 3000 is busy β€” kill the process with lsof -ti:3000 | xargs kill
- Postgres connection error: make sure the postgresql service is running

Works for any kind of project

πŸ¦€ Rust CLI tool

## Install
1. cargo build --release
2. cp target/release/mytool ~/.local/bin/
3. Reload shell: source ~/.zshrc

## Config
Set MYTOOL_TOKEN in your env.

🐍 Python service

## Install
1. python -m venv .venv && source .venv/bin/activate
2. pip install -r requirements.txt
3. cp .env.example .env

## Run
uvicorn main:app --reload

🐳 Docker app

## Install
1. cp .env.example .env and fill in secrets
2. docker compose up -d

## Verify
docker compose ps β€” all services should be Up

⚑ Next.js app

## Install
1. npm install
2. cp .env.local.example .env.local

## Dev server
npm run dev β†’ http://localhost:3000

Users install your project with one command β€” otter reads the OTTER.md,
runs everything, handles errors, and verifies the install worked.

$ otter install github.com/you/your-repo