# immer

> Create your next immutable state by mutating the current one

Latest version **11.1.21** (published 2026-10-02) · MIT license · 0 weekly downloads

## Install

```sh
npm install immer
pnpm add immer
yarn add immer
bun add immer
```

## Health

**Score 80/100 (A)** — status: active.

Positive: has types; esm support; no vulnerabilities; has provenance; recently updated; high maintenance score; high quality score; popular repo.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 11.1.21 |
| Published | 2026-10-02 |
| First published | 2016-10-07 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 0 |
| Unpacked size | 939.8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| GitHub stars | 28984 |
| Author | Michel Weststrate |
| Maintainers | mweststrate, aleclarson |
| Keywords | immutable, mutable, copy-on-write |

## Links

- npm: https://www.npmjs.com/package/immer
- Repository: https://github.com/immerjs/immer
- Homepage: https://github.com/immerjs/immer#readme
- Issues: https://github.com/immerjs/immer/issues
- Funding: https://opencollective.com/immer
- npm.io page: https://npm.io/package/immer

## Alternatives

- [@lexical/table](https://npm.io/package/@lexical/table.md) — 3.0M weekly downloads
- [mantine-datatable](https://npm.io/package/mantine-datatable.md) — 98.2K weekly downloads
- [react-native-collapsible-tab-view](https://npm.io/package/react-native-collapsible-tab-view.md) — 70.6K weekly downloads
- [@handsontable/vue3](https://npm.io/package/@handsontable/vue3.md) — 16.1K weekly downloads
- [vuewordcloud](https://npm.io/package/vuewordcloud.md) — 7.2K weekly downloads

## Recent versions

- 11.1.21 (latest) — 2026-10-02
- 10.0.4-beta (beta) — 2024-03-11
- 4.0.0-beta.0 (next) — 2019-05-29
- 11.1.20 — 2026-10-02
- 11.1.19 — 2026-10-02
- 11.1.18 — 2026-08-19
- 11.1.17 — 2026-08-16
- 11.1.16 — 2026-08-05
- 11.1.15 — 2026-07-16
- 11.1.14 — 2026-07-16
- 11.1.13 — 2026-07-16
- 11.1.12 — 2026-07-16
- 11.1.11 — 2026-07-03
- 11.1.10 — 2026-07-03
- 11.1.9 — 2026-07-01
- … 184 more at https://npm.io/package/immer/versions

## README

<img src="images/immer-logo.svg" height="200px" align="right"/>

# Immer

[![npm](https://img.shields.io/npm/v/immer.svg)](https://www.npmjs.com/package/immer) [![Build Status](https://github.com/immerjs/immer/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/immerjs/immer/actions?query=branch%3Amain) [![Coverage Status](https://coveralls.io/repos/github/immerjs/immer/badge.svg?branch=main)](https://coveralls.io/github/immerjs/immer?branch=main) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier) [![OpenCollective](https://opencollective.com/immer/backers/badge.svg)](#backers) [![OpenCollective](https://opencollective.com/immer/sponsors/badge.svg)](#sponsors) [![Gitpod Ready-to-Code](https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/immerjs/immer)

_Create the next immutable state tree by simply modifying the current tree_

Winner of the "Breakthrough of the year" [React open source award](https://osawards.com/react/) and "Most impactful contribution" [JavaScript open source award](https://osawards.com/javascript/) in 2019

## Contribute using one-click online setup

You can use Gitpod (a free online VSCode like IDE) for contributing online. With a single click it will launch a workspace and automatically:

- clone the immer repo.
- install the dependencies.
- run `yarn run start`.

so that you can start coding straight away.

[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/)

## Documentation

The documentation of this package is hosted at https://immerjs.github.io/immer/

## Support

Did Immer make a difference to your project? Join the open collective at https://opencollective.com/immer!

## Release notes

https://github.com/immerjs/immer/releases

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