Skip to content

Plugins API

Plugins API for easier DevTools integrations.

TIP

Since v7.3.0, we are fully compatible with the v6 plugin API. You can check out the API documentation here.

Installation

sh
$ npm add -D @vue/devtools-api
sh
$ pnpm add -D @vue/devtools-api
sh
$ yarn add -D @vue/devtools-api
sh
$ bun add -D @vue/devtools-api

addCustomTab

You can choose any icon from Material Design Icons or Iconify Ic Baseline, for example star.

ts
import { addCustomTab } from '@vue/devtools-api'  addCustomTab({  // unique identifier  name: 'vue-use',  // title to display in the tab  title: 'VueUse',  // any icon from material design icons or a URL to an image  icon: 'https://vueuse.org/favicon.svg',  // iframe view  view: {  type: 'iframe',  src: 'https://vueuse.org/',  },  category: 'advanced', })  const SFC = /* vue */ `  <script setup lang="ts">  import { ref } from 'vue'   const count = ref(0)  </script>   <template>  <div class="h-full w-full flex flex-col items-center justify-center">  <div>  count is {{ count }}  </div>  <button class="btn" @click="count++">  increment  </button>  </div>  </template>   <style scoped>  .btn {  background-color: #4c51bf;  color: #fff;  padding: 0.5rem 1rem;  border-radius: 0.25rem;  border: none;  cursor: pointer;  }  </style> `  addCustomTab({  name: 'plugin-count',  title: 'Plugin Count',  icon: 'baseline-exposure-plus-1',  // SFC view  view: {  type: 'sfc',  sfc: SFC,  },  category: 'app', })

addCustomCommand

You can choose any icon from Material Design Icons or Iconify Ic Baseline, for example star.

ts
import { addCustomCommand } from '@vue/devtools-api'  // Add a custom command with url addCustomCommand({  // unique identifier  id: 'vueuse',  // title to display in the command  title: 'VueUse',  // any icon from material design icons or a URL to an image  icon: 'https://vueuse.org/favicon.svg',  action: {  type: 'url',  src: 'https://vueuse.org/'  } })  // Add a custom command with submenu addCustomCommand({  // unique identifier  id: 'vueuse',  // title to display in the command  title: 'VueUse',  // any icon from material design icons or a URL to an image  icon: 'https://vueuse.org/favicon.svg',  // submenu, which is shown when the menu is clicked  children: [  {  id: 'vueuse:github',  title: 'Github',  action: {  type: 'url',  src: 'https://github.com/vueuse/vueuse'  }  },  {  id: 'vueuse:website',  title: 'Website',  icon: 'auto-awesome',  action: {  type: 'url',  src: 'https://vueuse.org/'  }  },  ], })

removeCustomCommand

ts
import { removeCustomCommand } from '@vue/devtools-api'  // Remove a custom command by id removeCustomCommand('vueuse')

onDevToolsClientConnected

ts
import { onDevToolsClientConnected } from '@vue/devtools-api'  onDevToolsClientConnected(() => {  console.log('devtools client connected') })