In the vast landscape of digital content, the need for speed, reliability, and simplicity in downloading files has never been more critical. As professionals and casual users alike grapple with the challenges of efficient file acquisition, I set out to create a tool that addresses these pain points directly. The result is gotake, a CLI-based file downloader designed from the ground up to transform the way you download files from the internet, available on Mac, Linux, and Windows platforms.

The genesis of gotake

The inception of gotake was driven by my own frustrations with existing downloading tools. While many solutions existed, I found them lacking in various aspects — some were not fast enough, others were complicated to use, and reliability was often a hit-or-miss. This led me to develop gotake, a tool that embodies the principles of speed, reliability, and ease of use.

Utilizing my programming expertise and understanding of network protocols, I crafted the tool to overcome these challenges. By employing both standard HTTP requests and range requests, gotake can split files into smaller chunks for concurrent downloading. This method not only accelerates the download process but also enhances its stability across different network conditions.

Easy installation

Aware of the hurdles that users face when installing new software, I ensured that installation process is as straightforward as it gets. With a focus on accessibility, I’ve provided simple one-liner commands for both macOS and Linux users, allowing for a hassle-free setup that lets users dive straight into downloading files without unnecessary complications.

macOS and Linux installation:

  • For macOS:

# How to install on Mac
sudo curl -L "" -o /usr/local/bin/gotake && sudo chmod +x /usr/local/bin/gotake
  • For Linux:

# How to install on Linux
sudo curl -L "" -o /usr/local/bin/gotake && sudo chmod +x /usr/local/bin/gotake

Simplifying the download process

One of my primary goals with gotake is to simplify the downloading process without sacrificing functionality. Whether you need a quick download, a detailed summary post-download, verbose insights during the download, or customizable connection options, the lib caters to all these requirements with an intuitive set of commands.

how it works

How gotake works

Improving download experience

My approach with gotake hinges on not just facilitating downloads but enhancing the entire experience. Through customizable flags, users gain control over their download settings, from automatic connection adjustments based on file size to the option for verbose output for detailed insights.

Additional geatures

The lib offers a variety of customizable flags to cater to diverse downloading needs:

  • -a, –auto (bool): Automatically chooses the number of connections based on file size.
  • -c, –connections (int): Specifies the number of connections to use.
  • -f, –filename (string): Allows you to rename the downloaded file.
  • -i, –info (bool): Prints a download summary upon completion.
  • -s, –standard (bool): Forces standard method of download, not using Range-Request.
  • -v, –verbose (bool): Provides detailed information about the download process.

Quick example

# Quick example to download an image
cd Desktop

# for verbose, use -v
gotake -v

# Result
# INFO: doesn't have protocol, trying with http:// prefix
# INFO: Starting downloading (ranges method):
# INFO: Downloading in a temp dir /Users/sim/Desktop/jax-in-machine-learning.jpg_GBcx_tmp
# INFO: Auto connections set to: 1
# DOWNLOADED: chunk of jax-in-machine-learning.jpg with range bytes=0-273949
# INFO: Started to combine chunks into the result file
# INFO: Temp dir removed
# SUCCESS: Saved to /Users/sim/Desktop/jax-in-machine-learning.jpg in 257.111458ms

An open invitation

As the creator of the tool, I firmly believe in the power of open-source collaboration. gotake is not just a tool but a project that thrives on community input, bug fixes, and feature suggestions. It’s an invitation to developers and users alike to join in refining and evolving the project to meet the ever-changing demands of digital content consumption.


gotakee represents my micro-goal to solving the real-world problem of downloading files in a fast, reliable, and straightforward manner. By marrying simplicity with advanced technology, the project stands as a testament to innovation that caters to the needs of today’s digital landscape. Whether for work or leisure, the lib is here to ensure that your downloading experience is nothing short of exceptional.

Categorized in:

MLOps, Models deployment, Programming,

Last Update: 12/03/2024