The service is now invite-only. Please send an email at if you'd like to get access to the service.

Upload files from your terminal

$ curl -u user:pass -T path/to/file

Tired of having to open a web browser to upload some files and make them available to people on the Web? Don’t want to remember a complicated API to do it on the command line? is designed to be the simplest way to upload a file from the command line.

If your system does not have cURL, go install it right now.

Why ?

Every web site that allows you to upload files either requires you to open a web browser, and/or provides an API that’s just too complicated to be usable from the command-line. solves this, and more:

And, your files are securely stored on Amazon S3.

Command-line usage

Transfer a single file from your filesystem

Here is what you type in your command line:

$ curl -u user:pass -T path/to/file

Here is what you receive (as a text/uri-list payload):

Simple heh? From now on we’ll no longer separate request and response, and the username & password will be stored in the local .netrc file, i.e. the previous example will be written as:

$ curl -n -T path/to/file

To silence the progression bar automatically added by cURL, just add the -s flag:

$ curl -nsT path/to/file

Upload multiple files from your filesystem

$ curl -nsT "{path/to/file1,path/to/file2}"

One URL per line. No worries. You can even do:

$ curl -nsT "img[1-1000].png"

We also accept multipart uploads. In this case, if you send multiple files at once, they’ll be tar’ed up in a single .tar file! Here is how you would share multiple photos with your friends:

$ curl -n -FILE1=@path/to/file1.jpg -FILE2=@path/to/file2.jpg

Then, you can either share the URL to the tar file, or access a single file within the archive:

$ curl

Pipe some content into

$ cat file1 file2 | curl -nsT -

Basically you can use this to upload the output of any tool that outputs something on STDOUT.

Yes, that means cURL as well:

$ curl | curl -nsT -

Delete files

Since now requires authentication, you can also remove any uploaded file:

$ curl -n -X DELETE

Clipboard integration

If you’re on Mac OS, here’s how you send the content of your clipboard:

$ pbpaste | curl -nsT -

And here’s how you copy the resulting link into your clipboard:

$ curl -nsT path/to/file | pbcopy
$ pbpaste

See this article for an equivalent tool for Linux.

List uploaded files

$ curl -ns
# last_modified=2017-08-16T14:07:15.000Z size=8296034
# last_modified=2017-08-19T14:18:00.000Z size=395


# ~/.netrc
  login USERNAME
  password PASSWORD

Security is also available over SSL ( You should probably use that.

Be awesome

Syntax highlighting

Add the lang query parameter at the end of the URL to syntax highlight the file. For instance for a nodejs source file:

This works with all extensions supported by the Pygments library. You can also highlight specific lines of the file by putting a reference after the hash tag in the URL:

For image files, just set the lang to png, jpg, etc. to get the image displayed in a proper HTML page:

Tar archive preview

Remember the multi-file to .tar example? Try to append ?lang=tar or ?lang=archive you’ll get a nice page displaying the files in the archive! Works with gzipped tar archives too.


Single file extraction from tar archive

Just append the name of the file you’d like to extract from the archive.


Poor man’s static website hosting

See above: tar your static assets, upload to chunk, and access the index.html file!

Stream content (beta)

Ever wanted to share a log file with colleagues over HTTP? With real-time updates when new content appear? Then you should try the new streaming feature!

In a first terminal (producer), create a new stream, and send content to it

$ URL=$(curl -X POST
$ echo $URL # for reference
$ tail -f /var/log/nginx/access.log | curl -T - $URL

In another terminal (listener), access the URL and see live logs across the internet!

$ curl $URL

Terminating the producer will also terminate the connection on the listener(s).


Is it free?

Yes, but due to abuse you need to manually ask for access. Uploads are limited to 200MB, and may be deleted after 6 months.


File suggestions or bug reports at

Want your own?

This is a simple NodeJS daemon, packaged as a DEB/RPM package or Docker image that can be easily installed on your servers. Contact if you’d like to buy a copy.

A OuestCode production - Humming along since 2010.