From API Schema to Type-Safe React Query in Seconds.

The open-source visual API client and AST generator. Test endpoints directly in your browser with Private Network Access, sync bidirectional with your local repo via reex start, and eliminate frontend integration boilerplate forever.

Launch Studio Free
Private Network Access (Direct Localhost)
ts-morph AST Code Generation
TanStack React Query v5
Reex Studio Video Placeholder
Zero-Config Bridge

Connect your local codebase in seconds.

Run the bridge CLI in your project root to link the web studio directly to your local environment with zero CORS proxies, tokens, or cloud mandates.

$reex start
1

Local Daemon Listener

Spins up a lightweight Express server on port 4000 with built-in file watching and security headers.

File WatchingSecurity HeadersLocal Daemon
2

Private Network Access

Web client connects directly to localhost over Chrome PNA with zero CORS proxy extensions or tokens.

Zero CORSPrivate NetworkW3C Standard
3

AST Code Generator

Writes type-safe React Query hooks, schemas, and invalidation rules directly into your repo using ts-morph.

ts-morph ASTReact Query v5Zero Drift
Full Feature Set

Everything your frontend needs. Zero manual wiring.

Reex replaces handwritten Axios calls, manual types, and boilerplate hooks with an intelligent, local-first code engine — from generation to auth, sync, and testing.

Zero-Boilerplate GenerationImport a collection. Get definitions, hooks, and types instantly.
React Query Hook GenerationEvery endpoint produces a useQuery or useMutation hook automatically.
Automatic Cache InvalidationMutations call invalidateQueries with the correct key on success.
Query Key Factory GenerationStructured queryKey factories are generated per module.
TypeScript Interface GenerationLive response bodies are converted to typed interfaces in one click.
Barrel Export GenerationA single index.ts re-exports all hooks for clean imports.
API Definition ScaffoldingTyped definition files with correct function signatures per endpoint.
File Upload Support@contentType JSDoc tag generates the correct multipart/form-data interface.
Response UnwrappingunwrapResponseData strips the top-level data wrapper automatically.
Bidirectional AST SyncEdit in VS Code or Reex Studio — changes flow both ways via ts-morph.
UI → Code SyncStudio actions write generated files directly to your local filesystem.
Code → UI SyncEditing definitions/ in your IDE is reflected in the Studio instantly.
Smart API DiffRe-import a collection and see exactly what changed before code is touched.
Git-Style Diff ViewSide-by-side: new fields, removed endpoints, payload mutations.
Conflict DetectionDetects collisions between incoming changes and existing definitions.
Per-Change Accept / RejectReview each diff individually — no all-or-nothing overwrites.
JWT / Bearer Token StrategyStores and refreshes tokens in localStorage. Fully automated.
HTTP-Only Cookie StrategyW3C-standard secure cookie sessions with browser-managed tokens.
NextAuth.js StrategyReads the session token from getSession() and injects it per request.
Strategy SwitcherSwap auth strategies via a single prop — no rewiring needed.
Silent 401 Retry QueueConcurrent requests queue on a 401 and replay after token refresh.
Silent Token RefreshExpired tokens are exchanged transparently. Users never see a failure.
JWT Expiry DetectionDecodes the JWT exp claim from base64 — no library required.
Session Restoration on MountAuth guards restore sessions from stored tokens on every app load.
Global Auth Eventsauth:login and auth:logout DOM events coordinate session state app-wide.
Pluggable Token ProviderImplement TokenProvider to add a fully custom auth strategy.
Custom Request HeadersInject tenant IDs, API keys, or any header that persists across requests.
Production-Grade Axios Clientcore.ts ships a hardened Axios instance with interceptors and auth baked in.
Normalized Error InterceptorsEvery backend error shape maps to a consistent ApiError interface.
Automatic Token InjectionRequest interceptor injects Authorization: Bearer on every authenticated call.
Request / Response LoggingToggle enableApiLogging in api.config.ts to log all traffic.
Configurable Base URLOne baseURL in api.config.ts propagates across all generated definitions.
FormData Header ManagementDrops Content-Type for FormData so Axios computes the correct boundary.
Smart Retry LogicSkips retrying 401, 403, 404, and 422. Retries once for server errors.
OpenAPI 3.0 / 3.1 ImportImport Swagger specs in JSON format. Full OpenAPI support.
Postman v2.1 ImportImport full Postman collections including auth, environments, and bodies.
Import from FileUpload a .json file directly from disk.
Import from URLPaste a public spec URL and Reex fetches and parses it instantly.
Path Parameter DetectionParses {id}-style path params and generates correct function signatures.
Auth Mechanism DetectionAuth type is detected from the collection and pre-configured automatically.
Request Schema DetectionBody shapes are parsed and pre-populate the Studio's request form.
Multiple CollectionsWork with multiple collections in parallel, each with its own base URL.
Private Network Access TestingTest localhost APIs in the web Studio — no CORS plugins or proxies.
Local Daemon Listenerreex start spins an Express server on port 4000 bridging UI and filesystem.
Multi-Port SupportRun reex start -p 4002 to connect multiple projects simultaneously.
Request Pre-configurationSelecting an endpoint pre-fills params, headers, body, and base URL.
Real-Time Response DisplayLive response with body, HTTP status, timing (ms), and size (bytes).
Auto Dependency Installationreex start detects and installs Axios, TanStack Query, and auth packages.
ReexProvider Single WrapperOne provider sets up QueryClient, Auth, and Notifications in one import.
useAuthSession Hookstatus, isAuthenticated, setSession, clearSession — all in one hook.
useHeaders HooksetCustomHeaders and removeCustomHeader for per-request header management.
useNotification HookConsume centralized toast notification state from any component.
Deduped NotificationsIdentical errors are suppressed within a 2.5s window to prevent spam.
Auto-Dismiss NotificationsToasts auto-dismiss after 5s by default. Configurable per instance.
IntelliSense via satisfiesGenerated files use satisfies ReexDefinition for maximum autocomplete.
Save Interface to ProjectOne click persists a generated TypeScript interface to your types/ folder.
Copy InterfaceCopy any generated TypeScript interface to clipboard instantly.
Multi-Framework SupportWorks with Next.js (App + Pages), Vite, and React Router.
Create Collections from ScratchBuild and organize requests without importing a spec.
Full HTTP Method SupportGET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS — all supported.
Auto-SaveEvery change is saved in real-time. No manual save button.
Cloud SyncWorkspace syncs to the cloud when subscribed. Continue across devices.
Persistent WorkspaceRequest configs, responses, and interfaces survive browser sessions.
Dev ModeFull codebase integration — generation, sync, and diff in your local project.
Preview ModeProject-free API exploration. Import and test with no local setup.
API Sandbox ModeBlank scratchpad for building and testing requests from scratch.
Workspace SwitcherSwitch between Dev, Preview, and Sandbox modes from the top nav.

67 features

Real Generated Output

Your entire API layer. Written to disk, not a black box.

Reex writes real, editable TypeScript files to your src/api-services/ directory — definitions you can modify, hooks that stay in sync.

src / api-services /
Explorer
api-services/
editableauto-geninternal
src/api-services/definitions/accountReports.ts
1import { apiClient } from "../core";
2import { type ReexDefinition } from "../.reex/config";
3import { type get_accountReports } from "../types/accountReports/get_accountReports";
4import { type post_accountReports } from "../types/accountReports/post_accountReports";
5
6export interface CreateAccountReportPayload {
7 reportName: string;
8 period: string;
9 format: "pdf" | "csv" | "xlsx";
10 includePending?: boolean;
11}
12
13export const accountReportsApi = {
14 /** @description Retrieve all account reports @auth */
15 get_accountReports: (): Promise<get_accountReports> =>
16 apiClient.get(`/api/v1/account-reports`),
17
18 /** @description Create a new account report @auth */
19 post_accountReports: (
20 payload: CreateAccountReportPayload
21 ): Promise<post_accountReports> =>
22 apiClient.post(`/api/v1/account-reports`, payload),
23} satisfies ReexDefinition;
01You importDrop in an OpenAPI 3.x spec or Postman v2.1 collection via file or URL.
02Reex writesdefinitions/, generated/, and types/ are scaffolded to your src/api-services/ folder.
03You consumeCall useGetAccountReportsQuery() or usePostAccountReportsMutation() directly in your component.
Smart API Diffing

Re-import without fear. Review every change, accept what you want.

Reex compares the new collection against your existing definitions. New fields, removed endpoints, payload mutations — all surfaced before a single line of code is touched.

Review Changes
+2 Added·~1 Modified·-1 Removed·4 Unchanged
POST/api/v1/account-reports
MODIFIED
GET/api/v1/account-reports
UNCHANGED
GET/api/v1/account-reports/{id}
UNCHANGED
POST/api/v1/reports/export
NEW
DELETE/api/v1/reports/legacy-pdf
REMOVED
POST/api/v1/account-reports
export interface AccountReport {
id: string;
reportName: string;
status: string;
+ status: "PENDING" | "ACTIVE" | "ARCHIVED";
+ exportUrl?: string;
legacy_download_token?: number;
createdAt: string;
}
AST-safe: custom overrides in your repo are preserved.
From spec to component

Three steps. No boilerplate.

Import your API spec, run one command, and start calling type-safe hooks in your components. That's the entire setup.

01

Import your collection

Drop an OpenAPI 3.x or Postman v2.1 spec into Reex Studio via file, URL, or direct Postman import. Endpoints, auth mechanisms, and schemas are detected automatically.

✓ swagger.v2.json
OpenAPI 3.1 detected
18 endpoints · 6 modules · 3 auth routes
Ready to generate →
02

Run reex start

One command spins up a local daemon that connects Reex Studio to your project's src/api-services/ directory. The bridge watches your files and syncs AST changes bidirectionally.

$ reex start
● Bridge active on :4000
✓ Watching src/api-services/
✓ Connected to Reex Studio
03

Use the generated hooks

Call type-safe hooks directly in your components. Cache management, mutation triggers, and auto-invalidations work out of the box — no setup, no manual wiring.

const { data, isPending } =
useGetAccountReportsQuery();
 
const { mutate } =
usePostAccountReportsMutation();
MIT Licensed

Built in public. Owned by you.

Reex is MIT licensed. No feature gating, no telemetry, no cloud account required. Every line of code is public and auditable on GitHub.

MIT

No paywalls. No tracking. No mandated cloud account. Every line of client, CLI daemon, and generator code is public on GitHub.

MIT LicenseZero telemetrySelf-hostableNo feature gating
View on GitHub
Frequently Asked Questions

Everything you need to know.

Have questions about security, AST generation, or local setup? Here are the answers.

Yes, absolutely. Reex is released under the permissive MIT License. All core visual studio features, the reex-cli bridge, the OpenAPI/Postman parsers, and the AST generator are completely free with zero feature gating, limits, or recurring subscriptions.

Start In Seconds

Ready to eliminate frontend API boilerplate?

Test endpoints in your browser right now or run the CLI in your codebase. 100% free and open source forever.