Welcome to ConvertAll — START HERE #1
alirisner14
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Welcome to ConvertAll — start here
Hi, and thanks for stopping by.
ConvertAll batch-converts images (including vector art), audio, and video from one window: convert a file to a specific format, squeeze a file down without visible or audible loss, trace artwork into vectors, or split a layered SVG into its parts.
It runs entirely on your machine. Nothing is uploaded, nothing phones home, and no original file is ever overwritten. There are no AI models anywhere in the pipeline either — every tool is deterministic, doing the same thing to the same file every time. The tracing is Potrace, not a generative model.
v0.2.0 is out, and if you just want to use the thing, grab
ConvertAll-windows.zipfrom Releases — it runs without Python or FFmpeg installed.pip install -r requirements.txtworks too if you'd rather run from source.The four tools
Conversion | You need a specific file type. (Examples: PNG → WebP, HEIC → PNG/JPG, PNG/JPG → ICO, WAV → MP4 or FLAC.)
Compression | You want the file smaller and don't care what format it ends up in.
Tracing (Raster to Vector) | You want artwork as scalable curves instead of pixels.
Split SVG Layers | You want one layered SVG broken into standalone files.
Blank issues are switched off deliberately. The templates aren't bureaucracy — they ask for the handful of things that decide whether a bug takes ten minutes or a week.
Bug reports: the one thing that matters most
Describe the input file. Everything else I can usually work around; without it I'm guessing.
Not "HEIC doesn't work" but "HEIC straight off an iPhone 15, 4032×3024, shot in portrait mode." Not "my SVG didn't split" but "SVG exported from Figma, 12 layers, some of them nested groups." Attach the file if you can share it. If you can't, a description of how it was produced is the next best thing.
The template also asks for three things you can grab in seconds:
python -m convertall --version.What's worth adding, per tool
A note on video
Compression lets you pick H.264, H.265 or AV1. On screen-recording content AV1 saves roughly twice what H.265 does, at around four times the encode time — a one-hour recording is about two hours of encoding. Worth it for archiving, less so if you're waiting on it.
Whichever you choose, output goes to a separate folder, so you need room for both copies while a job runs. Check the results before deleting any originals.
Pull requests
There's a template with a checklist. The short version:
CI runs exactly those three across Windows, macOS and Linux on Python 3.10–3.13. If you touched the GUI, also run
python tools/screenshot.py— it builds every panel in both palettes and at different text scales, and fails on any exception, so it doubles as a smoke test.python tools/build_exe.py --clean --smokebuilds and launches the Windows executable if you're changing packaging.Read CONTRIBUTING.md before you start. The one architectural rule worth knowing up front:
convertall/core/never imports the GUI. Every pipeline is a plain function that takes paths and returns aTaskResult, testable without a display. If you find yourself reaching fortkinterinsidecore/, the logic belongs in the panel instead.Security
Please don't open a public issue for a vulnerability. Use the private reporting form on the Security tab. SECURITY.md has the threat model — the realistic risk here is malicious input files, since the app parses untrusted images, audio, video and XML.
That's everything. Questions, half-formed ideas and "is this supposed to do that?" are all welcome here — no template required in Discussions.
Welcome to ConvertAll — start here Hi, and thanks for stopping by.ConvertAll batch-converts images (including vector art), audio, and video from one window: convert a file to a specific format, squeeze a file down without visible or audible loss, trace artwork into vectors, or split a layered SVG into its parts.
It runs entirely on your machine. Nothing is uploaded, nothing phones home, and no original file is ever overwritten. There are no AI models anywhere in the pipeline either — every tool is deterministic, doing the same thing to the same file every time. The tracing is Potrace, not a generative model.
v0.2.0 is out, and if you just want to use the thing, grab ConvertAll-windows.zip from Releases — it runs without Python or FFmpeg installed. pip install -r requirements.txt works too if you'd rather run from source.
The four tools
Tool Reach for it when
Conversion You need a specific file type. PNG → WebP, HEIC → PNG/JPG, PNG/JPG → ICO, WAV → MP4 or FLAC.
Compression You want the file smaller and don't care what format it ends up in.
Tracing (Raster to Vector) You want artwork as scalable curves instead of pixels.
Split SVG Layers You want one layered SVG broken into standalone files.
Two things that trip people up, both working as intended:
The Conversion dropdown only offers formats every selected file can become. Load a PNG and a WAV together and it empties out, because they share no target. That's deliberate — the alternative is accepting the run and silently skipping half your files.
Compression can hand a file back untouched. Already-lossy audio is copied rather than re-encoded, and any file that would come out larger keeps its original bytes. The log says which happened and why.
Where to post what
You want to… Go here
Ask a question, or float an idea before it's a formal request Discussions — you're in the right place
Report something broken Issues → Bug report
Suggest a conversion, option or improvement Issues → Feature request
Report something hard to see, read or reach by keyboard Issues → Accessibility issue
Report a security vulnerability Private advisory (Security tab → Report a vulnerability) — not a public issue
Contribute code Pull request
Blank issues are switched off deliberately. The templates aren't bureaucracy — they ask for the handful of things that decide whether a bug takes ten minutes or a week.
Bug reports: the one thing that matters most
Describe the input file. Everything else I can usually work around; without it I'm guessing.
Not "HEIC doesn't work" but "HEIC straight off an iPhone 15, 4032×3024, shot in portrait mode." Not "my SVG didn't split" but "SVG exported from Figma, 12 layers, some of them nested groups." Attach the file if you can share it. If you can't, a description of how it was produced is the next best thing.
The template also asks for three things you can grab in seconds:
Which tool — the four behave very differently.
The activity log — the panel across the bottom of the window. Select the lines and copy them; it records the exact settings used and the per-file result, including the before → after sizes.
Version, OS and Python — version is at the bottom of the sidebar, or run python -m convertall --version.
What's worth adding, per tool
Conversion — the source format, the target you picked, and whether the dropdown offered what you expected. If it looked empty, say what mix of files was loaded.
Conversion, audio → MP4 — the audio format and rough length, whether you used a background image and its dimensions, and the resolution you chose.
Compression — the file types in the batch, the quality preset, the video codec if any video was involved, and the before → after sizes from the log.
Tracing (Raster to Vector) — which engine (colour or black & white), the detail level, and for black & white the threshold and whether Invert was on. Say what the artwork is: a flat logo, line art and a photograph fail in completely different ways.
Split SVG Layers — which program exported the SVG. This is the single most useful detail for this tool; Inkscape, Illustrator and Figma structure their layers completely differently. Also mention the split mode you used.
A note on video
Compression lets you pick H.264, H.265 or AV1. On screen-recording content AV1 saves roughly twice what H.265 does, at around four times the encode time — a one-hour recording is about two hours of encoding. Worth it for archiving, less so if you're waiting on it.
Whichever you choose, output goes to a separate folder, so you need room for both copies while a job runs. Check the results before deleting any originals.
Pull requests
There's a template with a checklist. The short version:
ruff check . # must pass
ruff format . # must leave no changes
pytest # must pass
CI runs exactly those three across Windows, macOS and Linux on Python 3.10–3.13. If you touched the GUI, also run python tools/screenshot.py — it builds every panel in both palettes and at different text scales, and fails on any exception, so it doubles as a smoke test. python tools/build_exe.py --clean --smoke builds and launches the Windows executable if you're changing packaging.
Read CONTRIBUTING.md before you start. The one architectural rule worth knowing up front: convertall/core/ never imports the GUI. Every pipeline is a plain function that takes paths and returns a TaskResult, testable without a display. If you find yourself reaching for tkinter inside core/, the logic belongs in the panel instead.
Security
Please don't open a public issue for a vulnerability. Use the private reporting form on the Security tab. SECURITY.md has the threat model — the realistic risk here is malicious input files, since the app parses untrusted images, audio, video and XML.
That's everything. Questions, half-formed ideas and "is this supposed to do that?" are all welcome here — no template required in Discussions.
All reactions