You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
description: "Build and test your frames with confidence"
4
+
---
5
+
6
+
# Local Debugging of your Frames
7
+
8
+

9
+
10
+
The frames.js debugger comes inside the frames.js starter repos and will run automatically when you run your code.
11
+
By default it runs on port 3010, at [http://localhost:3010](http://localhost:3010/?url=http%3A%2F%2Flocalhost%3A3000%2F).
12
+
13
+
Features
14
+
- fully interactive frames
15
+
- connect wallet + transactions
16
+
- performance analysis
17
+
- frame validations
18
+
- jump between Frames
19
+
- inspect state
20
+
- mock hub states
21
+
- impersonate a user, or login with a real farcaster signer
22
+
23
+
## Local Debugger CLI
24
+
25
+
You can install and run the frames.js debugger independently of your frame, including for frames.js that don't use frames.js via
26
+
27
+
`npm install -g @frames.js/debugger`
28
+
29
+
`frames`
30
+
31
+
## Hosted Debugger
32
+
33
+
We've provided a [hosted version](https://debugger.framesjs.org/?url=https%3A%2F%2Fframesjs.org) of the debugger for convenience. Note it won't work with localhost urls without a service like `ngrok`, which is why we recommend running a local debugger.
If needed, you can implement `FrameUI` yourself, using the [FrameUI](https://github.com/framesjs/frames.js/blob/main/packages/frames.js/src/render/frame-ui.tsx) component as a template
You can define a dynamic image by passing in a `JSX` element to `image` property. This uses [@vercel/og](https://vercel.com/docs/functions/og-image-generation) library under the hood, which includes a syntax for writing [tailwind CSS](https://tailwindcss.com/). You can pass in options for `@vercel/og` via the `imageOptions` property.
23
+
There are certain constraints around dynamic images that you should be aware of - firstly, they can be slow, affecting the UX.
24
+
Secondly, dynamic images have a size limit of 256kB, which can easily be crossed if you use an existing image inside of the dynamic image.
Frames.js uses middleware to extend the functionality of Frames, bringing in data from API providers, verifying frame actions and adding Open Frames support.
7
+
8
+
You can use middleware for all your frames by passing in middleware via `createFrames({ middleware: [...] })`.
0 commit comments