Your Offline Image Superpower. Resize, convert, and optimize images instantly.
Project description
🪄 Magick: Your Offline Image Superpower
Stop uploading your photos to random websites just to resize them.
Magick is a free, private, and offline tool that lives on your computer. It lets you resize, convert, and optimize images instantly—without ads, without waiting, and without losing quality.
⚡ Quick Start
1. Install (Windows)
Download install_magic.bat from the Releases page, right-click, and Run as Administrator.
(This automatically installs the latest version and keeps it updated.)
2. Python (Universal)
If you have Python installed, just run:
pip install magic-image-cli
(Works on Windows, Mac, and Linux!)
Note: Requires ImageMagick to be installed.
3. Linux / Raspberry Pi
Run this one-liner to install everything:
curl -sL https://raw.githubusercontent.com/absaralam/magic-image-cli/main/install_magic.sh | sudo bash
(Installs ImageMagick, Python deps, and creates the magic command)
4. Developer Setup (Source)
If you downloaded the source code:
Right-click setup_magic.bat and choose Run as Administrator.
Use
Open any terminal and type:
magic photo.jpg 1080p
Boom. Your photo is now 1080 pixels high.
📖 The "How Do I...?" Guide
"I want to resize images for social media"
magic *.jpg 1080p
Result: All JPGs in the folder are resized to 1080p height.
"I want to make a professional Windows Icon"
magic logo.png format ico
Result: Creates a
logo.icowith all the correct sizes (16x16 up to 256x256) embedded.
"I want to convert WebP files to PNG"
magic *.webp format png
Result: Converts all those annoying WebP files into usable PNGs.
"I want to remove hidden data (GPS/Camera) before sharing"
magic photo.jpg --strip
Result: A clean image with no personal metadata attached.
"I want to watermark my photos"
magic *.jpg watermark bottom left
Result: Adds
watermark.png(from current folder) to the bottom-left of every image. Note: You can also usemagic *.jpg --watermark logo.pngfor specific files.
"I want to process an image from my Clipboard"
- Copy an image (Ctrl+C) from a website or screenshot.
🧩 Cheat Sheet
| Feature | Command / Keyword | Example |
|---|---|---|
| Resize | 720p, 1080p, WxH |
magic photo.jpg 1080p |
| Force Resize | stretch, force, ! |
magic photo.jpg 100x100 stretch |
| Smart Crop | crop |
magic photo.jpg 500x500 crop |
| Format | format [png/jpg/ico] |
magic *.webp format png |
| Quality | quality [0-100], high, best |
magic *.jpg quality 80 |
| Privacy | clean, remove metadata |
magic *.jpg clean |
| Watermark | watermark, wm |
magic *.jpg wm bottom right |
| Output Folder | to [folder], to input |
magic *.jpg to input |
| Watch Mode | watch, monitor |
magic watch |
| PDF Merge | pdf, --pdf |
magic *.jpg pdf |
| PDF Batch | format pdf |
magic *.jpg format pdf |
| Clipboard | paste, clipboard |
magic paste |
⚙️ Configuration
Want to set your own defaults? (e.g., always watermark, default quality 90)
-
Generate a config file:
magic --init-configThis creates a
.magicrcfile in your current folder. -
Edit
.magicrc: Open it in any text editor and change the values:{ "output_folder": "processed_images", "default_quality": 90, "watermark": "logo.png" }
Now
magic photo.jpgwill automatically use these settings!
🧠 Smart Config Search
Magick looks for .magicrc in this order:
- Current Folder: Overrides everything (Great for specific projects).
- Tool Folder: Same folder as
magic.exeormagic.py(Great for global defaults).
Tip: Put a .magicrc next to the tool for global settings, and run magic --init-config in specific folders to override them.
🗣️ Natural Language Examples
Magick understands you. Try these:
magic photo.jpg to input(Save to same folder)magic photo.jpg clean(Remove metadata)magic paste 1080p(Paste from clipboard and resize)magic watch format png(Watch folder and convert new files to PNG)magic photo.jpg 100x100 stretch(Force exact size, ignore aspect ratio)
❓ FAQ
Q: Does this upload my photos? A: No. Everything happens 100% offline on your computer. Your photos never leave your drive.
Q: What formats are supported? A: JPG, PNG, WebP, BMP, TIFF, GIF, and ICO.
Made with ❤️ for efficiency.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file magic_image_cli-2.7.tar.gz.
File metadata
- Download URL: magic_image_cli-2.7.tar.gz
- Upload date:
- Size: 15.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7ab8032abdad562c2fd085e84f9b5d0da6eba7a9e20aaadeb7fdfbfa99aa412
|
|
| MD5 |
a815a33ab7fd3a1d92d3f9c3811497cf
|
|
| BLAKE2b-256 |
39e9481da61ea11eed4f175707969e1a9a3f04284c3f493cc62eeae74baa35a4
|
Provenance
The following attestation bundles were made for magic_image_cli-2.7.tar.gz:
Publisher:
release.yml on absaralam/magic-image-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
magic_image_cli-2.7.tar.gz -
Subject digest:
d7ab8032abdad562c2fd085e84f9b5d0da6eba7a9e20aaadeb7fdfbfa99aa412 - Sigstore transparency entry: 729207127
- Sigstore integration time:
-
Permalink:
absaralam/magic-image-cli@c6f47853ba4f96b5cfab27fdeee38b6d2ac87b4f -
Branch / Tag:
refs/heads/main - Owner: https://github.com/absaralam
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c6f47853ba4f96b5cfab27fdeee38b6d2ac87b4f -
Trigger Event:
push
-
Statement type:
File details
Details for the file magic_image_cli-2.7-py3-none-any.whl.
File metadata
- Download URL: magic_image_cli-2.7-py3-none-any.whl
- Upload date:
- Size: 12.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c66362d48f3cdf63b0a0967888347f6a46602aacbe7253ad166d98947a116ac9
|
|
| MD5 |
4896341969c590dfa57bee7bbd1f1836
|
|
| BLAKE2b-256 |
63bcd0a949f7139395a2fdc5e9696c619c0e78ec353091f4f40ba9c4688ca0b9
|
Provenance
The following attestation bundles were made for magic_image_cli-2.7-py3-none-any.whl:
Publisher:
release.yml on absaralam/magic-image-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
magic_image_cli-2.7-py3-none-any.whl -
Subject digest:
c66362d48f3cdf63b0a0967888347f6a46602aacbe7253ad166d98947a116ac9 - Sigstore transparency entry: 729207129
- Sigstore integration time:
-
Permalink:
absaralam/magic-image-cli@c6f47853ba4f96b5cfab27fdeee38b6d2ac87b4f -
Branch / Tag:
refs/heads/main - Owner: https://github.com/absaralam
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c6f47853ba4f96b5cfab27fdeee38b6d2ac87b4f -
Trigger Event:
push
-
Statement type: