dark mode light mode Search Menu


Rainer Stropek on Flickr

The world of open source—that is, where all the code is made publicly, freely, available—software is a funny one. A lot of open source projects are tiny things that no one ever really hears about other than a handful of people who need it. Some of them grow to be giant communities that last for decades and have taken on a life of their own, like the Linux operating system.

But sometimes you have pieces of software that aren’t household names and yet are incredibly important to so many of the things you use every day! In this article, we’re going to talk about one of those: cURL!

cURL—which stands for “client for URLs”—is a tool that does one thing and does it well: it lets you send data to and receive data from other computers across the internet based on their URL. I’m being slightly careful in how I’m saying this because while, yes, that mostly means the web it doesn’t exclusively mean websites. You can actually use cURL with a bunch of different ways to talk to computers across the internet, also called protocols.

cURL is both a program you can use on the command line, as we’ll show some examples of in a bit, but it’s also a library you can use with essentially any programming language to transfer data across the internet.

cURL was originally the work of just a single person—Daniel Stenberg—nearly thirty years ago but now is supported by a team of programmers and is used by, well, almost everyone. Seriously. Loading music to play on your phone with Spotify? cURL! Your Playstation downloading files? cURL! Your phones use cURL. Your tv uses cURL. Your router uses cURL. Steam uses cURL. Cars use cURL. It’s everywhere and it’s just an open source project started by one programmer.
I think that’s actually really cool! You have a piece of software that does its job well and now, over time, a ton of our technology has come to rely on it. Kinda the perfect open source success story!

Now, while talking about all that is fun I’d be remiss if I didn’t show you some fun things you can do with cURL at home. For this part, I’m going to be assuming that you have access to a command line: cURL works on Windows 10, Linux, and Mac OSX, and is generally pre-installed on any of those operating systems.

So from your favored command line try typing the following:

curl cheat.sh

and you should see something like

this is a little command line interface that lets you access a bunch of documentation about learning how to code just using cURL!

For example, you could type something like

curl cheat.sh/python/:learn

and you’ll get a big Python tutorial right in your terminal. You can do it with a bunch of languages including C, Ruby, Haskell, and Lua.

But another really fun thing you can do with cURL is store, share, and retrieve small files with this service: https://0x0.st/

The website version describes how to use it but the fun part is that you can, from the command line, put files on this server and they’ll stay there anywhere from a month to a year depending on how big they are: the smaller the file, the longer it’s allowed to live on the server. So you can’t use this for storing things permanently, but you can use it to do something like share pictures with friends!

Basically, anything that’s a simple (or even not so simple) website you can interact with via cURL.
The real point, though, that I want you to take away from this is that it’s possible, even in your spare time, to write software that does one thing so well that it becomes important to almost everyone on the planet!

Learn More

What is cURL?


Everything Curl


How does Curl Relate to APIs?


Curl Command Exercise


Daniel Stenberg