Skip to content

Quick Start

From zero to a running branch in a few minutes — all in the app, no CLI required.

1. Install and open

Download Pomelo-<version>.dmg from the latest release, drag Pomelo into Applications, and open it. See Install for details.

2. Pick your workspace folder

On first launch Pomelo asks for the parent folder it will create per-branch worktrees under (for example ~/pom). Your repos and every workspace--<branch>/ folder live here.

3. New session — add your repos

Click + New session, give it a name, and add your repos. Each repo is either:

  • a local folder already on disk, or
  • a git URL (SSH or HTTPS) that Pomelo clones for you.

A session can hold one repo or several — a whole multi-repo project.

4. Let the onboarding agent write pom.yml

After you add repos, an onboarding agent reads each one, infers how it runs (package manager, services, databases, env), and writes a runnable pom.yml. It then loops the config doctor until it reports clean — so you get a working config without learning the schema first.

Requires Claude

The onboarding agent uses the claude CLI. Install it with npm install -g @anthropic-ai/claude-code. You can also write pom.yml by hand — see the config reference.

5. Doctor clean

Open Project (top bar) to see the config editor and its config doctor health strip at the bottom. When the doctor is clean, the project is runnable. If anything is missing (a tool not installed, docker not running, a database not created), the doctor names it and points at the fix.

6. Start services

On the service board, start a service from its card. Starting a repo service brings up its shared services (Postgres, Redis, …) automatically. Each service's live output previews on its card; click the card to attach a full terminal.

To work on a feature, create a workspace for a branch (see Workspace lifecycle) and start its services the same way — every branch gets its own ports, databases, and env, so you can run several at once.

Writing pom.yml by hand

If you'd rather author the config yourself, here's a minimal shape:

yaml
session: myproject
default_branch: main

shared_services:
  postgres:                  # well-known: image/ports/creds filled in

repos:
  api:
    databases:
      main: "{{branch.safe}}"
    env:
      DATABASE_URL: "postgres://{{shared.postgres.url}}/{{db.main}}"
    setup: [bundle install, bundle exec rake db:migrate]
    services:
      web:
        cmd: bundle exec puma -p $PORT
        port: true
        exposes: API_URL     # other repos reference it as {{var:API_URL}}

See the config reference for every field and Templates for the full {{...}} grammar.

Released under MIT