Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.pome.sh/llms.txt

Use this file to discover all available pages before exploring further.

The GitHub twin is a deterministic in-process simulation of the GitHub REST API — issues, pull requests, comments, labels, repositories, and the bits of the search API agents tend to reach for. Every twin instance starts from a fixture and resets between runs, so the same scenario produces the same state every time.

What it covers

  • Repositories, issues, pull requests, comments, labels
  • Search across issues and PRs
  • Webhook-style event payloads recorded for assertions
What it deliberately does NOT cover: GitHub Actions, billing, Copilot APIs, anything OAuth-related (the twin hands out a static token).

Quickstart

pome run scenarios/01-bug-happy-path.md
That scenario spins up a GitHub twin locally, hands your agent a token + a base URL, and scores the agent’s output once it finishes. No GitHub account, no network round-trips.

Example: triage a new issue

pome run scenarios/github/triage-new-issue.md
The scenario seeds a fresh issue, expects your agent to:
  1. Read the issue,
  2. Apply the correct label,
  3. Comment with a triage note.
Pome records every API call and scores the run against the expected end state.

Pointing your own agent at the twin

If you want to drive the twin with your own agent code rather than a pome scenario, you can:
pome twin start github          # prints twin_url and token
GITHUB_TOKEN=<token> \
GITHUB_API_URL=<twin_url> \
node your-agent.js
The twin speaks the GitHub REST shape — point any existing GitHub client library at GITHUB_API_URL and it just works.