# @bpmn-io/feel-lint

> Linter for FEEL expressions.

Latest version **3.2.0** (published 2026-07-16) · MIT license · 0 weekly downloads

## Install

```sh
npm install @bpmn-io/feel-lint
pnpm add @bpmn-io/feel-lint
yarn add @bpmn-io/feel-lint
bun add @bpmn-io/feel-lint
```

## Health

**Score 55/100 (C)** — status: active.

Positive: esm support; no vulnerabilities; high maintenance score.

Warnings: low downloads; no types.

## Facts

| | |
|---|---|
| Version | 3.2.0 |
| Published | 2026-07-16 |
| First published | 2022-10-17 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | ESM + CommonJS |
| Node | * |
| Dependencies | 4 |
| Unpacked size | 39.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 2 |
| Author | Martin Stamm |
| Maintainers | bpmn-io-admin, nikku, barmac, philippfromme, maxtru, skaiir-camunda, vsgoulart, barinali, ev-camunda, jarekdanielak, alekseymanetov |
| Keywords | bpmn-io, feel, linter |

## Links

- npm: https://www.npmjs.com/package/@bpmn-io/feel-lint
- Repository: https://github.com/bpmn-io/feel-lint
- Homepage: https://github.com/bpmn-io/feel-lint#readme
- Issues: https://github.com/bpmn-io/feel-lint/issues
- npm.io page: https://npm.io/package/@bpmn-io/feel-lint

## Dependencies (4)

- [@bpmn-io/lezer-feel](https://npm.io/package/@bpmn-io/lezer-feel.md) ^3.0.0
- [@codemirror/language](https://npm.io/package/@codemirror/language.md) ^6.12.1
- [@bpmn-io/feel-analyzer](https://npm.io/package/@bpmn-io/feel-analyzer.md) ^0.5.0
- [@bpmn-io/semver-compat](https://npm.io/package/@bpmn-io/semver-compat.md) ^0.1.0

## Alternatives

- [eslint-plugin-sonarjs](https://npm.io/package/eslint-plugin-sonarjs.md) — 2.9M weekly downloads
- [eslint-config-expo](https://npm.io/package/eslint-config-expo.md) — 1.5M weekly downloads
- [@matter/protocol](https://npm.io/package/@matter/protocol.md) — 63.5K weekly downloads
- [@eventcatalog/linter](https://npm.io/package/@eventcatalog/linter.md) — 24.8K weekly downloads
- [@pandacss/eslint-plugin](https://npm.io/package/@pandacss/eslint-plugin.md) — 18.7K weekly downloads

## Recent versions

- 3.2.0 (latest) — 2026-07-16
- 3.1.0 — 2026-02-04
- 3.0.0 — 2025-12-09
- 2.1.0 — 2025-08-22
- 2.0.1 — 2025-08-08
- 2.0.0 — 2025-07-23
- 1.4.0 — 2025-01-22
- 1.3.1 — 2024-09-20
- 1.3.0 — 2024-08-26
- 1.2.0 — 2024-01-17
- 1.1.0 — 2023-10-13
- 1.0.0 — 2023-08-28
- 0.2.0 — 2023-07-05
- 0.1.1 — 2022-11-29
- 0.1.0 — 2022-10-17

## README

# @bpmn-io/feel-lint

[![CI](https://github.com/bpmn-io/feel-lint/actions/workflows/CI.yml/badge.svg)](https://github.com/bpmn-io/feel-lint/actions/workflows/CI.yml)

Linting for FEEL expressions.

## Usage

There are 2 ways to use this library:

### Linting string expressions

The `lintExpression` function takes a string expression and returns a list of linting errors.

```javascript
import { lintExpression } from "@bpmn-io/feel-lint"

lintExpression('foo = bar');
```

You may pass custom language configuration to the editor. Checkout [@camunda/feel-builtins](https://github.com/camunda/feel-builtins) for a reference of built-in functions.

```javascript
import { camundaBuiltins } from '@camunda/feel-builtins';

lintExpression('> 10, "yes", mike\'s name', {
  dialect: 'unaryTests',
  builtins: camundaBuiltins,
  variables:  [
    {
       name: `mike's name`
    }
  ]
});
```

### CodeMirror plugin

The `cmFeelLinter` function returns a [`LintSource`](https://codemirror.net/docs/ref/#lint.LintSource) that you can use to extend your [CodeMirror](https://codemirror.net/) instance.

```javascript
import { cmFeelLinter } from "@bpmn-io/feel-lint"
import { linter } from '@codemirror/lint';

// ...

const myEditor = new EditorView({
    state: EditorState.create({
      doc: '',
      extensions: [
        linter(cmFeelLinter())
      ]
    })
  });
```


## Hacking the Project

To get the development setup make sure to have [NodeJS](https://nodejs.org/en/download/) installed.
As soon as you are set up, clone the project and execute

```
npm install
npm run dev
```

## License

MIT

---
_Source: https://npm.io/package/@bpmn-io/feel-lint · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
