Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I would like to tweet a message using terminal.

I tried something like:

curl -u 'TwitterUsername':'TwitterPassword' -d status=”Your Message Here” https://twitter.com/statuses/update.xml

but seems this isn't working anymore.

I get a error like this one:

<?xml version="1.0" encoding="UTF-8"?>
    <errors>
    <error code="53">Basic authentication is not supported</error>
</errors>

So, how could we tweet from the terminal?

PS.: my motivation to this is because I use the Yakuake terminal a lot, and it would be awesome to tweet from there.

share|improve this question
up vote 6 down vote accepted

This error message is because Twitter needs OAuth for authentication. Take a look at TTYtter if you don't mind a Perl app:

Noooo, not another Twitter client! Yes, another Twitter client. The difference here is that you're dealing with a multi-functional, fully 100% text, Perl command line client.

  • In interactive mode, it is a fully interactive client with asynchronous background updates and commands. Use it over telnet, ssh or even a dummy terminal. Supports Streaming API, ANSI colour, UTF-8, hashtags and Twitter Search!
  • Works within your favourite environment: use a compatible readline library (like our own bespoke Term::ReadLine::TTYtter), or modify prompt and input methods for many popular window and session managers. Or don't: basic editing and screen management features built-in.
  • From the command line, use it to update your Twitter in shell scripts, from cron, and so on.
  • Security: Supports Twitter OAuth and HTTP Basic Authentication, and SSL where supported by your user agent.
  • Notification support with Growl and libnotify (and extendable to others via the API).
  • Geolocation support: hand your GPS coordinates to TTYtter for any application.
  • Lists support, including fast creation and modification, and merging lists with your timeline as "custom timelines."
  • Supports Twitter-alike APIs such as StatusNet and Identi.ca.
  • Supports standard timelines and automatically fetches direct messages, and optionally replies/mentions, and runs queries against the Search API and incorporates them into your timeline as well.
  • New and old re-tweet support.
  • Write and use your own custom extensions!
  • Run detached in -daemon mode, and make your own Twitter bot!
share|improve this answer
2  
+1 for TTYtter. I'm not a huge fan of Twitter, but it's definitely is one of the better clients. The Irssi plugin isn't that great, compared to TTYtter. – polemon Jul 1 '12 at 17:04

Try T. Very powerful, easy to use and written in Ruby.

For example, you can tweet directly from the terminal, by executing:

t update "I'm tweeting from the command line."
share|improve this answer

2016 Update

There is a project called Twurl - an OAuth-enabled curl for the Twitter API:

Twurl is like curl, but tailored specifically for the Twitter API. It knows how to grant an access token to a client application for a specified user and then sign all requests with that access token.

It also provides other development and debugging conveniences such as defining aliases for common requests, as well as support for multiple access tokens to easily switch between different client applications and Twitter accounts.

Instead of this from the question:

curl -d status="Your Message Here" https://twitter.com/statuses/update.xml

you use something like this:

twurl -d status="Your Message Here" /1.1/statuses/update.json

after you authorize yourself first as explained in the readme.

(note that you don't have to use the protocol and hostname in the URL as you would with curl)

This program was originally written by Marcel Molina who worked at Twitter at that time and it is now an official Twitter project on GitHub.

Many people are asking specifically how to use curl to use the Twitter API and twurl is probably the closest to curl as you can get today.

share|improve this answer

Take a look at Rainbow Stream - smart/beautiful and written in Python. It provides a rainbow shell which can start by

$ rainbowstream

and inside the app, updating a status is quite easy with

[@yourTwitterName]: t tweeting from #rainbowstream
share|improve this answer
    
Interesting Software. But could you given an example of how to tweet directly from the console? Since the question is about tweeting directly from the console. – Raphael Ahrens Jul 18 '14 at 4:24
    
Thanks, I updated my answer. – DTVD Jul 18 '14 at 13:48

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.