install · two minutes

drop otto
on your app.

One script tag. Your team flags bugs while testing. Otto reads each report, finds the relevant code, and opens a draft PR on the right repo. Never auto-merges.

create an account see how it works

what you'll need

01

create a project

Sign in at /dashboard/. Each project owns a widget snippet and routes feedback to its primary repo.

in the dashboard

projects → + new project → name → create

You'll land on the project's detail page with a getting-started checklist. Wire the Cursor key and install the GitHub App from Settings, then come back to set this project's primary repo.

02

paste the snippet

Once team setup is done, the project detail page shows a ready-to-paste snippet with the project's secret baked in. Drop it on the staging or prod build of your app — feedback from anyone using the widget on that page lands in this project.

what the snippet looks like

<script
  src="https://ottoagent.app/otto.js"
  data-endpoint="https://<your-convex>.convex.site/ingest/widget"
  data-secret="wk_abc123…"
  defer
></script>

One script tag. No build tools, no SDK, no framework requirements. Works in any HTML page.

03

file feedback

A pixel-otter button appears bottom-right of your page. Click it to start recording. Click again to stop and review what you captured. Submit, and Otto opens a draft PR within a few minutes.

what otto sends to cursor

trust contract

questions

Hit a wall? Open a discussion on GitHub or ping @DanJCleary on X.

get started →