LocalFileLab is a browser-based toolkit for converting, compressing, inspecting and editing files. Selected file contents stay in the active browser tab and are processed with browser APIs, WebCodecs and WebAssembly-based engines instead of being uploaded to an application conversion server.
The interface supports individual files and batches, specialist studios, format-specific settings, previews, progress reporting, cancellation, light and dark themes, and automatic language selection.
- File conversion: individual targets and settings per file, or one shared target for a category-based batch.
- File compression: single-file and same-format batch workflows for images, audio, video, PDFs and archives.
- PDF Studio: merge, mix, split, extract, remove, rotate, reorder and crop pages; add blank pages, images, page numbers, headers, footers, watermarks, metadata, attachments and forms.
- OCR: multiple recognition languages, page ranges, layout modes and TXT, DOCX, searchable PDF, HTML, hOCR, Markdown, JSON, CSV or TSV output.
- Audio Studio: multitrack timeline, clip library, trimming, positioning, gain, pan, fades, filters and effects, analysis, mixing, rendering and
.lflstudioproject files with embedded source media. - Specialist tools: inspect files and metadata, rename batches, edit colors and palettes, compare or merge tables, inspect fonts and pack ORM/ARM textures.
- Media controls: container-aware video and audio codec selection, resizing, frame rate, quality, bitrate, sample rate and channel settings.
- Local previews: image and PDF previews, playable audio/video and an audio waveform visualizer.
- Format directory: searchable format cards and localized technical guides for supported file and project formats.
- Privacy controls: optional metadata preservation or removal, no account requirement, no application database and no application-server upload path for file contents.
- Broad localization: German, English, Indonesian, Spanish, French, Italian, Dutch, Polish, Portuguese, Vietnamese, Turkish, Russian, Arabic, Thai, Japanese, Simplified Chinese and Korean.
- Responsive UI: light and dark themes, keyboard-accessible controls and layouts for desktop and mobile browsers.
Support depends on the file contents, browser, operating system and codecs compiled into the local engines. LocalFileLab keeps containers and codecs separate: for example, MP4 is an output format while H.264 or H.265 is selected in its settings.
| Category | Important inputs and outputs |
|---|---|
| Images | PNG, JPEG, WebP, AVIF, JPEG XL, APNG, GIF, HEIC/HEIF, TIFF, PSD, SVG, BMP, ICO, PPM, PGM, PBM, PNM, TGA, QOI and PDF |
| Documents and e-books | PDF, DOCX, ODT, PPTX, RTF, TXT, Markdown, HTML/XHTML, EPUB and FB2 |
| Spreadsheets and data | XLSX, XLSM, XLSB, XLS, ODS, FODS, DBF, DIF, SYLK, PRN, Apple Numbers, CSV, TSV, JSON, JSONL/NDJSON, XML, YAML, TOML, INI, Properties, ENV and CONF |
| Audio | MP3, AAC, M4A, OGG, Opus, FLAC, WAV, AIFF, WMA, AMR, AC-3, E-AC-3, WavPack, TTA, AU, CAF, W64 and MKA |
| Video | MP4, WebM, MOV, MKV, AVI, 3GP, 3G2, M4V, MPEG/MPG, MPEG-TS, M2TS, OGV, FLV, WMV/ASF and MXF |
| Video codecs | H.264/AVC, H.265/HEVC, MPEG-4 Part 2, MPEG-2, VP8, VP9, Theora, FLV1, WMV2, ProRes and DNxHD/DNxHR |
| Archives | ZIP, 7Z, TAR, GZIP/TGZ, BZIP2/TBZ2, XZ/TXZ, Zstandard/TZST and WIM; plus input support for RAR, CAB, ISO, DMG, CPIO, DEB, RPM, XAR, ARJ, LZH/LHA and LZMA |
| Fonts | TTF, OTF, WOFF, WOFF2, EOT and SVG glyph previews |
| 3D triangle meshes | OBJ, STL, ASCII PLY, embedded glTF 2.0, GLB 2.0, OFF, 3MF, COLLADA/DAE and X3D |
| LocalFileLab projects | LFLSTUDIO projects created by Audio Studio |
Some formats are intentionally input-only. Complex document layouts can change, and 3D conversion preserves basic triangle geometry rather than materials, textures, rigging or animation.
.lflstudio is a ZIP-based LocalFileLab Studio project container. The current Audio Studio stores a project.json manifest plus the source audio files used by the timeline. The manifest includes a version and studioType discriminator so audio projects can be distinguished from future video or image studio projects. It is an editable project format, not a finished playback format; render the mix to WAV, MP3 or another audio output for regular media players.
git clone https://github.com/WiSie98/LocalFileLab.git
cd LocalFileLabDownload the current main branch as a ZIP archive, extract it and open a terminal in the extracted directory.
- Node.js 22.13.0 or newer
- npm
- A current browser for local development
npm install
npm run devOpen the local URL printed by Vinext. The development and production preparation scripts copy the pinned FFmpeg core into the public assets automatically.
Copy .env.example to .env.local and adjust only the values you need:
cp .env.example .env.localThe public site URL, repository link, search verification and Google AdSense slots are optional build-time settings. They are not credentials for accessing selected files.
npm run lint
npm testnpm test creates a production build and runs conversion, archive, download, cancellation, format-guide, metadata and rendered-output tests. To create only the production bundle, run:
npm run buildLocalFileLab is prepared for Cloudflare Workers. The production build creates the deployable Wrangler configuration at dist/server/wrangler.json.
npm install
npm run build
npx wrangler login
npm run deployConnect the repository in Workers & Pages and use:
| Setting | Value |
|---|---|
| Root directory | / |
| Build command | npm run build |
| Deploy command | npm run deploy |
| Production branch | main |
The current application includes sizeable local WebAssembly engines. Check the generated upload size against the limits of the selected Cloudflare Workers plan before deploying. See CLOUDFLARE_DEPLOYMENT.md for the complete setup, environment variables, custom-domain steps, AdSense verification and size notes.
The React/Vinext UI coordinates specialized local engines:
- Canvas and dedicated codecs for raster images
- FFmpeg/WebAssembly with an optional WebCodecs path using browser-selected acceleration
- SheetJS for spreadsheets and structured tabular formats
- PDF.js, PDF-Lib and jsPDF for PDF workflows
- Tesseract.js for OCR
- 7z-WASM, fflate and Zstandard-WASM for archives
- Browser workers and
AbortSignal-based operation control for long-running tasks - Static localized format-guide assets generated at build time
Files are read through browser File objects and results are exposed as temporary object URLs or downloads. Language and theme preferences may be stored locally. Hosting, optional ads, OCR language data and fallback libraries can make network requests, but selected file contents are not sent with those requests.
app/ React UI, conversion engines, workers and localization
content/ German and English source articles for format guides
public/ Public verification files and prepared browser assets
scripts/ Build preparation and localization utilities
tests/ Engine, workflow and rendered-output tests
worker/ Cloudflare worker integration
Bug reports and focused improvements are welcome through GitHub Issues. Never attach confidential source files to a public issue; describe the format, browser and error message or provide a minimal non-sensitive reproduction.
The project is source-available under the PolyForm Noncommercial License 1.0.0. Private and other noncommercial use is allowed under its terms. Commercial use requires separate written permission from the copyright holder. Third-party packages, codecs and assets retain their respective licenses.