Form-heavy apps drown users
Insurance portals, HR systems, government services — users must navigate a menu of form types, pick the correct one, then fill 20 fields from scratch. Most pick the wrong form. Most abandon halfway through.
Open source · React · AI-powered
Users describe what they need. IntentForm picks the right form, pre-fills every field, and sends your backend the exact JSON it already expects.
Form-heavy apps drown users
Insurance portals, HR systems, government services — users must navigate a menu of form types, pick the correct one, then fill 20 fields from scratch. Most pick the wrong form. Most abandon halfway through.
Chat alone can't replace forms
A chat transcript can’t be validated, routed to a backend endpoint, or stored without a fragile parsing step. Your POST /api/claims expects { policyNumber, claimType, incidentDate } — not a paragraph.
Models map 1:1 to your API
Define one ModelDefinition per backend entity. IntentForm’s engine resolves intent to the right model and extracts structured values that match your existing schema — no new endpoints, no new storage format.
flowchart LR
A["User intent\n(natural language)"] -->|"engine.parse()"| B["AI provider"]
B -->|"JSON only"| C{"Model registry"}
C -->|"Zod-validated"| D["Pre-filled form\nready to review"]
D -.->|"POST /api/..."| E[("Your backend")]
pnpm add @intentform/core @intentform/react @intentform/provider-openai zodimport { createIntentForm } from '@intentform/core'import { IntentForm } from '@intentform/react'import { openaiProvider } from '@intentform/provider-openai'import { accidentReportModel } from './models/accident-report'
const engine = createIntentForm({ provider: openaiProvider({ apiKey: process.env.OPENAI_API_KEY! }), models: [accidentReportModel],})
export default function App() { return <IntentForm engine={engine} />}4 AI providers
OpenAI, Anthropic, Google Gemini, and Ollama out of the box. Swap or combine with confidence tiers.
2 form adapters
TanStack Form and React Hook Form. Bring your existing form stack — IntentForm adds intent resolution on top.
Server-side patterns
API key never in the browser. Node.js handler or Docker sidecar — your choice, both covered.
Debug panel
<IntentFormDebugPanel /> surfaces model selection, field scores, confidence, and provider usage at a glance.