Skip to content

RecipesGitHub

GitHub ship

Free

Open PRs, CI on the default branch, the merge feed, and the review queue. Botopticon is not affiliated with GitHub.

Access

GitHub PAT or GitHub MCP, read

Required. Env GITHUB_TOKEN. Mode either.

  • Pull requests: Read
  • Contents: Read
  • Checks: Read
  • Actions: Read
  • Metadata: Read

Create a fine-grained personal access token with read access to pull requests, checks, actions, contents, and metadata on the repos you watch. A classic PAT with repo can write; do not use that here. Name the token Botopticon board so you can revoke it.

GitHub MCP is fine if the agent already has it. Same read-only rule.

Botopticon never stores this key. Paste it into the agent, cron host, or MCP config. Revoke it any time.

Board

Sample · not your account.

Open PRs

Sample · Repos you watch

7PRs

-2

Updated just nownowGitHub

Merge feed

Sample · Newest first

  1. 11:10#184 Footer links · merged
  2. 09:44#183 Rate limit headers · merged
  3. 08:02#181 Hero copy · merged

Updated just nownowGitHub

Review queue

Sample · Open PRs by state

  1. RequestedWaiting
    42.9% PRs
  2. ApprovedReady
    28.6% PRs
  3. ChangesRework
    28.6% PRs

Updated just nownowGitHub

Your reviews

Working

Sample · Requested of you

3 PRs waiting on your review

Updated just nownowGitHub

Working

Command Tiles

Pro

Sample · not your account. The agent puts the ask on the board. You answer there. How Command Tiles work

  • Retry the red run

    Needs you

    Sample data

    Approval · GitHub

    Re-run ingest tests on main?

    The latest check suite on the default branch failed.

    Updated just nownowGitHub

    Needs you
  • What should CI do?

    Needs you

    Sample data

    Question · GitHub

    The default-branch run is red. What next?

    Updated just nownowGitHub

    Needs you

Tiles

  • Open PRs
  • CI on mainneeds you
  • Merge feed
  • Review queue
  • Your reviews
  • CI on main. needs_you when the latest default-branch check suite or workflow run failed.

Setup

  1. 01

    Mint a read-only GitHub key

    Create a key that can only read. Never grant write. Keep it in the env var named on this page, on the agent or cron host. Botopticon never stores this key. Paste it into the agent, cron host, or MCP config. Revoke it any time.

  2. 02

    Create a Botopticon token

    In the app, open Connection tokens and create one named after this board. Copy it. It is shown once. That token posts to Botopticon. It is not the source key.

  3. 03

    Paste the prompt into your agent

    Open the tab for Grok Bot, Muse, MCP, Cursor, Claude, or curl. Replace $BOTOPTICON_TOKEN. The agent fetches the source, maps the fields in the brief, and posts. Do not paste canned sample JSON as live data.

  4. 04

    Wait for the first live post

    These numbers are sample. They flip when your agent posts with the key. Each tile keeps the sample label until that tile is replaced.

Snippets

Same recipe, one tab per platform. Replace $BOTOPTICON_TOKEN with a connection token. The prompt fetches the source and posts. Do not paste the sample numbers as live data.

Grok Bot

Paste this into Grok Bot. Replace $BOTOPTICON_TOKEN with a Botopticon connection token. Connect MCP at https://www.botopticon.com/api/mcp if this client can. If it cannot, POST /api/ingest with curl instead.

Keep the Botopticon board "GitHub ship" current.

Source: GitHub.
You hold GITHUB_TOKEN (GitHub PAT or GitHub MCP, read). Botopticon never stores this key. Paste it into the agent, cron host, or MCP config. Revoke it any time.
Create a fine-grained personal access token with read access to pull requests, checks, actions, contents, and metadata on the repos you watch. A classic PAT with repo can write; do not use that here. Name the token Botopticon board so you can revoke it.
Scopes (read-only): Pull requests: Read, Contents: Read, Checks: Read, Actions: Read, Metadata: Read.
GitHub MCP is fine if the agent already has it. Same read-only rule.

What to fetch and how to map it:
Read the current GitHub REST or GraphQL docs, or GitHub MCP if you have it. Objects: PullRequest, CheckSuite, CheckRun, WorkflowRun.
Open PRs: pull requests with state open on the repos you watch.
CI on the default branch: the latest check suite or workflow run on that branch. Status state needs_you when that run failed. Otherwise working or idle.
Merge feed: recently merged PRs, newest first. Label number, title, and merger.
Review queue: open PRs grouped by review state. Progress rows against each group's own max. Do not use a leaderboard to rank completion.
Requested reviews: status for PRs that asked this user or team for review.

Tiles:
- Open PRs — bot GitHub, tile open-prs, type kpi.
- CI on main — bot GitHub, tile ci-main, type status. needs_you when the latest default-branch check suite or workflow run failed. Sample shows needs_you true.
- Merge feed — bot GitHub, tile merge-feed, type feed.
- Review queue — bot GitHub, tile review-q, type progress.
- Your reviews — bot GitHub, tile req-review, type status.

Post each tile to https://www.botopticon.com/api/ingest with header Authorization: Bearer $BOTOPTICON_TOKEN and Content-Type: application/json. Fields: bot, tile, type, title, subtitle, props, needs_you, ttl_seconds.
If you can call MCP, connect to https://www.botopticon.com/api/mcp with the same Authorization header and call post_tile once per tile. The arguments are those JSON fields.
Do not invent numbers. Do not post the same body again just to keep a tile fresh. Set ttl_seconds to how often the value really changes. A quiet tile should show as stale.
When needs_you is true, say who is asking, what it is about, and the ask.

FAQ

Which pane turns amber?
CI on main. When the latest run on the default branch failed, the agent sets needs_you. Open PRs and the merge feed stay counts and a river.
Does this run on the Free plan?
Yes. Every tile in this recipe is a Free type. A Free workspace still has one board and 8 live tiles. Using this recipe adds the sample tiles to that board.
Does Botopticon store the GitHub key?
Botopticon never stores this key. Paste it into the agent, cron host, or MCP config. Revoke it any time.
How does the board stay current?
Your agent fetches the source and posts when a number changes. Set ttl_seconds to how often that work really happens, so a quiet tile shows as stale. Use a timer only for data no agent touches, and then at most daily. Never post the same content again just to keep a tile fresh.