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

Reex API is the React framework for API integration. Test endpoints directly in your browser, and turn OpenAPI or Postman collections into production-ready TanStack Query hooks.

Private Network Access (Direct Localhost)
ts-morph AST Code Generation
TanStack React Query v5
Reex Studio interface showing API projects and request configuration
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.

npm i -g reex-cli
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 Generation
Import a collection. Get definitions, hooks, and types instantly.
React Query Hook Generation
Every endpoint produces a useQuery or useMutation hook automatically.
Automatic Cache Invalidation
Mutations call invalidateQueries with the correct key on success.
Query Key Factory Generation
Structured queryKey factories are generated per module.
TypeScript Interface Generation
Live response bodies are converted to typed interfaces in one click.
Barrel Export Generation
A single index.ts re-exports all hooks for clean imports.
API Definition Scaffolding
Typed definition files with correct function signatures per endpoint.
File Upload Support
@contentType JSDoc tag generates the correct multipart/form-data interface.
Response Unwrapping
unwrapResponseData strips the top-level data wrapper automatically.
Bidirectional AST Sync
Edit in VS Code or Reex Studio — changes flow both ways via ts-morph.
UI → Code Sync
Studio actions write generated files directly to your local filesystem.
Code → UI Sync
Editing definitions/ in your IDE is reflected in the Studio instantly.
Smart API Diff
Re-import a collection and see exactly what changed before code is touched.
Git-Style Diff View
Side-by-side: new fields, removed endpoints, payload mutations.
Conflict Detection
Detects collisions between incoming changes and existing definitions.
Per-Change Accept / Reject
Review each diff individually — no all-or-nothing overwrites.
JWT / Bearer Token Strategy
Stores and refreshes tokens in localStorage. Fully automated.
HTTP-Only Cookie Strategy
W3C-standard secure cookie sessions with browser-managed tokens.
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.

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.