NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #4295 most downloaded on npm
👻 Primitive and flexible state management for React
Last release 10 days ago
08 Sep 2026
Ships fairly regularly
a new release about every 3 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
213 releases · first in 2020
One column per quarter.
This version fixes an edge case in core that has existed since v2.0.0.
This version fixes an edge case in core that has existed since v2.0.0.
Full Changelog: https://github.com/pmndrs/jotai/compare/v2.3.1...v2.4.0
There was a bug in #2061, which is fixed. It's about a dev-only warning.
There was a bug in #2061, which is fixed. It's about a dev-only warning.
Full Changelog: https://github.com/pmndrs/jotai/compare/v2.3.0...v2.3.1
Jotai v2's store API is framework-agnostic. The primary use case is for React, but the store can be used for other frameworks. One of the difficulties
Jotai v2's store API is framework-agnostic. The primary use case is for React, but the store can be used for other frameworks. One of the difficulties was handling promises, and there has been unstable_unwrap util since Jotai v2.0.0. Now, it's considered stable and becomes unwrap util (see docs for details).
Full Changelog: https://github.com/pmndrs/jotai/compare/v2.2.3...v2.3.0
This comes with some small improvements.
This comes with some small improvements.
Full Changelog: https://github.com/pmndrs/jotai/compare/v2.2.2...v2.2.3
This includes some fixes for edge cases.
This includes some fixes for edge cases.
Full Changelog: https://github.com/pmndrs/jotai/compare/v2.2.1...v2.2.2
This includes some improvements in jotai/utils. Especially, unstable_unwrap is getting to be stable.
This includes some improvements in jotai/utils. Especially, unstable_unwrap is getting to be stable.
Full Changelog: https://github.com/pmndrs/jotai/compare/v2.2.0...v2.2.1
It includes a few improvements. Some utils are rewritten as there was a misconception when migrating from v1. ESM builds are optimized for Vite users.
It includes a few improvements. Some utils are rewritten as there was a misconception when migrating from v1. ESM builds are optimized for Vite users.
jotai/utilsatomWithDefault// suppose we have this
const asyncAtom = atom(() => Promise.resolve(1))
const countAtom = atomWithDefault((get) => get(asyncAtom))
// and in component
const setCount = useSetAtom(countAtom)
// previously,
setCount((c) => c + 1) // it worked, but it will no longer work
// instead, you need to do this
setCount((countPromise) => countPromise.then((c) => c + 1))
atomWithStorage// suppose we have async storage
const storage = createJSONStorage(() => AsyncStorage)
const countAtom = atomWithStorage('count-key', 0, storage)
// in component
const [count, setCount] = useAtom(countAom)
// previously, countAtom is a sync atom, so you could update like this:
setCount((c) => c + 1)
// with the new version, it becomes async occasionally, so you need to resolve it:
setCount(async (c) => (await c) + 1)
Full Changelog: https://github.com/pmndrs/jotai/compare/v2.1.1...v2.2.0
This version fixes some issues in edge cases.
This version fixes some issues in edge cases.
Full Changelog: https://github.com/pmndrs/jotai/compare/v2.1.0...v2.1.1
This includes some improvements as well as some breaking changes in unstable features.
This includes some improvements as well as some breaking changes in unstable features.
Full Changelog: https://github.com/pmndrs/jotai/compare/v2.0.4...v2.1.0
This includes some small improvements. One of them is to improve Deno compatibility.
This includes some small improvements. One of them is to improve Deno compatibility.
Full Changelog: https://github.com/pmndrs/jotai/compare/v2.0.3...v2.0.4
This release includes important features for upcoming devtools.
This release includes important features for upcoming devtools.
Full Changelog: https://github.com/pmndrs/jotai/compare/v2.0.2...v2.0.3
This version add some small improvements, mostly for some minor cases.
This version add some small improvements, mostly for some minor cases.
Full Changelog: https://github.com/pmndrs/jotai/compare/v2.0.1...v2.0.2
This adds various small improvements. Docs are also updated.
This adds various small improvements. Docs are also updated.
__DEV__ with ts-jest by @dai-shi in https://github.com/pmndrs/jotai/pull/1742Full Changelog: https://github.com/pmndrs/jotai/compare/v2.0.0...v2.0.1
Async atom behavior is revisited and changed. TypeScript types are changed and improved.
Async atom behavior is revisited and changed. TypeScript types are changed and improved.
Exposes createStore which opens up new usages. With its power, it can be misused. Let's look for best practice. Feedback is appreciated.
https://github.com/pmndrs/jotai/blob/v2.0.0/docs/guides/migrating-to-v2-api.mdx
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.13.1...v2.0.0
Following v1.13.0, this version drops jotai/react/devtools entry point which was for pre-released v2 API. The same feature will be provided from jotai
Following v1.13.0, this version drops jotai/react/devtools entry point which was for pre-released v2 API. The same feature will be provided from jotai-devtools package.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.13.0...v1.13.1
feat(devtools): deprecate jotai/devtools to prepare for v2 by @dai-shi in https://github.com/pmndrs/jotai/pull/1677
We are working on improving devtools for v2 API. To mitigate the migration, jotai/devtools is moved to jotai-devtools in this version. Please be aware that you need to manually install jotai-devtools.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.12.1...v1.13.0
This version adds a few improvements in v2 API pre-release.
This version adds a few improvements in v2 API pre-release.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.12.0...v1.12.1
We are getting ready for v2 release. What you can do now is to update to this version, and a) check deprecation messages and/or b) try/migrate pre-rel…
We are getting ready for v2 release. What you can do now is to update to this version, and a) check deprecation messages and/or b) try/migrate pre-released v2 API. https://github.com/pmndrs/jotai/blob/v1.12.0/docs/guides/migrating-to-v2-api.mdx
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.11.2...v1.12.0
This version includes some refactors and improvements to the v2 API pre-release. If you are still new to the v2 API, please check it out. https://jota
This version includes some refactors and improvements to the v2 API pre-release. If you are still new to the v2 API, please check it out. https://jotai.org/docs/guides/migrating-to-v2-api
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.11.1...v1.11.2
v1.11.0 added the pre-release of v2 API. This patch version adds some improvements in the v2 API. It's still unstable, but feedbacks are very welcome.
v1.11.0 added the pre-release of v2 API. This patch version adds some improvements in the v2 API. It's still unstable, but feedbacks are very welcome.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.11.0...v1.11.1
This version has a little breaking change, which is the minimal version of node >=12.20.0 for server side usage.
This includes the pre-release of Jotai v2 API. See RFC #1514. The v2 API in the pre-release is technically considered unstable, but it's highly recommended to try it before v2. Unless we get any feedback, we don't know what to improve and it will be finalized as is. Please check the migration guide: https://github.com/pmndrs/jotai/blob/v1.11.0/docs/guides/migrating-to-v2-api.mdx Feel free to open a new discussion for questions, ideas and so on.
This version has a little breaking change, which is the minimal version of node >=12.20.0 for server side usage.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.10.0...v1.11.0
They are peer dependencies now and you would need to install them to keep using the features. Eventually, soon they are deprecated and will be removed…
We moved integrations to separate packages. They are peer dependencies now and you would need to install them to keep using the features. Eventually, soon they are deprecated and will be removed in jotai v2.0.0. There are no feature differences at this point, so the migration should be easy. Let us know if something goes wrong.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.9.2...v1.10.0
This fixes loadable util behavior.
This fixes loadable util behavior.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.9.1...v1.9.2
Some fixes. We are still not very confident with ESM bundling. Please feel free to open issues/discussions.
Some fixes. We are still not very confident with ESM bundling. Please feel free to open issues/discussions.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.9.0...v1.9.1
…functionality with wrappers (which will be deprecated in the future). Please check docs.
There's one of big decisions made probably since the initial release. There has been many feature requests for jotai/query and jotai/urql which exceed original API design. We re-implemented them in separate repositories providing more features, and keep the existing functionality with wrappers (which will be deprecated in the future). Please check docs.
There are other changes with build for ESM. Please feel free to open issues and discussions if you have any.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.8.6...v1.9.0
Jotai babel plugin is customizable!
Jotai babel plugin is customizable!
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.8.5...v1.8.6
This includes some small fixes in jotai/utils, jotai/zustand, and jotai/devtools.
This includes some small fixes in jotai/utils, jotai/zustand, and jotai/devtools.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.8.4...v1.8.5
This improves useAtom types. We also refactored atomWithQuery in jotai/query (fixing a regression that has been there since v1.7.7) and atomWithObserv
This improves useAtom types. We also refactored atomWithQuery in jotai/query (fixing a regression that has been there since v1.7.7) and atomWithObservable in jotai/utils.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.8.3...v1.8.4
jotai/urql supports error handling. This is still a new feature. Feel free to report issues.
jotai/urql supports error handling. This is still a new feature. Feel free to report issues.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.8.2...v1.8.3
There was some regressions in atomWithStorage and atomWithHash in jotai/utils, which should be fixed. (Feel free to report issues.) Also, this version
There was some regressions in atomWithStorage and atomWithHash in jotai/utils, which should be fixed. (Feel free to report issues.) Also, this version follows the type changes in urql v6, and it's TypeScript-only breaking for jotai/urql users.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.8.1...v1.8.2
This version includes some bug fixes and improvements, especially in atomFamily and atomWithStorage in jotai/utils.
This version includes some bug fixes and improvements, especially in atomFamily and atomWithStorage in jotai/utils.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.8.0...v1.8.1
This release adds a new internal feature for abortability of async functions. It's provided as abortableAtom util from 'jotai/utils'.
This release adds a new internal feature for abortability of async functions. It's provided as abortableAtom util from 'jotai/utils'.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.7.8...v1.8.0
This fixes some important logic in core, which has caused some edge-case issues.
This fixes some important logic in core, which has caused some edge-case issues.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.7.7...v1.7.8
It now works with @tanstack/query-core, and no longer supports react-query, which is deprecated. This is breaking change in jotai/query.
This version is important for jotai/query. It now works with @tanstack/query-core, and no longer supports react-query, which is deprecated. This is breaking change in jotai/query.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.7.6...v1.7.7
We still had some typing issues introduced in v1.7.3, which is basically reverted with some improvements. This version also has a new implementation o
We still had some typing issues introduced in v1.7.3, which is basically reverted with some improvements.
This version also has a new implementation of jotai/query which supports error handling.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.7.5...v1.7.6
It includes some refactors in core. Please report issues if any regression is found.
It includes some refactors in core. Please report issues if any regression is found.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.7.4...v1.7.5
There was a regression in v1.7.3 with TypeScript, which should be fixed in this version.
There was a regression in v1.7.3 with TypeScript, which should be fixed in this version.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.7.3...v1.7.4
fix(core): useAtom should return correct values when changing atoms by @dai-shi in https://github.com/pmndrs/jotai/pull/1236
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.7.2...v1.7.3
This includes a small fix to behave better with React 18.
This includes a small fix to behave better with React 18.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.7.1...v1.7.2
This fixes a few bugs. We hope to increase the compatibility with start/useTransition. Reporting issues is welcome.
This fixes a few bugs. We hope to increase the compatibility with start/useTransition. Reporting issues is welcome.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.7.0...v1.7.1
Prior to this version, Provider catches all atoms for useDebugValue in development mode for React DevTools. One issue is that you can’t disable this b
Prior to this version, Provider catches all atoms for useDebugValue in development mode for React DevTools. One issue is that you can’t disable this behavior. The other limitation is this doesn’t work with provider-less mode. To this end, we expose a new hook useAtomsDebugValue and remove the feature from Provider. Migration is required if you are using Provider and React DevTools to see atom values in development mode.
Previously, if you use <Provider>, useDebugValue is automatically used in the dev mode and you can never disable it.
import { Provider } from 'jotai'
const Root = () => (
<Provider>
<App />
</Provider>
}
Now, to get the same behavior, you need to use the useAtomsDebugValue explicitly.
import { Provider } from 'jotai'
import { useAtomsDebugValue } from 'jotai/devtools'
const DebugAtoms = () => {
useAtomsDebugValue()
return null
}
const Root = () => (
<Provider>
<DebugAtoms />
<App />
</Provider>
}
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.6.7...v1.7.0
React 18 behaves slightly differently from React 17 and some people reported extra re-renders. While extra re-renders without commits are expected, we
React 18 behaves slightly differently from React 17 and some people reported extra re-renders. While extra re-renders without commits are expected, we improved it with early bail out. Now, primitive atoms won't re-render with the same value. Derived atoms can still re-render without commits, but it's intentional.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.6.6...v1.6.7
This improves core behavior with React 18. We are not 100% sure if this change could cause any issues with old versions. (Our tests passed, but there
This improves core behavior with React 18. We are not 100% sure if this change could cause any issues with old versions. (Our tests passed, but there could be some missing tests. Contributions are welcome.)
undefined in case of error by @svilen-ivanov in https://github.com/pmndrs/jotai/pull/1130Full Changelog: https://github.com/pmndrs/jotai/compare/v1.6.5...v1.6.6
This reverts #1089 which was introduced in v1.6.3, which can behave buggy in some cases.
This reverts #1089 which was introduced in v1.6.3, which can behave buggy in some cases.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.6.4...v1.6.5
This release contains several small improvements in non-core functions. Some of changes introduce deprecation of simple form, which will be warned.
⚠️ Please use v1.6.5 and above.
This release contains several small improvements in non-core functions. Some of changes introduce deprecation of simple form, which will be warned.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.6.3...v1.6.4
⚠️ Please use v1.6.5 and above.
⚠️ Please use v1.6.5 and above.
There was a regression in atomWithStorage in v1.6.2, and it's fixed.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.6.2...v1.6.3
This improves atomWithObservable and fixes some hypothetical issues.
This improves atomWithObservable and fixes some hypothetical issues.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.6.1...v1.6.2
This includes some small fixes and improvements.
This includes some small fixes and improvements.
atomWithObservable is not resubscribed after remount by @11bit in https://github.com/pmndrs/jotai/pull/1016Full Changelog: https://github.com/pmndrs/jotai/compare/v1.6.0...v1.6.1
breaking(core,utils): remove some deprecated features by @dai-shi in https://github.com/pmndrs/jotai/pull/979
This release includes a long-awaited feature unstable_createStore. Although it's an experimental feature, it opens up possibilities for more use cases. Please feel free to experiment with it. Another change is to have useAtomValue and useSetAtom in core, which is just additional APIs, and we keep previous APIs in jotai/utils. UMD/SystemJS bundles are improved. See details below.
__DEV__ to control development mode by @dai-shi in https://github.com/pmndrs/jotai/pull/968Full Changelog: https://github.com/pmndrs/jotai/compare/v1.5.3...v1.6.0
This includes several fixes in core. Some of them have been existed for a long time, and can only be revealed in some edge cases. Hope the fixes are f
This includes several fixes in core. Some of them have been existed for a long time, and can only be revealed in some edge cases. Hope the fixes are fine but if there are some issues found, please report them.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.5.2...v1.5.3
v1.5.1 has an issue accidentally in non-browser environment like Next.js and React Native. This should fix it.
v1.5.1 has an issue accidentally in non-browser environment like Next.js and React Native. This should fix it.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.5.1...v1.5.2
This fixes some issues in splitAtom and atomWithStorage in jotai/utils. Also, adds UMD and SystemJS builds for CDN.
This fixes some issues in splitAtom and atomWithStorage in jotai/utils. Also, adds UMD and SystemJS builds for CDN.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.5.0...v1.5.1
This version drops some deprecated types, adds a new useAtomsDevtools hook for better debugging experience with Redux DevTools Extension, and introduc…
This version drops some deprecated types, adds a new useAtomsDevtools hook for better debugging experience with Redux DevTools Extension, and introduces an experimental (not for production) mode for React 18.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.4.9...v1.5.0
There was a regression in v1.4.7, which was in core and affected utils like atomWithStorage, jotai/xstate and maybe some others. It should be fixed. P
There was a regression in v1.4.7, which was in core and affected utils like atomWithStorage, jotai/xstate and maybe some others. It should be fixed. Please report issues if you find any.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.4.8...v1.4.9
fix(type): Fix types on waitForAll to work with destructuring by @russelldavis in https://github.com/pmndrs/jotai/pull/889
This has some small fixes.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.4.7...v1.4.8
This fixes some bugs, most importantly #877.
This fixes some bugs, most importantly #877.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.4.6...v1.4.7
This includes some small changes. The loadable util is re-implemented. unstable_promise in write getter becomes an option.
This includes some small changes. The loadable util is re-implemented. unstable_promise in write getter becomes an option.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.4.5...v1.4.6
This fixes a small issue in core and a type issue in utils.
This fixes a small issue in core and a type issue in utils.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.4.4...v1.4.5
This fixes a fundamental bug in core, which may affect some cases with complex derived atoms.
This fixes a fundamental bug in core, which may affect some cases with complex derived atoms.
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.4.3...v1.4.4
Now, useAtomDevtools in jotai/devtools supports read-only atoms. You can only see the read-only atom values in Redux DevTools Extention (you can't cha
Now, useAtomDevtools in jotai/devtools supports read-only atoms. You can only see the read-only atom values in Redux DevTools Extention (you can't change the value, like with time-traveling.)
Full Changelog: https://github.com/pmndrs/jotai/compare/v1.4.2...v1.4.3
Your coding agent can read these notes before it upgrades. Set up the MCP server →