Thally

Ship the code.
Docs follow.

Connect your repositories once. When a pull request merges, Thally analyzes the change, drafts the documentation updates it implies, and opens them as a pull request on your docs repo, ready for your review.

Watch a merge flow throughWhat triggers a draft

Read-only GitHub App. Nothing publishes until a human approves it.

Trusted by the AI tools your readers already use

ClaudeCursorCopilotPerplexityGeminiv0Windsurf
Mergedjahce/bono#517

DEFAULT_TIMEOUT_MS 30000 to 60000

pull_request.closed · merged on the watched default branch

AffectedSDK

/sdk/configuration

Default timeout documented at 30 seconds.

No changeGuides

/guides/quickstart

Evidence says nothing to update here.

ReviewHumanA-203

Approve and merge

Nothing publishes until a human approves it.

HighAnalysisD-202

Thally analyzes the change

The Content Graph matches the diff to affected docs.

HighDocs PR#291

docs: default timeout is now 60s

Opened by thally-bot · needs 1 review

/sdk/configuration updated

/guides/long-running-jobs updated

Changelog entry drafted

MediumChangelogA-205

Draft release note

Timeout change, retries, and defaults.

Set it up once. It runs on every merge.

jahce · Thally GitHub Appread-only
jahce/bonomainproduct · synced 2m ago
jahce/leafletmainproduct · synced 21m ago
jahce/dabsmaindocs target · synced 6m ago
Read-only GitHub App installed3 repos
Triggers3 of 4 on
Merged pull requestFires when a PR lands on a default branch
Release tagFires on tags matching v*
Schema or API changeWatches OpenAPI files and config schemas
Scheduled sweepWeekly drift check across every page

You choose the events · Thally ignores the rest

jahce/dabs #291awaiting review

docs: document the new request timeout

thally-bot opened 6m ago · 1 file changed · label origin: track

@@ guides/requests.mdx +3 -1

- The client waits 30 seconds.

+ The client waits 60 seconds.

+ Override per request with timeout.

+18-41 review required

Nothing publishes until a human approves it.

From merge to draft PR, automatically.

This is what happens the moment a pull request merges on a connected repository. Run the simulation to watch one change go from merged code to a review-ready docs pull request.

Merged: jahce/bono #482 · Raise default request timeout
Merge detectedWebhook received from GitHub on the default branch.event: pull_request.closed · merged: true
Bounded change analyzedTrack extracts the public-surface change from the diff.DEFAULT_TIMEOUT_MS 30000 → 60000
Connected pages foundThe Content Graph matches the change to affected docs.2 pages · /sdk/configuration, /guides/long-running-jobs
Update draftedAn evidence-backed edit is written for each page.2 files changed · +6 −4
Draft PR opened for reviewA pull request lands on your docs repo, assigned to a human.jahce/dabs #291 · awaiting review
Result

No draft yet. Thally opens a pull request on your docs repository once the analysis finishes.

You decide what starts a draft.

Not every commit deserves a documentation review. Turn on the events that change your public surface; Thally ignores the rest.

Merged pull requestA PR merges into a watched branch. The most common trigger.
Release tagA version tag is pushed, e.g. v*.*.*: draft the release-facing docs.
Schema or API changeYour openapi.yaml or schema files change on the default branch.
Scheduled sweepA weekly pass catches drift the event triggers missed.

Recent automation · jahce/dabs

A running log of what Thally drafted.

Every automated draft is traceable to the merge that caused it. Approve, edit, or dismiss; the loop keeps running.

Drafted2m ago

docs: default timeout is now 60s

from jahce/bono #482 · 2 pages · high confidence

Awaiting review
Merged4m ago

docs: document TimeoutError

from jahce/bono #482 · approved by jahce

Published
Merged1h ago

docs: new --json flag on export

from jahce/leaflet #77 · approved by ada

Published
Dismissed3h ago

docs: internal refactor note

from jahce/homesend #310 · no public surface change

Dismissed

Without automation

  • Someone has to remember a merge affected the docs; usually nobody does.
  • Drift is discovered by a confused customer or a failing example.
  • Catching up means a big, dreaded documentation audit.
  • Machine surfaces and AI context fall furthest behind.

Docs drift,
quietly.

With Automation

  • Every relevant merge opens a reviewable draft within minutes.
  • Each draft carries the diff and evidence behind it.
  • Reviews are small and frequent, never a quarterly cleanup.
  • Every surface regenerates together: humans and agents stay in sync.

Drafts arrive
on merge.

Works with the stack you already ship

GitHub
Vercel
Netlify
Cloudflare
Docker
Markdown

Ship without wondering what the docs forgot.

Install the read-only GitHub App, choose your triggers, and every merge drafts its own documentation: reviewed by you, shipped on your say-so.