The form framework for coding agents.
Co-located validation, self-structuring data, composability, schema overrides, and FormKit's compact, consistent single-component API make it exceedingly easy for coding agents to reason about complex forms without boilerplate or guesswork.
Supported agents
Trusted by
<FormKit type="form"> <h1>Shipping Information</h1> <FormKit type="text" name="full_name" label="Full Name" prefixIcon="avatar" validation="required" help="Please enter your first and last name" /> {/* 👀 No bindings */} <AddressInputGroup /></FormKit>{
full_name: '',
address: {
street: '',
unit: '',
city: '',
state: '',
zip: '',
}
}
Predictable structure, increased eifficacy.
FormKit automatically structures data across components — at any depth, providing your agent with a stable structure for composition without prop-drilling, event spaghetti, or ad-hoc state stores.
The result is a compact representation of form state your agent will be able to reason about. Generated forms stay structured, editable, and consistent as your product evolves.
Get started<FormKit type="form"> {/* 👀 No bindings, no modeling */} <UserAccount /> <UserNetworks /> <UserPreferences /></FormKit>account: {
name: 'John FormKit',
email: '[email protected]',
bio: 'I love building forms with FormKit!',
proSubscriber: true
},
networks: [
{
name: 'twitter',
username: '@FormKit'
},
{
name: 'github',
username: 'FormKit'
}
],
preferences: [
'marketing',
'updates'
]
{
"recipe_name": "Pumpkin Pie",
"cook_time": "1 hour",
"description": "This is a delicious pumpkin pie recipe that is perfect for the holidays.",
"ingredients": [
{
"name": "Pumpkin Puree",
"quantity": 2,
"unit": "cup"
}
]
}<FormKit type="form" onSubmit={handleSubmit} submitLabel="Save Recipe"> <div className="grid grid-cols-2 gap-4"> <FormKit type="text" name="recipe_name" label="Recipe Name" /> <FormKit type="text" name="cook_time" label="Cook Time" /> <FormKit type="textarea" name="description" label="Description" outerClass="col-span-2 max-w-none" /> </div> <FormKit type="repeater" name="ingredients" label="Ingredients" draggable addLabel="Add Ingredient"> <div className="grid grid-cols-3 gap-4"> <FormKit type="text" name="name" label="Name" /> <FormKit type="number" name="quantity" label="Quantity" /> <FormKit type="dropdown" placeholder="Choose" name="unit" label="Unit" options={units} /> </div> </FormKit></FormKit>One primitive. Infinite flexibility.
All your forms need is the FormKit Node.
It handles validation, submission, and composition out of the box, so agents generate less glue code and more of the business logic you actually need.
Scale form development across your project with a predictable input API that keeps generated code reviewable, reusable, and easy to extend.
Get started“Forms today remain fundamentally unsolved. We need a new low-level primitive to power the next generation of web applications written with AI. The FormKit Node is that primitive.”

After using @FormKit for a few weeks I just can't recommend it enough. Quality + Flexibility + Productivity 🚀
The team from @FormKit are awesome. If you're not working with them, you're doing it wrong.
FormKit is probably the best way to handle forms :)
[...] @FormKit saves us a lot of time
[...] One thing is sure you'll like FormKit. [...]
It's insane how good FormKit is!
Been there done that. Which is why we now use FormKit :)
New to @FormKit yesterday, rolling my own custom color picker for @turnaudio 2 today. The power of good docs.
Ok how come no one told me about Formkit? This has a bunch of the stuff I was looking for
My application has quite a few forms and FormKit saves my butt every time. [...] If I had to write those forms by hand from scratch, I'd consider quitting the job.
FormKit has allowed us to streamline the process of creating complicated forms and reusing these across several projects, saving us tons of development time!
Been doing some great stuff with FormKit on the donation platform I am writing. Great framework!
[...] The @FormKit team doesn't miss!
For the last project which is a form-heavy project, I used @FormKit and I feel mentally healthier!