---
title: useVariables
description: Read and mutate variable collections, variables, and variable values.
---

# useVariables

`useVariables()` is the lower-level variables composable behind the higher-level variables editor helpers.

Use it when you want direct control over collections, active modes, filtering, and CRUD operations without taking the full table/dialog abstraction.

## Usage

```ts
import { useVariables } from '@open-pencil/vue'

const variables = useVariables()
```

## Returns

- `collections`
- `activeCollectionId`
- `activeCollection`
- `activeModes`
- `variables`
- `searchTerm`
- `setSearchTerm()`
- `setActiveCollection()`
- `addCollection()`
- `renameCollection()`
- `addVariable()`
- `removeVariable()`
- `renameVariable()`
- `updateVariableValue()`
- `formatModeValue()`
- `parseVariableValue()`
- `shortName()`

## Related APIs

- [useVariablesEditor](../composables/use-variables-editor)
- [useVariablesDialogState](./use-variables-dialog-state)
- [useVariablesTable](./use-variables-table)
