Install Talkieback
A button in your app: your users talk or write, you read and reply to them. On a website, one line is enough.
On a website, in one line
Paste this code just before </body>, with your app ID. You will find it on the “Installation” page of your app, in Talkieback.
<script src="https://cdn.talkieback.com/w.js" data-app="pk_live_…" async></script>
Let Claude Code install everything
Paste this prompt into Claude Code, at the root of your project. It connects you to Talkieback, creates the app, matches the widget to your product colors, adds the code and checks the installation. You authorize access once, and you review the changes before publishing them.
See the prompt
Install Talkieback in this project: the voice and written feedback button from talkieback.com. Use the tools of the “talkieback” MCP server.
First, the connection. If the “talkieback” tools are not available, run this command:
claude mcp add --transport http talkieback https://mcp.talkieback.com/mcp
Then ask me to type /mcp and choose talkieback: a Talkieback page opens so I can authorize access. If talkieback doesn't show in /mcp, ask me to restart Claude Code in this folder with claude --continue, then type /mcp.
1. Understand the product before touching the code:
- the tech (package.json, pubspec.yaml, Podfile, build.gradle…) and the file where each page loads;
- the addresses: the production one (deployment config, README, metadata) and the development server one (its port);
- the visual identity: main color and accent color (CSS variables, Tailwind theme…), font, more or less rounded corners, dark theme;
- the interface language, and whether it addresses users formally or informally;
- the pages where the button would get in the way: checkout, sign-in, admin;
- the place where an “Idea or bug?” button would fit in the product: profile, menu, settings, help.
2. The app. Call list_apps. If an app already matches this product (same name or same address), use it. Otherwise, create it with create_app: the product name, its type (web, native or both), the production address, and for a native app the iOS bundle ID and the Android package read from the project. Then pass its app_id to every tool. If list_apps says my name is not set, set it with set_my_name: the name you know (git config user.name, or what I told you); ask me if there is none.
3. The appearance. Read get_widget_appearance, then set what you found with update_widget_appearance: signal (the product accent, for the button), ink (the main color), radius, font (custom with fontFamily and fontUrl only if the font is served over https as .woff2), theme, lang, tone, hiddenPaths. Don't replace the panel texts unless I ask.
Ask me whether the product is in beta or in production, then set launcherDisplay: always in beta (the floating button everywhere); dismissible so the user can hide it by dragging it onto the cross; app in production (no floating button, the panel opens from a button in the product, and the floating button only appears once the team has replied).
4. The installation. Call get_install_guide with the product tech, then apply its steps in the code: the button code in the right place, the microphone for a native app, the security policy (CSP) if the project has one. With launcherDisplay set to dismissible or app, add an “Idea or bug?” button to the product at the place you found. On a website, the data-talkieback-open attribute opens the panel next to it, and data-talkieback-show brings the hidden floating button back instead. In React Native, Talkieback.open({ anchor: ref }) and Talkieback.show(). Suggest the placement to me before adding it. Declare with add_app_domain each address where the product runs that is missing: the development server (localhost with its port), staging.
Offer me notifications, which tell the user about a reply even with the app closed: if I accept, call enable_notifications with the tech and apply what it says. Don't look for push keys: I add them myself in Talkieback.
If users sign in, set up verified identity without asking me: call enable_verified_identity and apply what it says, the hash computed on the server and the identify call with the signed-in user's ID, email and name. The secret goes in the server's TALKIEBACK_SECRET environment variable, in the local environment file only if git ignores it, never in the code or in a commit. Never make up a secret. If the plan doesn't include verified identity, skip it and tell me in the report.
5. The check. For a website, start the development server if you can, then start_install_check with a page where the button should show. Open the returned link in a browser, or ask me to open it, then read get_install_status and fix what fails. For a native app, ask me to run it in debug mode: get_install_status shows the result of Talkieback.check(). Finally, ask me to send some test feedback from the button.
6. The morning routine. If list_apps says the plan includes reading and triaging feedback from an agent, offer me a Claude routine that triages new feedback every morning: it adds tags, assigns and spots duplicates without notifying any user, then leaves me a summary with what is left to decide (statuses, answers to questions). Otherwise, don't offer it. If I accept:
- The routine runs in Claude's cloud, not on this computer: the server connected here, in Claude Code, is of no use to it. If Talkieback is not yet a connector on my claude.ai account, ask me to add it as a custom connector at claude.ai/customize/connectors, with the address https://mcp.talkieback.com/mcp, then to authorize access with this app to open first, keeping “Read feedback” and “Reply to users and triage feedback” checked.
- Ask me what time to run it (by default every day at 8:07 am: a few minutes after the hour, it starts on time). Then write out the full command for me to type, following this model:
/schedule every day at 8:07 am, triage new Talkieback feedback: call the get_procedure tool of the Talkieback connector with name “trier”, mode “routine” and filtre “app_id the app_id, new in the last 24 hours”, then follow it.
- While creating it, keep the Talkieback connector and remove the ones triage doesn't need. Triage doesn't touch the code: if a repository is requested, the project one is fine.
- If /schedule is unknown, Claude Code is not signed in with a claude.ai subscription (Pro, Max, Team or Enterprise): tell me and move on.
7. The report. Tell me what you changed (files and settings), whether the morning routine is set up, and what is left to do: going live, the TALKIEBACK_SECRET variable to add on the production host if verified identity is set up, and the clause to add to the privacy policy (Settings › Privacy in Talkieback). Read manage_subscription and tell me my plan in one sentence, with the end of the trial if there is one: if I want to change, ask me which plan, monthly or yearly, then give me the payment link. Don't commit anything unless I ask.Websites and web apps
Native apps
Hybrid apps
For developers
Stuck on a step? Write to us.