cvt converts image files and images copied to the clipboard on macOS, Windows, and Linux. It can make a GIF from one image or combine several images into an animation.
npx @lagandevs/cvtnpx downloads the package into its cache and opens the interactive interface. It does not add cvt globally. To run a one-line conversion through npx, put the CLI arguments after the package name:
npx @lagandevs/cvt photo.png -o photo.gifRun cvt with no arguments to open the interactive terminal interface. Use the keyboard or mouse to choose a source and format, enter an output path, then convert without leaving the interface. You can drag a file from Finder into the Files field.
The source panel inspects the selected file or clipboard before conversion. It shows a terminal thumbnail, dimensions, input format, file size, frame count, animation duration, and transparency.
After each conversion, cvt puts the converted file on the desktop clipboard. Paste it into Finder, Explorer, your Linux file manager, or another app. Pass --no-copy when using the one-line command if you only want the file saved to disk.
# Image to GIF
cvt photo.png -o photo.gif
# Several images to an animated GIF
cvt frame-1.png frame-2.png frame-3.png -o animation.gif --delay 12
# Copy an image, then read it straight from the clipboard
cvt --paste -o copied-image.gif
# PNG, JPEG, WebP, HEIC, TIFF, and BMP conversions
cvt photo.heic -o photo.jpg --quality 88
cvt photo.png -o photo.webp --resize '1200x1200>'Run cvt --help for every option. If you omit the input file, cvt reads the clipboard automatically. If you omit the output, it creates a GIF beside the source file, or clipboard.gif in the current directory.
pnpm install
pnpm check
pnpm build
pnpm install --global .Add an npm automation or granular access token to the GitHub repository as an Actions secret named NPM_TOKEN. The token needs permission to publish @lagandevs/cvt.
Then open Actions → Publish npm package → Run workflow, select the repository's default branch, and enter an exact new version such as 0.2.0. The workflow installs with the frozen lockfile, builds and tests the package, then publishes it to npm with provenance. You can publish under the latest, next, or beta tag.
- Node.js 20 or newer
- Linux clipboard access:
wl-clipboardon Wayland orxclipon X11
cvt includes ImageMagick through the @imagemagick/magick-wasm WebAssembly build. Users do not need to install ImageMagick. If a system ImageMagick binary exists, cvt can use it as a fallback for HEIC encoding, which the smaller WebAssembly build omits.
Use Windows Terminal, iTerm2, Terminal.app, or a modern Linux terminal for mouse support in the interactive interface.