Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 8 additions & 5 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
# Filesmith

A desktop **file toolkit**: drop files and run operations — convert, compress, resize,
upscale, remove background, and PDF tools (extract text, PDF→images, compress) — across
images, video, audio, and PDFs, with batch queues, thumbnails, and live progress.
upscale, remove background, PDF tools (extract text, PDF→images, compress) and archive
tools (repack CBZ/CBR/CB7/CBT, extract, archive↔PDF) — across images, video, audio,
PDFs, documents and archives, with batch queues, thumbnails, and live progress.

## What it is

Electron + TypeScript desktop app. Renderer is React + TypeScript + Vite + Tailwind v4.
The heavy lifting is done by external CLI tools (ffmpeg, ImageMagick, mutool, CaesiumCLT,
Real-ESRGAN, rembg); the app orchestrates them. Windows-first, unsigned installer via
7-Zip, Real-ESRGAN, rembg); the app orchestrates them. Writing RAR/CBR is the one
operation that needs a tool we cannot bundle (WinRAR's Rar.exe), so it is detected at
runtime and the target is greyed out when absent. Windows-first, unsigned installer via
GitHub Releases (mirrors the sibling RCMM project's distribution).

Origin: the operations are ported from RCMM's audited `rcmm-convert/compress/upscale/removebg`
Expand All @@ -32,7 +35,7 @@ without design ceremony.
3. **Media + PDF** — video/audio convert & compress (ffmpeg), PDF extract-text / images /
compress (mutool).

Dependencies: bundle the core tools (ffmpeg, ImageMagick, mutool, CaesiumCLT) in
Dependencies: bundle the core tools (ffmpeg, ImageMagick, mutool, CaesiumCLT, 7-Zip) in
`resources/bin` so images/PDF work offline out of the box; fetch the AI tools on demand.

Each phase is its own checkpoint — confirm scope before starting the next.
Expand All @@ -43,7 +46,7 @@ Each phase is its own checkpoint — confirm scope before starting the next.
src/
main/ Node/Electron main process — the engine
index.ts app + window bootstrap
(planned) tools/{convert,compress,resize,upscale,removebg,pdf}.ts — one per operation
tools/{convert,compress,resize,upscale,removebg,pdf,archive}.ts — one per operation
(planned) toolResolver.ts find bundled/PATH binaries; on-demand AI-tool download
(planned) jobQueue.ts batch queue: spawn, stream progress, cancel
(planned) output.ts collision-safe output naming (ported from RCMM Get-UniqueOutPath)
Expand Down
9 changes: 5 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,16 +31,17 @@ A local file toolkit for Windows. Drop files, pick a tool, get results.

## What it is

Filesmith puts the everyday file jobs behind one clean window: convert, compress, resize, and more, across **images, video, audio, PDFs, and documents**. Drop a pile of files, pick a tool, and it runs the batch with thumbnails, live per-file progress, rich previews, and collision-safe output that never overwrites your originals.
Filesmith puts the everyday file jobs behind one clean window: convert, compress, resize, and more, across **images, video, audio, PDFs, documents, and archives**. Drop a pile of files, pick a tool, and it runs the batch with thumbnails, live per-file progress, rich previews, and collision-safe output that never overwrites your originals.

Everything runs **locally on your machine**, and your queue and produced files are **remembered across restarts**, so you can close the app mid-batch and pick up where you left off.

## Tools

- **Images** — convert (PNG / WebP / AVIF / JPG / JXL / TIFF / BMP / GIF / ICO), compress, resize, remove background, upscale (2–4×), and **generate** from a text prompt.
- **Video / Audio** — convert (container / codec) and compress, with live `ffmpeg` progress and a resolution preview.
- **PDF** — extract text, PDF to images, and compress.
- **PDF** — extract text, PDF to images, merge, split, burst, extract images, compress, and pack pages into a comic archive.
- **Documents** — convert office documents to PDF.
- **Archives** — convert between ZIP / RAR / 7z / TAR and the comic formats CBZ / CBR / CB7 / CBT, extract to a folder, and turn a comic archive into a PDF. Writing CBR/RAR needs WinRAR installed (it cannot be bundled); everything else works offline.

Plus batch queues, thumbnails for every kind (images, video frames, audio cover art), a **built-in viewer** for images, video, and audio (with a live circular visualizer), per-file progress with ETA, and cancel.

Expand All @@ -65,7 +66,7 @@ Download **`Filesmith-Setup-x64-<version>.exe`** from the [latest release](https
## Use

1. Open **Filesmith** from the Start menu.
2. Pick a file type in the left rail (Images, Video, Audio, PDF, Documents).
2. Pick a file type in the left rail (Images, Video, Audio, PDF, Documents, Archives).
3. Choose a tool from the top-right (Convert, Compress, Resize, …), set its options.
4. Drop files onto the drop zone (or click **browse**), then run.

Expand All @@ -85,7 +86,7 @@ npm run binaries # populate resources/ with the bundled tools (once, before pa
npm run package # build the Windows installer into dist/
```

Stack: Electron + TypeScript, with a React + Vite + Tailwind renderer. Operations are performed by external tools (ffmpeg, ImageMagick, mutool, Ghostscript, CaesiumCLT, LibreOffice, Real-ESRGAN, rembg, ComfyUI) that the app orchestrates; the core tools are bundled and the AI tools are resolved from your machine or fetched on first use. See `CLAUDE.md` for architecture and scope.
Stack: Electron + TypeScript, with a React + Vite + Tailwind renderer. Operations are performed by external tools (ffmpeg, ImageMagick, mutool, Ghostscript, CaesiumCLT, 7-Zip, LibreOffice, Real-ESRGAN, rembg, ComfyUI) that the app orchestrates; the core tools are bundled and the AI tools are resolved from your machine or fetched on first use. See `CLAUDE.md` for architecture and scope.

## License

Expand Down
Loading
Loading