Local file conversion in the browser
Your files stay here.
SwissKnife converts audio, video and images inside the tab, with no account or conversion server. This documentation covers installation, everyday use, operation and contribution.
Verified sourceproduct and documentation verified on 4 September 2026
Official imageghcr.io/lucas-lepajollec/swissknife:latest, pin the tag in Compose
Public demoThe real product, with files kept inside the tab
Choose your path
Discover SwissKnifeRequirements, GHCR image, local Compose and first launch.Convert filesCanvas images, FFmpeg audio/video, formats and queue behavior.Try the demoScope, noindex, local WASM and differences from Docker.Understand the real limitsWhat is converted, rejected, queued or only decoded.Understand FFmpegSelf-hosted core, SharedArrayBuffer and x264 licensing.Fix a problemPorts, WASM, COOP/COEP and rejected formats.
What this documentation guarantees
- Documented commands and ports come from the inspected SwissKnife checkout.
- Examples contain no private address or secret.
- Differences between the self-hosted product, local development and public demo are explicit.
- Assumptions and future features are never presented as available.
Essential references
| Need | Value or page |
|---|---|
| Development port | 2499 (product Vite and this documentation site both use it locally) |
| Default Docker port | host 2501 on all interfaces, mapped to container port 2501 |
| Persistent data | none |
| Container health check | wget http://127.0.0.1:2501/ inside the container |
| Official image | ghcr.io/lucas-lepajollec/swissknife:latest (pin a version or digest in Compose) |
| Source code | github.com/lucas-lepajollec/SwissKnife |
| Presentation site | swissknife.lucas-homelab.fr |
| Public demo | demo.swissknife.lucas-homelab.fr |
Official documentation
This documentation is published at docs.swissknife.lucas-homelab.fr. You can also visit the SwissKnife presentation site.