Runs entirely on your device — no upload, no account, no server17 court systems tracked · verified Jul 2026
ShrinkWrit
← All courts

Compress a file to a custom size limit

Enter any size limit in megabytes and compress a file to fit it, entirely in your browser. Use this when your court is not in the directory, or when the figure you were given differs from the one published.

Enter the limit your court gave you in megabytes. Everything else works the same — the file is read and compressed on your device, and your original is never modified.

Compress a file

Drop the rejected file here

PDF, JPG, PNG, or WebP. It is read on this device only — you can disconnect from the internet first and it will still work.

Finding your court's actual limit

Federal district courts set their limits individually — there is no national CM/ECF figure, and the published spread runs from around 10 MB to 100 MB. Inside CM/ECF, the Court Information link on the startup page reports the Maximum PDF File Size the system is enforcing at that moment, which is the most reliable source there is.

State systems vary more. Many run on Tyler's Odyssey platform, which enforces two limits at once: one on each document and a lower one on the envelope, meaning everything submitted together. Where two limits apply, both have to be satisfied.

If a rejection message quoted a figure, use that. It came from the system that refused the file.

Choosing a target

Aim a little under the ceiling rather than exactly at it. Megabytes are counted two different ways — some systems mean 1,000,000 bytes and others 1,048,576 — and a file that sits a hair under one interpretation can be over the other. ShrinkWrit counts in decimal megabytes, the smaller of the two, so its targets are conservative.

Compression also cannot make guarantees about a specific figure in advance. The tool works toward the target in steps and stops at the first setting that fits, then tells you what it did and what it cost.

What compresses, and by how much

Scanned documents and photographs compress dramatically — commonly 80–90% — because they carry far more resolution than a page ever displays. PDFs produced natively from a word processor are already compact and may barely change, because they store text as text rather than as an image of a page.

Video is the hardest case. A long recording may not reach a small target at any acceptable quality, and browser-based video encoding is slow. The tool reports honestly when it cannot get there rather than handing back a file that will be refused.

If the file is an exhibit

Lossy compression alters a file. Every byte of the output differs from the input, even where the page looks identical on screen, and that can matter if the document's authenticity is ever contested. ShrinkWrit shows the SHA-256 hash of the file you started with and the file it produced, so the change is documented rather than invisible.

The lossless mode strips metadata and repacks the file without touching a single pixel or sample. It saves less, and on a heavily scanned document it may not reach the limit at all — but when it does, the image data is bit-for-bit what it was. Your original is never modified either way; the output is always a new file.

Common questions

How do I find my court's file size limit?
For federal courts, the Court Information link inside CM/ECF reports the live figure. For state systems, the court's own e-filing page or its electronic filing service provider publishes it. A rejection message that quoted a number is also reliable — it came from the system itself.
Is a megabyte 1,000,000 or 1,048,576 bytes?
Both conventions are in use and courts rarely say which they mean. ShrinkWrit uses the smaller one, so a file it reports as under your target is under it either way.
Can this compress a file to any size I ask for?
Within limits. Scanned material usually reaches aggressive targets; text-native PDFs have little to give up; long video often cannot get there at usable quality. When the target cannot be met the tool says so rather than pretending otherwise, and it never returns a file larger than the one you started with.
Does my file get uploaded?
No. Everything runs in your browser through WebAssembly. There is no server, no account, and no analytics that can see a file name or its contents. You can disconnect from the internet after the page loads and compression still works.