Attaching Files & Images to Prompts
You can attach things to a prompt. Screenshots, wireframes, mockups, sketches, photos, audio, video, fonts, anything visual. The agent sees what you attached and uses it.
This is one of the most powerful features in Appsanic, and most users never discover it. It's worth two minutes of your time.
Two kinds of attachments
There's a small + button in the bottom-left of the composer (the chat input). Click it. A menu appears with two options:
1. Attach an image. For _this single message_
Use this when you want to show the agent something for a specific request and then forget about it.
- A screenshot of an app you like the look of: _"Make our home screen feel like this."_
- A wireframe you sketched on paper, photographed with your phone: _"Build this screen."_
- A screenshot of a bug on your phone: _"This is broken. Fix it."_
- A mockup someone sent you: _"Build this."_
The image rides along with the message. The agent reads it, uses it, and forgets it. The image doesn't get saved anywhere permanent in your project.
2. Use an asset. For _files your apps actually need_
Use this when the file is part of your app. Your logo. A custom font. A background image. A welcome video.
Assets are uploaded once into your asset library and stay there. The library is shared across every project in your account - upload your logo while building one app and it's right there when you build the next. The agent can reference assets in code, embed them in the build, and use them across many prompts. They're not just message context. They become part of your app.
When you tap Use an asset, the asset picker opens. From there you can:
- Browse every asset you've uploaded.
- Upload new ones (drag-and-drop or click to pick).
- Select one or more to attach to this message.
- Delete assets you don't need anymore.
The big picture
A simple way to think about it:
| If you want to... | Use |
|---|---|
| Show the agent something for inspiration or context | Attach an image |
| Give the agent a screenshot to debug | Attach an image |
| Add your logo to the app | Asset |
| Use a custom font in the app | Asset |
| Add a video or audio that comes with the app | Asset |
| Share a sketch of a new screen | Attach an image |
Rule of thumb: if the file should _appear in the built app_, it's an asset. If you're just _showing_ the agent something to talk about, it's an image attachment.
What you can upload
Images (attach to message)
Common formats: PNG, JPEG, GIF, WebP, HEIC. Any image your phone or computer takes is fine. Up to 25 MB per file.
Assets
The agent supports these in your asset library:
- Images: PNG, JPEG, SVG, WebP, GIF
- Audio: MP3, WAV, M4A, OGG
- Video: MP4, MOV, WebM
- Fonts: TTF, OTF, WOFF, WOFF2
Up to 25 MB per asset.
Using an asset in a prompt
Once you've added an asset, you can reference it by name in your message. When you pick one from the asset picker, the composer inserts a chip showing the asset's name:
_"Use [welcome.mp4] as the splash video on first launch."_
_"Use [logo-dark.svg] in the header on every screen. Keep the existing [logo-light.svg] for splash."_
_"Use [Inter-Variable.ttf] as the body font app-wide."_
The chip tells the agent precisely which file you meant. No ambiguity, even if you have ten similar-named files.
What the agent does with images
Most modern AI models can "see" images. Appsanic uses one of those for image-bearing messages.
When you attach an image, the agent:
- Reads it like a human would.
- Notices layout, colors, typography, mood.
- Picks up on UI patterns ("oh, this is a card-based feed with a floating compose button").
- Uses it as a reference for whatever you asked for.
Things it does well with images:
- _"Build this screen"_. Works if the screenshot is reasonably clear.
- _"Match this style"_. Picks up colors, spacing, density.
- _"Why is this broken?"_. Debugs from a screenshot of an error.
- _"Identify the parts of this UI and list them"_. Descriptive analysis.
Things it struggles with:
- Extremely complex screenshots with tiny text.
- Hand-drawn sketches with very rough strokes (a clear sketch is fine).
- Photos of paper notes where the lighting is bad.
If the agent seems confused by an image, try a clearer one, or describe in words what you wanted it to notice.
Tips that pay off
- A reference is worth a thousand prompts. "Like Linear's pricing page" is good. A screenshot of Linear's pricing page is better.
- For complex layouts, attach the screenshot AND describe. The image gives the visual; your words clarify "ignore the marketing copy, just match the layout."
- For style only, attach a small image. A 1000×600 screenshot is plenty. The agent doesn't need a 4K render.
- Annotate if it helps. A circle around the part you care about, drawn in any photo app, focuses the agent on the right region.
What the agent doesn't do
- It doesn't memorise your image attachments across messages. If an image was important on Monday, attach it again Wednesday. Image attachments are scoped to the message they ride with.
- It doesn't reverse-engineer perfectly. A screenshot of a complex Airbnb-style search experience won't produce an identical clone. It produces something inspired by what it saw.
- It doesn't pull from URLs you paste. A link to an image isn't an attachment. Upload the image directly via the +.
Assets and the live preview
Once an asset is uploaded, it's available everywhere:
- In code, by file name (
logo-dark.svg). - In the live preview: your app's actual build pulls the asset in.
- In every project: the library is account-wide, so the same logo works in all your apps without re-uploading.
- In exports: when you push to GitHub, the assets land in your repo's
assets/folder.
The asset picker shows the storage used vs your account's quota. Free / Pro / Business plans get progressively more - see Plans and Billing for the full storage ladder.
The library is managed by account admins. Account owners and admins can upload, rename, move, and delete assets; members and viewers get a read-only view - they can browse the library, attach any asset to a prompt, and download files, but not change them.
Things that go wrong
- "File too large." 25 MB cap per asset. Compress images, or use a video service for very long videos instead of bundling them.
- "Unsupported format." Only the formats listed above. PSD, RAW, ZIP, etc. are not supported.
- The image attachment vanishes after one message. That's expected for "Attach an image." If you want it persistent, upload it to your asset library instead.
Under the hood (for engineers)
- Image attachments ride along with the message as base64 payloads up to a per-message cap; the agent receives them as multimodal content blocks.
- Assets are stored in Supabase Storage keyed by account, with access scoped to that account's logins. Metadata (filename, MIME, size, mime-family) lives in an account-keyed table, deduplicated by content hash - uploading the same file twice reuses one copy.
- When a prompt references an asset (via the chip in the composer), the runtime resolves the chip to its asset ID and includes both the user-visible filename AND the canonical asset URL in the agent's context.
Next
Read Writing Prompts. Attachments make prompts more powerful, but a well-written prompt still matters. Or read Brand Kits for the structured way to give the agent your logo, fonts, and visual identity once.
