Supported File Types¶
Whittl can work with a handful of file types directly. Everything else is either supported as a passthrough asset (Whittl copies and preserves, never modifies) or unsupported (you'll need an external tool).
Python source (.py)¶
The primary file type. Whittl's code editor, auto-fix, autocomplete, and error detection all target Python.
- Generated by: all AI backends, all generation flows
- Edited in: the built-in code editor, or any external editor on disk
- Executed by: the Test Run button, F5, or manually via the terminal panel
Jupyter notebooks (.ipynb)¶
Limited support as of v2.3. Whittl can read existing notebooks and extract code cells, but can't generate or author them natively. If you want a notebook-based workflow, generate .py files in Whittl and convert via jupytext or similar externally.
Text and markdown¶
| Extension | Treatment |
|---|---|
.md |
Renders with syntax highlighting in the editor. README files commonly live alongside projects. |
.txt |
Treated as plain text. Editable. |
.rst |
Treated as plain text. Renders without formatting. |
Configuration and data¶
Whittl treats these as editable text files with syntax highlighting:
| Extension | Treatment |
|---|---|
.json |
Syntax-highlighted JSON. Whittl validates on save. |
.toml |
Syntax-highlighted TOML (for pyproject.toml, config.toml, etc.) |
.yaml / .yml |
Syntax-highlighted YAML |
.csv |
Treated as plain text (no spreadsheet view — use an external tool if that's what you need) |
.ini / .cfg |
Syntax-highlighted with INI rules |
.env |
Syntax-highlighted. Shown as plaintext — don't commit API keys to these. |
The AI can generate, modify, and reason about these file types as part of multi-file projects.
Images¶
| Extension | Treatment |
|---|---|
.png |
Preview in Assets panel. AI can include as vision input. |
.jpg / .jpeg |
Preview + vision input. |
.svg |
Preview + treated as text (editable). |
.gif |
Preview (first frame). |
.webp |
Preview + vision input. |
.bmp, .tiff |
Preview only, no vision input. |
Images dropped in the chat panel are sent to the AI as vision input (for backends that support it — see Choosing a Backend).
Images in the assets/ folder are preserved across generations — the AI can reference them (QPixmap("assets/logo.png")) but won't overwrite them unless you explicitly prompt for it.
Audio¶
| Extension | Treatment |
|---|---|
.mp3 |
Preserved in assets. Referenced by generated code. |
.wav, .ogg, .flac, .m4a |
Same as above. |
Audio files aren't played or transcribed inside Whittl — they're passthrough assets for the app you're building.
Video¶
| Extension | Treatment |
|---|---|
.mp4, .avi, .mov, .webm |
Preserved as passthrough assets. No preview. |
Fonts¶
| Extension | Treatment |
|---|---|
.ttf, .otf, .woff, .woff2 |
Passthrough. Whittl doesn't preview font files; the AI references them by path. |
Archives and binaries¶
| Extension | Treatment |
|---|---|
.whittl-template |
Imports via File → Import Template |
.zip |
Passthrough. Whittl doesn't unzip — use an external tool first. |
.so, .dll, .dylib |
Passthrough only. Whittl can reference compiled libraries if your code imports them but won't generate bindings. |
What Whittl does NOT handle¶
- Spreadsheets (
.xlsx,.ods) — treated as binary passthrough. Use LibreOffice / Excel to edit. - PDFs — not editable, not previewed, not sent to AI as document context. (Some backends support PDFs via their SDKs but Whittl's pipeline doesn't route them.)
- Binary 3D models (
.blend,.fbx,.obj) — passthrough only. - Databases (
.db,.sqlite) — passthrough. The AI can generate code that reads/writes them but Whittl doesn't provide a built-in DB browser. - Git directories (
.git/) — Whittl doesn't integrate with git directly. Use your terminal or a git GUI for version control.
Multi-file generation file naming¶
When the AI generates a multi-file project, file names come from the AI's best judgment. Conventions:
main.pyis always the entry point- UI files go in
ui/orviews/ - Data/model code goes in
core/ormodels/ - Database or persistence code goes in
managers/ordb/ - Assets (images, sounds, fonts) go in
assets/ - Runtime/user data (saved state, user files) goes in
data/
See Multi-file Projects for the full structural conventions.
What's next¶
- Project Folder Structure — where these files live within a project
- Working with Assets — managing image/audio/video files specifically
- Multi-file Projects — how the AI decides which extension to use for a given file