Do I need a Vue plugin or a component for the chat?
No. The script tag goes in index.html, outside your Vue app, and the chat runs in its own iframe. There is nothing to register in main.ts.
Install guide
One script tag in index.html is the whole install, no package to add to your Vue project. On Nuxt the same tag goes in nuxt.config.
No credit card needed · Free for 21 days
Where it goes
The snippet is the same on every platform: one script tag just before the closing body tag. These steps show where that is on Vue.
Add your website under Websites, using the domain you are installing on, and copy the snippet from its Embed code page. It has your site ID filled in; the one shown here uses a placeholder.
With Vite (the create-vue default) it is index.html at the project root. With Vue CLI it is public/index.html.
Put it after the script that loads your app. The tag is async, so it never delays your bundle.
Add an entry to app.head.script with the same src and data-site-id, async set to true and tagPosition set to bodyClose, so Nuxt renders the tag before </body> on every page.
Good to know
What you get
The widget lives in its own iframe, so it looks and works the same on Vue as everywhere else.
That is the whole install. No npm package, no build step, no plugin to keep updated.
Visitors see your answer the moment you send it, without refreshing. Your team replies from one inbox.
When nobody is online, visitors leave their email and a message, and the chat picks up where it left off.
No IP addresses, no fingerprinting, no third-party scripts. A name, an optional email and the conversation.
FAQ
Questions people ask before adding live chat to a Vue site. For everything else, the general FAQ has the rest.
No. The script tag goes in index.html, outside your Vue app, and the chat runs in its own iframe. There is nothing to register in main.ts.
In nuxt.config, add a script entry under app.head.script with the src and data-site-id from your snippet, async set to true and tagPosition set to bodyClose. Nuxt then renders the tag before </body> on every page.
Yes. Add data-mewdesk-open to the button, which needs no code, or call window.Mewdesk?.open() in a method bound to its click event.
Also installing on
Paste the snippet, answer your first visitor. The first 21 days are on us, with no card needed.