Set up Hound

Everything you need to go from zero to a live review comment on your first pull request — install the GitHub App, select your repos, and fire your first on-demand review.

1

Install the GitHub App

Hound ships as a GitHub App. Click below to open the installation page on GitHub — you'll need admin access on the target account or organization.

Permissions requested:
  • Read pull request contents
  • Read repository code
  • Write issue comments
2

Select your repositories

During installation GitHub will ask which repositories Hound can access. You can start with one repo or grant access to all of them — you can always update this later in GitHub Settings → Applications → Hound → Repository access.

Once a repo is selected, every new or updated pull request on that repo will automatically trigger a Hound review. No webhook configuration or secrets to manage on your end.

3

Trigger your first review

Reviews fire automatically on every PR push. You can also trigger one on demand via the API — useful for CI pipelines, re-reviews after a fix, or testing the integration.

Requires $HOUND_API_TOKEN and the GitHub App already installed on the target repo (step 1 above).

Async (default) — responds immediately, review runs in the background:

curl -X POST https://<host>/api/reviews \
  -H "Authorization: Bearer $HOUND_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"repo":"owner/name","pr_number":42}'

Response when the job is accepted:

{
  "status": "queued",
  "repo": "owner/name",
  "pr_number": 42
}

Sync (?wait=true) — blocks until the review finishes and returns the full verdict:

curl -X POST "https://<host>/api/reviews?wait=true" \
  -H "Authorization: Bearer $HOUND_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"repo":"owner/name","pr_number":42}'

Response once the review completes:

{
  "status": "ok",
  "repo": "owner/name",
  "pr_number": 42,
  "review_id": 17,
  "comment_posted": true
}
  • status: "queued" means Hound accepted the job — check the PR for the comment when it lands.
  • status: "ok" with comment_posted: true means the verdict is already on the PR.
  • Errors return 400 (invalid body) or 500 (review failure) with a JSON error field.

← Back to the quickstart · API reference · Verdict usage guide · Troubleshooting