Skip to content
AUTOMATIC AI DISTILLATION

User feedback. Tested draft PRs.

An in-app feedback widget with automatic AI distillation. Configure a coding role to propose fixes, run your tests, and open draft PRs with your chosen model.

No credit card. 100 reports a month, on us.

npm install testosaurus-sdk
Testo, your friendly green dinosaur, at the keyboard
Example reportTS–024
BugCheckout New

Checkout button does nothing

“I click Pay and nothing happens.”

The message. And the evidence behind it.
acmeCheckout
ALMOST YOURS

Complete your order

Everyday teeForest / Medium
€48.00
Subtotal
€48.00
Shipping
€5.00
Total
€53.00
Pay
Screenshot attached
Console 1 error
TypeError:
Failed to fetch
AI hypothesis

Check the failed checkout request.

A starting point to investigate.
Captured context/checkout 1440 × 900
FROM USER FEEDBACK TO CODE YOU CAN REVIEW.
CaptureDistillReview
IT STARTS IN YOUR APP

Feedback, right
where it happens.

An in-app feedback widget gives users a place to tell you what went wrong. Browser context comes along. Screenshots and replay are their choice.

  1. 01

    A familiar place to speak up.

    Choose Testo’s friendly peek, a classic bubble, or a simple feedback pill.

  2. 02

    Let your users choose.

    Recording, screenshot only, or neither. Useful feedback starts with clear consent.

  3. 03

    A few words. Useful context.

    One small message becomes a report your team can investigate.

See the live widget guide

AN EXAMPLE INSIDE YOUR APPInteractive preview
store.example/checkout
Send feedbackWe’re listening.
bugconfusingidea

Screenshot and replay are optional.

Powered by Testosaurus

Launcher, surface, placement and consent style are free. Accent colors, wording, tags and unbranded widgets are available on Pro. Explore customization

01 / AUTOMATIC AI DISTILLATION

A few words in.
An actionable report out.

Your chosen AI model turns feedback and captured evidence into a summary, reproduction steps and a hypothesis to investigate.

01

See what they saw.

The original message and its available evidence, together in one report.

02

Let AI find the signal.

Automatic distillation makes each report easier to act on. Original feedback, captured facts and AI interpretation stay distinct.

03

Put the report to work.

Create a GitHub or Linear issue with the context attached. Then use a configured coding role to propose a change from the report.

Preview the handoff
From the user’s words
to your team’s next move.
Example reportRPT–024
BugCheckout

Checkout button does nothing

“I click Pay and nothing happens.”
store.example/checkoutChrome · 1440 × 900
store.example / checkout
EVERYDAY One good thing.
On its way to you.
Contact
••••••••••••@••••••••
Payment details
••••   ••••   ••••   ••••
MM / YY•••
Pay €48.00
The everyday tote€48.00

Forest / one size

Total€48.00
Illustrative screenshot · sample checkout

The screen, alongside the words. Screenshot capture depends on consent.

store.example / checkout
EVERYDAY One good thing.
On its way to you.
Contact
••••••••••••@••••••••
Payment details
••••   ••••   ••••   ••••
MM / YY•••
Pay €48.00
The everyday tote€48.00

Forest / one size

Total€48.00
Simulated replay · inputs masked

A simulated example of an opt-in replay. Inputs are masked by default.

Captured console1 error
TypeError: Failed to fetch
Page
/checkout
Browser
Chrome
Viewport
1440 × 900
Language
en-GB

Captured browser context keeps the report grounded in what happened.

✳   AI summary

Checkout stalls after clicking Pay.

The user reports that the Pay button produces no visible response.

Suggested reproduction steps
  1. Open the checkout page.
  2. Click the Pay button.
  3. Check whether a confirmation appears.
AI hypothesis

Check the failed checkout request.

An inference to investigate, based on the feedback and console error.

AI interpretation stays separate from the original feedback and captured facts.

Your next move

Send the report to GitHub or Linear, or take it into a coding proposal.

What goes into the issue
Illustrative issue · no issue is created

Checkout button does nothing

The user reports that clicking Pay produces no visible response.

Suggested reproduction steps
  1. Open the checkout page.
  2. Click the Pay button.
  3. Check whether a confirmation appears.
View the example report

02 / AI CODING PROPOSALS

From report
to a draft PR.

Give the agent a role. Choose its model, allowed files, test commands and budget. Turn the report into a proposed change your team can review.

Beta Initially supports Node.js projects.

  1. 01

    Start with the evidence.

    The report’s feedback, AI summary and captured context ground the proposal.

  2. 02

    Set the scope. Run the tests.

    Your configured role bounds the work. A draft PR is published after its configured tests pass.

  3. 03

    Review. Revise. Decide.

    Inspect the diff, request a revision on the same PR and decide what gets merged.

Explore the MCP docs
Your scope.
Your review.
Illustrative proposalDraft PR
RPT–024 → Checkout fixes

Show a retry message when checkout fails.

A proposed response to the failed request, with a test covering the error state.

AI model
Your selected model
Allowed files
src/checkout/**
Configured tests
npm test -- checkout
Run budget
€2 cap in this example
Configured tests passedDraft ready for human review

Example output, not a live run. Review the diff and test results before merging.

Already use a coding agent?

Connect through MCP so it can read the same reports and retrieve available screenshots or replays.

Illustrative evidence workflowMCP

Inspect this checkout report before proposing a fix.

list_reportsresult
Example projectEveryday store
Bug · New

Checkout button does nothing

“I click Pay and nothing happens.”

RPT–024

Filter reports by project, status or severity. Read the details that matter next.

get_reportresult
Original feedback

“I click Pay and nothing happens.”

Captured context

ConsoleTypeError: Failed to fetch

AI hypothesis

Check the failed checkout request.

Available attachments

Capture depends on consent. AI interpretation stays separate from captured facts.

get_assetresult
Available screenshot

A short-lived download URL gives your agent access to the attachment.

URL lifetime15 minutes

Retrieve screenshots or replay bundles when they are available on the report.

Inspect the example screenshot

Context ready for investigation.

03 / AT HOME IN YOUR STACK

Small install.
Big context.

A browser SDK that fits your app. Add the package, drop in the script, or hand the setup to your coding agent.

  1. 1

    Create a project.
    Give your feedback a place to land.

  2. 2

    Add your app’s domain.
    Save the hostname in project settings to enable submissions.

  3. 3

    Use your public embed key.
    Copy the project’s pk_… key and initialize the SDK in the browser.

Read the quickstart
TERMINAL
npm install testosaurus-sdk
YOUR APP · CLIENT ENTRY
import { init } from 'testosaurus-sdk';

init({
  endpoint: 'https://testosaurus.dev',
  apiKey: 'pk_YOUR_PROJECT_KEY'
});
React, Vue, Svelte, or plain JavaScript. Initialize once in the browser, after the page mounts.
INDEX.HTML
<script src="https://testosaurus.dev/testosaurus.js?v=27a499acd3a1"></script>
<script>
  Testosaurus.init({
    endpoint: 'https://testosaurus.dev',
    apiKey: 'pk_YOUR_PROJECT_KEY'
  });
</script>
Place before the closing body tag. Replace the example key with your project’s public embed key. Use the versioned snippet from your dashboard for production.
PROMPT FOR YOUR CODING AGENT
Integrate Testosaurus into this app.

Read https://testosaurus.dev/docs/api.html first.
Use the testosaurus-sdk package and its named init export,
or the versioned script supplied by the project dashboard.
Initialize it in the browser with endpoint https://testosaurus.dev
and my project's public embed key (pk_...).

Ask me for the project key if it is not available.
Confirm this app's hostname is saved in the project's Domains.
Use the default consent flow for screenshot and replay capture.
Verify that the widget opens, then let me submit a test report.
To read reports through MCP, create a read-only management key in Settings → Access. See agent setup.
YOUR MODEL. YOUR RULES.

Your users’ trust.
Your control.

Choose your AI model, where it can make changes, and how much it can spend.

Consent comes first

Screenshots and replay are opt-in. Replay inputs are masked by default.

Capture & consent

Set the AI budget

Set per-run and monthly budgets for each coding role. Runs use prepaid credit; unused reserved credit returns when the run settles.

Understand billing

Your feedback to keep

JSON export on every tier, plus an API to build your own workflows.

Explore the API
SMALL START. PLENTY OF ROOM.

Ship first.
Scale when you’re ready.

Start free. Add capacity when you need it.
Keep your feedback, whichever plan you choose.

Free

For your next launch

€0/ month

Start listening. Get the context.

Start collecting free
  • 1 project · 1 seat
  • 100 reports / month
  • €1/month for AI report analysis
  • 1 GB screenshot & replay storage
  • 90-day report retention
  • Core widget, dashboard & JSON export

Need more capacity or specific support? Let’s talk about a custom plan

Included AI credit covers report analysis. Coding proposals use prepaid AI credit separately. AI is billed at catalog token rates plus 5%, with inference through Vercel AI Gateway. Full pricing details

A FEW GOOD QUESTIONS

Before you
bring Testo in.

Something else on your mind?
Let’s talk

Does it work with my stack?

Yes. The browser widget works with React, Vue, Svelte, Next.js, or plain HTML. Install the npm package in a bundler app, or add the script to your page. Register your domain and use your project’s publishable key.

Read the quickstart
What does a report actually capture?

The user’s message travels with browser context such as the page URL, viewport, language, and console entries. Screenshots and session replays are optional and require consent. The example above shows a report with these attachments enabled.

See capture and consent details
How does automatic AI distillation work?

Enable automatic distillation and choose your model. New feedback becomes a structured report with a summary, category, severity, reproduction steps, and a suggested cause to investigate. The original feedback stays available, and you can collect reports without AI. Free includes €1/month for AI report analysis; Pro includes €3. Your model and report size determine how far that credit goes. On Free, AI analysis pauses when the allowance is spent.

Explore reports and distillation
Can AI propose a code change?

Yes. Configure a coding role with your chosen model, allowed files, test commands, and budgets. It can open a draft PR after all configured tests pass. Review the diff, request a revision on the same PR, and decide when to merge. Coding proposals are in beta for Node.js projects and use prepaid AI credit, separate from included report analysis credit.

See the draft-PR workflow
Can my agent set up Testosaurus for me?

Yes. Use “Connect an agent” in workspace settings and give its one-use setup prompt to your agent. Through MCP, an authorized agent can configure the project, inspect reports and evidence, and prepare coding roles. You complete GitHub and Linear connections through their normal sign-in and authorization screens. Writable access is required to change settings or start coding runs.

Read the agent setup guide
Can I control spending and take my data with me?

Yes. AI uses published model catalog token rates plus 5%, through Vercel AI Gateway. Coding runs reserve their maximum budget from prepaid AI credit and return the unused portion when settled. Set run and monthly coding budgets, usage limits, and alerts. On Pro, opt into additional AI report analysis using prepaid credit. Keep it funded with AI credit top-ups, optional automatic top-ups, or recurring credit on a monthly Pro subscription. JSON export is available on every plan.

Explore usage and billing
FROM REPORT TO REVIEW.

Your next bug report
could start the fix.

Capture the evidence. Let AI distill it.
Review the proposed change.

Testo waving you in