A cold start — clone to first agent reply — takes under ten minutes on a machine that already has Node and Python.
1

Clone the repo

You need access to sachio222/porto (private). Clone over SSH:
2

Run the first-run wizard

The script checks Node, Python, Docker, and the Supabase CLI against the repo pins, installs frontend and backend deps, starts local Supabase, applies migrations, and writes backend/.env plus frontend/.env.local.
Safe to re-run. It will not clobber a running database or overwrite existing env files. Use ./setup.sh --check for a dry run, or --force to overwrite env files.
3

Start the backend

In one terminal:
Confirm it is up:
4

Start the frontend

In a second terminal:
Open http://localhost:3000.
5

Connect a model, then add an agent

  1. Open Settings → Providers.
  2. Connect one of: a CLI harness, a local host, or a cloud API key.
  3. Create or open a project.
  4. Add agent, pick the connected host, send a message.
Keys and host URLs live in Settings. You do not paste a key into the Add agent form.

Prefer Docker?

One command if you only have Docker installed. See Docker Compose.

If setup fails

Local Supabase needs Docker. Start Docker Desktop, then re-run ./setup.sh.
Run ./scripts/check-versions.sh. Node must be 20–22. Python must be 3.11. Next 15 breaks on odd Node lines (21, 23, …).
Stop the other process, or set PORTO_PORT for the API and NEXT_PUBLIC_PORTO_WS_URL for the frontend. See environment.
More in Troubleshooting.