← Blog

From pull request to product demo, automatically

Connect GitHub, pick a PR, and MyAISE reads the diff and your source to draft a working walkthrough. The auth lives entirely in the desktop app, so your code never touches our servers.

The feature shipped Tuesday. By Thursday someone in sales wants to demo it. The product is real, the screens exist, but the walkthrough that shows them off doesn't — and the person who understands the change best is the engineer who wrote the pull request, not the SE who has to present it.

That PR is, it turns out, an almost perfect brief for a demo. It says exactly what changed, where it changed, and usually why. So we taught MyAISE to read one.

Connect GitHub, pick a pull request, and MyAISE drafts a working walkthrough — overlays, spotlights, driven actions, the whole palette — pointed at the real screens the PR touched.

The diff is the seed; your source is the context

A diff is great at telling you where something changed and useless at telling you how to demo it. The patch for a new settings panel shows you twelve changed lines in a component file. It doesn't tell you the route that renders it, the label on the button that opens it, or whether the thing you want to spotlight has a stable data-testid or a class name that gets regenerated on every build.

So the generation isn't a single prompt over a diff. It's agentic. The model gets the PR — title, body, review notes, and the per-file patches — as a seed, and then it goes and reads the surrounding source: the components, the routes, the templates. It pulls files on demand until it understands the changed surface well enough to point at it.

Why the GitHub auth lives in the desktop app, not our cloud

Here's the part we cared about most. Reading your source means holding access to your source, and we did not want to be a company that could read its customers' private repositories — not even by accident, not even if we were breached.

The obvious architecture — broker GitHub access through our server — fails that test. If the cloud held the GitHub App key or your access token, then a breach of our infrastructure would expose every connected customer's code, and we'd technically be able to read it silently. We didn't want that capability to exist.

So it doesn't. The GitHub connection lives entirely inside the desktop app, using a GitHub App + OAuth Device Flow. The device flow is built for clients that can't keep a secret: it uses only the app's public client ID, never a client secret. You approve the app in your browser, GitHub hands a read-only, user-scoped token back to your machine, and that token is encrypted at rest with the OS keychain (Electron safeStorage). It is scoped to exactly the repositories you install the app on, and you can revoke it from your GitHub settings at any time.

MyAISE's servers hold no GitHub secret and no GitHub token. We cannot read your code, because the credential that would let us never leaves your laptop.

BYOK: your source's only three stops

The same logic applies to the AI. Understanding a PR means sending source to a language model — so the question is whose model. This is a Bring-Your-Own-Key feature: it calls the LLM provider you've configured (Anthropic, OpenAI, Gemini, or a local Ollama), with your key, from your machine.

where your code goes
github.com → the repo you granted, read-only
your machine → the desktop app, token in the OS keychain
your LLM provider → the key you configured, your account
+that's the whole list
-myaise.com never sees the diff, the source, or the screenshots

"With BYOK, your repo source goes only to GitHub, your own machine, and the LLM provider you chose — never to MyAISE."

— The privacy line we can actually stand behind

We're deliberate about the wording. We don't say "your code never touches the cloud" as a blanket claim, because MyAISE does offer a hosted-AI option elsewhere in the product. This feature specifically uses BYOK so the claim is exact: your source goes to GitHub, your machine, and the model you picked. That's it.

Three phases: explore, storyboard, bind

A good walkthrough is a story, not a pile of tooltips. Asking a model to one-shot the whole thing produces exactly that pile. So generation runs in three passes:

generation.log
[seed] PR #482 "Add saved-view filters to Reports" · 7 files · +214 −38
[explore] read app/reports/SavedViews.tsx, routes.ts, FilterBar.tsx
[explore] navigate /reports → inspect 41 elements
[explore] navigate /reports/saved → inspect 33 elements
[storyboard] 6 steps · banner · spotlight · driven_action · slideout · callout · modal
[bind] /reports/saved → [data-testid="save-view"] (spotlight, placement right)
[bind] /reports/saved → label[for="only-mine"] (callout — retargeted off the radio)
+draft demo "Saved view filters" written to project · 6 steps
[done] open the app to review and refine

What you get, and what you do next

The output isn't a finished demo you have to accept blindly — it's a strong draft in the studio. Every step is a real DemoStep with overlays already placed and selectors already bound, ready for you to read through, tweak the copy, drag an overlay, or delete a beat that doesn't land. The walkthrough plugs straight into the rest of MyAISE: it runs against data faked by your ruleset, it can be shared as a viewer link, and on Team it's covered by self-healing so it survives the next release.


Generating demos from pull requests is free — it only asks for a MyAISE login and one of your own LLM keys. Download the Mac app, connect GitHub, and turn your next merged PR into a demo before the feature's even announced.

Ready to try MyAISE?

Free for individuals. Mac app. 5-minute install. No account needed.

Download for Mac See pricing