> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tell.rs/llms.txt
> Use this file to discover all available pages before exploring further.

# Vue SDK

> Vue plugin and composable for Tell analytics.

```bash theme={null}
npm install @tell-rs/vue @tell-rs/browser
```

A plugin with a composable and global `$tell` property.

<Info>
  `@tell-rs/vue` is a thin wrapper around the [browser SDK](/tracking/sdks/javascript/browser). It connects Tell to Vue's app lifecycle — the plugin calls `configure()` on install and `close()` on app unmount. You install `@tell-rs/browser` alongside because that's where the actual tracking, sessions, and transport live.
</Info>

## Setup

```typescript theme={null}
import { createApp } from "vue";
import { TellPlugin } from "@tell-rs/vue";

const app = createApp(App);
app.use(TellPlugin, { apiKey: "YOUR_API_KEY" });
app.mount("#app");
```

### With options

```typescript theme={null}
import { redact, SENSITIVE_PARAMS } from "@tell-rs/browser";

app.use(TellPlugin, {
  apiKey: "YOUR_API_KEY",
  options: {
    beforeSend: redact({ stripParams: SENSITIVE_PARAMS }),
    captureErrors: true,
  },
});
```

## Composable

```vue theme={null}
<script setup>
import { useTell } from "@tell-rs/vue";

const tell = useTell();

function onSignUp() {
  tell.track("Sign Up Clicked", { plan: "pro" });
  tell.identify("user_123", { name: "Alice" });
}
</script>

<template>
  <button @click="onSignUp">Sign Up</button>
</template>
```

## Page view tracking with Vue Router

```typescript theme={null}
import { tell } from "@tell-rs/vue";
import router from "./router";

router.afterEach((to) => {
  tell.track("Page Viewed", { path: to.path, url: to.fullPath });
});
```

## What you get from the browser SDK

All features documented in the [browser SDK guide](/tracking/sdks/javascript/browser) are available — sessions, device context, super properties, structured logging, opt-out, and `beforeSend` hooks. The Vue package only adds lifecycle integration and the composable.
