# Feature catalog — pmndrs/valtio

> Canonical page: https://codevetter.com/unpack/valtio/feature-catalog

# Feature catalog — pmndrs/valtio

Scanned commit 26d8ca8cb6e5bb3b9516d429e50bc5aab1f42e0d (2026-10-01). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

The library exposes mutable proxy state, snapshots, subscriptions, and React hooks as its primary developer-facing features. Utilities add reactive collections, cloning, normalization, effects, and debugging. Examples demonstrate complete interactions, while the website provides documentation navigation and theme controls. History and derived-state documentation also introduce external packages, whose implementations are outside this inspection.
- proxy() accepts an object or defaults to {}, reuses a cached proxy for the same base object, and wraps eligible assigned children; snapshot() and getVersion() expose current derived state and version information. — [src/vanilla.ts#L186-L193](https://github.com/pmndrs/valtio/blob/26d8ca8cb6e5bb3b9516d429e50bc5aab1f42e0d/src/vanilla.ts#L186-L193) [src/vanilla.ts#L137-L156](https://github.com/pmndrs/valtio/blob/26d8ca8cb6e5bb3b9516d429e50bc5aab1f42e0d/src/vanilla.ts#L137-L156) [src/vanilla.ts#L305-L308](https://github.com/pmndrs/valtio/blob/26d8ca8cb6e5bb3b9516d429e50bc5aab1f42e0d/src/vanilla.ts#L305-L308) [src/vanilla.ts#L354-L360](https://github.com/pmndrs/valtio/blob/26d8ca8cb6e5bb3b9516d429e50bc5aab1f42e0d/src/vanilla.ts#L354-L360)
- subscribe() returns an unsubscribe function and supports batched or synchronous delivery; subscribeKey() adds Object.is filtering for a particular property, and unstable_enableOp() enables set/delete mutation records. — [src/vanilla.ts#L313-L349](https://github.com/pmndrs/valtio/blob/26d8ca8cb6e5bb3b9516d429e50bc5aab1f42e0d/src/vanilla.ts#L313-L349) [src/vanilla.ts#L449-L458](https://github.com/pmndrs/valtio/blob/26d8ca8cb6e5bb3b9516d429e50bc5aab1f42e0d/src/vanilla.ts#L449-L458) [src/vanilla/utils/subscribeKey.ts#L14-L30](https://github.com/pmndrs/valtio/blob/26d8ca8cb6e5bb3b9516d429e50bc5aab1f42e0d/src/vanilla/utils/subscribeKey.ts#L14-L30)
- useSnapshot() returns a property-tracked Snapshot<T> with an optional sync flag; useProxy() provides render-time snapshot reads and post-layout live reads, with an explicit React Compiler compatibility caveat. — [src/react.ts#L119-L174](https://github.com/pmndrs/valtio/blob/26d8ca8cb6e5bb3b9516d429e50bc5aab1f42e0d/src/react.ts#L119-L174) [src/react/utils/useProxy.ts#L25-L48](https://github.com/pmndrs/valtio/blob/26d8ca8cb6e5bb3b9516d429e50bc5aab1f42e0d/src/react/utils/useProxy.ts#L25-L48)
- proxyMap() implements reactive lookup, mutation, iteration, size, and snapshot mutation guards; proxySet() adds reactive Set operations and union/intersection/difference predicates, while proxyMap's getOrInsert methods explicitly throw. — [src/vanilla/utils/proxyMap.ts#L87-L143](https://github.com/pmndrs/valtio/blob/26d8ca8cb6e5bb3b9516d429e50bc5aab1f42e0d/src/vanilla/utils/proxyMap.ts#L87-L143) [src/vanilla/utils/proxyMap.ts#L144-L186](https://github.com/pmndrs/valtio/blob/26d8ca8cb6e5bb3b9516d429e50bc5aab1f42e0d/src/vanilla/utils/proxyMap.ts#L144-L186) [src/vanilla/utils/proxySet.ts#L104-L175](https://github.com/pmndrs/valtio/blob/26d8ca8cb6e5bb3b9516d429e50bc5aab1f42e0d/src/vanilla/utils/proxySet.ts#L104-L175) [src/vanilla/utils/proxySet.ts#L264-L282](https://github.com/pmndrs/valtio/blob/26d8ca8cb6e5bb3b9516d429e50bc5aab1f42e0d/src/vanilla/utils/proxySet.ts#L264-L282)
- ref() excludes an identity from tracking; deepClone() recursively copies ordinary containers while retaining configured references, and unstable_deepProxy() additionally converts native or proxy Maps/Sets into reactive collections. — [src/vanilla.ts#L369-L371](https://github.com/pmndrs/valtio/blob/26d8ca8cb6e5bb3b9516d429e50bc5aab1f42e0d/src/vanilla.ts#L369-L371) [src/vanilla/utils/deepClone.ts#L17-L31](https://github.com/pmndrs/valtio/blob/26d8ca8cb6e5bb3b9516d429e50bc5aab1f42e0d/src/vanilla/utils/deepClone.ts#L17-L31) [src/vanilla/utils/deepProxy.ts#L28-L75](https://github.com/pmndrs/valtio/blob/26d8ca8cb6e5bb3b9516d429e50bc5aab1f42e0d/src/vanilla/utils/deepProxy.ts#L28-L75)
- watch() runs an effect immediately, tracks proxies passed to get(), and manages cleanup/subscriptions, but is deprecated; devtools() connects to Redux DevTools for state inspection, ACTION updates, time travel, commit, and imported history. — [src/vanilla/utils/watch.ts#L19-L35](https://github.com/pmndrs/valtio/blob/26d8ca8cb6e5bb3b9516d429e50bc5aab1f42e0d/src/vanilla/utils/watch.ts#L19-L35) [src/vanilla/utils/watch.ts#L88-L136](https://github.com/pmndrs/valtio/blob/26d8ca8cb6e5bb3b9516d429e50bc5aab1f42e0d/src/vanilla/utils/watch.ts#L88-L136) [src/vanilla/utils/devtools.ts#L58-L84](https://github.com/pmndrs/valtio/blob/26d8ca8cb6e5bb3b9516d429e50bc5aab1f42e0d/src/vanilla/utils/devtools.ts#L58-L84) [src/vanilla/utils/devtools.ts#L92-L145](https://github.com/pmndrs/valtio/blob/26d8ca8cb6e5bb3b9516d429e50bc5aab1f42e0d/src/vanilla/utils/devtools.ts#L92-L145)
- Examples expose counter increment/decrement and independent ticks, array-backed todo add/toggle/delete/filter, and Map-backed todo editing, bulk completion, three filters, and active counts; the history editor exposes undo/redo through valtio-history. — [examples/counter/src/App.tsx#L13-L35](https://github.com/pmndrs/valtio/blob/26d8ca8cb6e5bb3b9516d429e50bc5aab1f42e0d/examples/counter/src/App.tsx#L13-L35) [examples/todo/src/store.ts#L23-L57](https://github.com/pmndrs/valtio/blob/26d8ca8cb6e5bb3b9516d429e50bc5aab1f42e0d/examples/todo/src/store.ts#L23-L57) [examples/todo-with-proxyMap/src/store.ts#L24-L89](https://github.com/pmndrs/valtio/blob/26d8ca8cb6e5bb3b9516d429e50bc5aab1f42e0d/examples/todo-with-proxyMap/src/store.ts#L24-L89) [examples/editor-proxyWithHistory/src/App.tsx#L5-L34](https://github.com/pmndrs/valtio/blob/26d8ca8cb6e5bb3b9516d429e50bc5aab1f42e0d/examples/editor-proxyWithHistory/src/App.tsx#L5-L34)
- The photo booth captures camera frames, accepts/rejects candidates, selects/deletes saved images, and persists images through localforage; the website exposes MDX docs, a mobile navigation dialog, and localStorage/system-driven dark mode. — [examples/photo-booth-vanillajs/src/main.js#L37-L76](https://github.com/pmndrs/valtio/blob/26d8ca8cb6e5bb3b9516d429e50bc5aab1f42e0d/examples/photo-booth-vanillajs/src/main.js#L37-L76) [examples/photo-booth-vanillajs/src/main.js#L105-L164](https://github.com/pmndrs/valtio/blob/26d8ca8cb6e5bb3b9516d429e50bc5aab1f42e0d/examples/photo-booth-vanillajs/src/main.js#L105-L164) [website/components/layouts/DocLayout/DocLayout.tsx#L368-L393](https://github.com/pmndrs/valtio/blob/26d8ca8cb6e5bb3b9516d429e50bc5aab1f42e0d/website/components/layouts/DocLayout/DocLayout.tsx#L368-L393) [website/hooks/useTheme.ts#L36-L69](https://github.com/pmndrs/valtio/blob/26d8ca8cb6e5bb3b9516d429e50bc5aab1f42e0d/website/hooks/useTheme.ts#L36-L69)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
