@json-render/redux

SkillCloud & infra

Lets your agent integrate -render with Redux or Redux Toolkit for app state management.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the @json-render/redux skill

About this capability

Redux adapter for json-render's StateStore interface. Use when integrating json-render with Redux or Redux Toolkit for state management via @json-render/redux.

What this skill tells your AI

The instructions your AI receives, as published by vercel-labs/json-render in skills/redux/SKILL.md and read by ahel’s review.

Redux adapter for json-render's StateStore interface. Wire a Redux store (or Redux Toolkit slice) as the state backend for json-render.

Installation

npm install @json-render/redux @json-render/core @json-render/react redux
# or with Redux Toolkit (recommended):
npm install @json-render/redux @json-render/core @json-render/react @reduxjs/toolkit

Usage

import { configureStore, createSlice } from "@reduxjs/toolkit";
import { reduxStateStore } from "@json-render/redux";
import { StateProvider } from "@json-render/react";

// 1. Define a slice for json-render state
const uiSlice = createSlice({
  name: "ui",
  initialState: { count: 0 } as Record<string, unknown>,
  reducers: {
    replaceUiState: (_state, action) => action.payload,
  },
});

// 2. Create the Redux store
const reduxStore = configureStore({
  reducer: { ui: uiSlice.reducer },
});

// 3. Create the json-render StateStore adapter
const store = reduxStateStore({
  store: reduxStore,
  selector: (state) => state.ui,
  dispatch: (next, s) => s.dispatch(uiSlice.actions.replaceUiState(next)),
});

// 4. Use it
<StateProvider store={store}>
  {/* json-render reads/writes go through Redux */}
</StateProvider>

API

reduxStateStore(options)

Creates a StateStore backed by a Redux store.

OptionTypeRequiredDescription
storeStoreYesThe Redux store instance
selector(state) => StateModelYesSelect the json-render slice from the Redux state tree. Use (s) => s if the entire state is the model.
dispatch(nextState, store) => voidYesDispatch an action that replaces the selected slice with the next state

The dispatch callback receives the full next state model and the Redux store.

Signals

GitHub stars
16k
Forks
874
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
redux-vercel-labs
Source
github.com/vercel-labs/json-render