This tool works with both Expo and React Native CLI projects. Just install and go.
Browse, edit, and manage all your app's persisted data. See every key-value pair across all storage backends in real-time.
Don't take our word for it — this is the real tool, running right here on mock storage. The guided tour below walks one debugging story: writes stream in across three backends, a declared contract lights up a session key that never wrote, you read Missing / Wrong / Type Error, write the fix, and pin the evidence. Or skip the tour and just start tapping:
Not a video — this is the shipped tool running on mock storage. AsyncStorage, MMKV, and SecureStore in one explorer: every write streams in live.
React Native's default key-value storage
High-performance native storage with encryption
Expo's encrypted storage for sensitive data
Multi-instance MMKV support — If you use multiple MMKV instances, they're all detected automatically. Switch between instances and see key counts per instance.
npm install @buoy-gg/storageThat's it. The Storage Explorer auto-detects installed backends and appears in your FloatingDevTools menu.
Expo SecureStore (iOS Keychain / Android KeyStore) has no key-listing API, so register the keys you want visible — pass the module in, no extra dependency needed:
import * as SecureStore from "expo-secure-store";
import { registerSecureStoreKeys } from "@buoy-gg/storage";
registerSecureStoreKeys(SecureStore, [
"auth.accessToken",
{ key: "session", keychainService: "com.myapp.auth" },
// Biometric-protected keys are listed but never auto-read (no surprise Face ID prompts)
{ key: "pin", requireAuthentication: true },
]);
import * as SecureStore from "expo-secure-store";
import { registerSecureStoreKeys } from "@buoy-gg/storage";
registerSecureStoreKeys(SecureStore, [
"auth.accessToken",
{ key: "session", keychainService: "com.myapp.auth" },
// Biometric-protected keys are listed but never auto-read (no surprise Face ID prompts)
{ key: "pin", requireAuthentication: true },
]);
MMKV instances need the same one-time registration — see the package README for details.
Registered values are re-read every few seconds while the browser is open, so a secure write shows up without reopening the tool. AsyncStorage and MMKV writes are picked up the moment they happen; the keychain gets a poll instead because it has no change notification of any kind.
View all keys and values
Modify values in real-time
Remove individual keys
Wipe all storage data
Filter keys instantly
Export values to clipboard
Edit values in place — Expand a key and hit Edit value to write a new one straight to the device. Types are preserved: an MMKV number stays a number, a boolean only accepts true/false, and a key holding JSON has to stay valid JSON — so you can't silently turn an object into a quoted string. Buffers, read-only MMKV instances, and biometric-protected SecureStore keys say why they can't be edited instead of offering a broken field.
Edit arrays and objects without typing JSON — Tap any node in the value tree and its actions appear alongside the key's other buttons: arrays get append, duplicate, reorder and remove; objects get add-key, duplicate and remove; scalars get a text field, with booleans as a two-way toggle. Editing a fifty-item array by hand-writing the whole blob is exactly the thing this avoids — the raw text editor is still there when you'd rather paste.
Inline value previews — Short values show right on the card (number · 42, string · "en"), and booleans get a color-coded true/false badge. No need to expand to see simple values.
Pin to top — Pin the keys you're watching so they stay at the top of the list. Pins persist across sessions.
Hide from list — One tap filters noisy keys out of the browser (from the expanded card or bulk selection). Non-destructive — unhide any time from the filters panel.
JSON formatting — Values that are valid JSON are automatically pretty-printed for readability.
Live events — Watch storage changes happen in real-time as your app reads and writes data.
Bulk selection — Select multiple keys to delete or export them all at once.
Install @buoy-gg/storage and open the Storage tool from the floating menu — all AsyncStorage keys are browsable and editable on the device, including in Expo Go.
Yes — AsyncStorage, MMKV, and SecureStore all appear in the same explorer, with a backend filter.