Golang Command Line Tool to Remove Background From Image Using Remove.Bg API & Curl Library Full Project For Beginners



remove.bg CLI




You can download latest stable release (Windows, Mac, and Linux supported)


brew install remove-bg/homebrew-tap/removebg

deb / rpm

Download the .deb or .rpm from the releases page and install with dpkg -i and rpm -i.

For the latest deb package supporting x86-64 you can also run:

curl -LO $(curl https://api.github.com/repos/remove-bg/go/releases/latest | grep -o "https://github.com/remove-bg/go/releases/download/.*linux_amd64.deb")
sudo dpkg -i removebg*.deb


removebg [options] <file>...

API key

To process images you’ll need your remove.bg API key.

To use the API key for all requests you can export the following environment variable in your shell profile (e.g. ~/.bashrc / ~/.zshrc):

export REMOVE_BG_API_KEY=xyz

Alternatively you can specify the API key per command:

removebg --api-key xyz images/image1.jpg

Processing a directory of images

Saving to the same directory (default)

If you want to remove the background from all the PNG and JPG images in a directory, and save the transparent images in the same directory:

removebg images/*.{png,jpg}

Given the following input:

├── dog.jpg
└── cat.png

The result would be:

├── dog.jpg
├── cat.png
├── dog-removebg.png
└── cat-removebg.png

Saving to a different directory (--output-directory)

If you want to remove the background from all the PNG and JPG images in a directory, and save the transparent images in a different directory:

mkdir processed
removebg --output-directory processed originals/*.{png,jpg}

Given the following input:

├── dog.jpg
└── cat.png

The result would be:

├── dog.jpg
└── cat.png

├── dog.png
└── cat.png

CLI options

  • --api-key or REMOVE_BG_API_KEY environment variable (required).
  • --output-directory (optional) – The output directory for processed images.
  • --reprocess-existing – Images which have already been processed are skipped by default to save credits. Specify this flag to force reprocessing.
  • --confirm-batch-over (default 50) – Prompt for confirmation before processing batches over this size. Specify -1 to disable this safeguard.
See also  Shell Script to Calculate Sum of Numbers With User Run Time Input Full Tutorial For Beginners

Image processing options

Please see the API documentation for further details.

  • --size (default auto)
  • --type
  • --channels
  • --bg-color
  • --format (default: png)
  • --extra-api-options for forwarding any unlisted/new options to the API
    • Formatted as a URI encoded string (= between key/value, delimited with &)
    • e.g. --extra-api-options 'crop=true&add_shadow=true'


# Producing a JPG with a grey background at the path: processed/subject.jpg
removebg subject.jpg --format jpg --bg-color 7a7a7a --output-directory processed

# Producing a large transparent PNG image up to 25 megapixels
removebg large.jpg --size full --format png

# Processing a car image with additional API options
removebg car.jpg --type car --extra-api-options 'add_shadow=true&semitransparency=true'



Getting started:

git clone git@github.com:remove-bg/go.git $GOPATH/github.com/remove-bg/go
cd $GOPATH/github.com/remove-bg/go

To build & try out locally:

go build -o removebg main.go
./removebg --help

Leave a Reply