Quickstart
Connect your app to a project, then collect feedback with the browser context to investigate it.
pk_… embed key connects the SDK to that project.1. Add the script tag
Include the queue stub and the versioned bundle once, ideally in your layout/head. The stub queues Testosaurus.init calls made before the bundle loads (it also makes the widget work with defer/async script loading). The ?v= hash changes only when the SDK is updated.
<script>window.Testosaurus = window.Testosaurus || { q: [] }; window.Testosaurus.init = function (o) { this.q.push(o); };</script>
<script src="https://testosaurus.dev/testosaurus.js?v=27a499acd3a1"></script>
2. Initialize
The apiKey is an app token from the dashboard's Projects view. It identifies the project — there is no separate project name.
Testosaurus.init({
endpoint: 'https://testosaurus.dev',
apiKey: 'pk_your_app_token'
});
3. Set your project's Domains
In the dashboard's Projects view, save your project's Domains — the comma-separated hosts where you embed the widget (e.g. app.example.com, www.example.com). Include localhost for local development. Until the current host is in the list, the panel shows "Not configured yet." and the Send button stays disabled.
Done
A button appears in the bottom-right corner. Click it to open the feedback panel. Reports land in your dashboard under the project the token belongs to, where they're distilled into severity, category, and a summary. See Reports & distillation.
To verify the whole loop without touching your app, open the integration playground on your Worker with your app token: /integration.html?token=pk_.... It embeds the widget exactly like this guide — under a strict CSP — and sends a real report.
Review your stop-at-limit policy, optional paid overage and usage alerts before inviting testers: see Dashboard & data.
Read the API reference for all options, or see the live demo.
Choose Testo, Bubble or a Feedback pill and preview the panel in Widget customization. Your users can decline screenshot and replay capture while still sending a message.
Alternative: npm package (bundler apps)
For React, Vue, Svelte, Angular, Next, Nuxt, or Vite apps, install the SDK instead of the script tag:
npm install testosaurus-sdk
import { init } from 'testosaurus-sdk';
await init({
endpoint: 'https://testosaurus.dev',
apiKey: 'pk_your_app_token'
});
The package ships the same types and behavior as the script-tag bundle. Plain HTML pages should keep using the script tag + queue stub.