Goals


Proposal


Allow frames to have a single text field to collect freeform input from the user. Developers can use this in a number of ways to build interesting apps, like something that interacts with an LLM.

A text input can be added to a frame with the following meta-tags:

| fc:frame:input:text | string | Adding this property enables the text field. The content is a 32-byte label that is shown to the user (e.g. Enter a message).

Apps must render the text input field above the buttons for a consistent user experience. When a button is clicked, apps capture the “input string” which an be up to 256 bytes in length.

Apps must include the input string in the FrameAction and Frame Signature Packet messages. | | --- | --- | --- |

<aside> ⚠️ Always aggressively sanitize text inputs, there are many unexpected ways to break out of sandboxes by passing user inputs directly to other APIs.

</aside>

Here’s a simple example showing how to create a text input with a label:


<meta property="fc:frame" content="vNext" />
<meta property="fc:frame:image" content="http://...image-question.png" />
<meta property="fc:frame:button:1" content="Click" />
<meta property="fc:frame:button:2" content="Clack" />
<meta property="fc:frame:button:3" content="Click" />
<meta property="fc:frame:button:4" content="Clack" />

// Add input field with 

<meta property="fc:frame:input:text" content="Enter a message..." />