Update twitter via curl

curl -u user:pass -d status="Tweeting from the shell" http://twitter.com/statuses/update.xml

164
By: adamm9
2009-02-05 18:33:23

6 Alternatives + Submit Alt

  • An improvement of the original (at: http://www.commandlinefu.com/commands/view/2872/update-twitter-via-curl) in the sense that you see a "from cURL" under your status message instead of just a "from API" ;-) Twitter automatically links it to the cURL home page. Show Sample Output


    14
    curl -u twitter-username -d status="Hello World, Twitter!" -d source="cURL" http://twitter.com/statuses/update.xml
    MyTechieself · 2009-12-08 14:54:33 1
  • Doesn't require password (asks for it instead) Show Sample Output


    11
    curl -u user -d status="Tweeting from the shell" http://twitter.com/statuses/update.xml
    matthewbauer · 2009-08-05 02:24:01 2
  • This version of tweet() doesn't require you to put quotes around the body of your tweet... it also prompts you for password. It will still barf on a '!' character.


    7
    tweet () { curl -u UserName -d status="$*" http://twitter.com/statuses/update.xml; }
    bartonski · 2009-11-07 06:54:02 0
  • Found it on snipt, pok3, is it yours? I put my user = m33600, the password and the status was my robot message: Settima robot message: ALARM ZONE 3 (sent via command line). Now bots may have their identity on twitter... Show Sample Output


    2
    curl -u YourUsername:YourPassword -d status="Your status message go here" http://twitter.com/statuses/update.xml
    m33600 · 2009-06-27 21:47:48 6
  • Type the command in the terminal and press enter to create the tweet() function. Then run as follows: tweet MyTwitterAccount "My message goes here" It will prompt you for password. Make sure that you use escape "\" character in message for showing varialbles or markup.


    0
    tweet(){ curl -u "$1" -d status="$2" "http://twitter.com/statuses/update.xml"; }
    Code_Bleu · 2009-08-23 16:56:24 1

What Others Think

Be carefull not to do that in a multi-user machine, since your password will be visible in the process listing for as long as curl is running.
kov · 512 weeks and 4 days ago
If you leave out `:pass` (your password), you will be able to enter your password later in a more secure manner.
sirlancelot · 510 weeks and 5 days ago
Also note that you can't use an "!" as bash will error out with bash: !": event not found
XtCrAvE · 508 weeks and 5 days ago
or $history -c once you do that... [of course to clear the hisory]
chanux · 508 weeks ago
regarding bash history and security: you can also put a space in front of a command to keep it out of your .bash_history (pressing up won't show it) curl etc...etc... http://www.commandlinefu.com/commands/view/1512/execute-a-command-without-saving-it-in-the-history
sudopeople · 507 weeks and 3 days ago
This is resulting in 403 (Forbidden) errors today: 403 Forbidden: The server understood the request, but is refusing to fulfill it.
alesplin · 505 weeks and 3 days ago
Note: if cURL not installed, install it (ubuntu) : sudo apt-get install curl
cmdnix · 489 weeks ago
You can use ! just use 'single quotes'
mandroid · 449 weeks and 2 days ago
Just start the command with a space (if it includes your password)so that its not stored in your .bash_history file. its safer that way.
nssy · 441 weeks and 6 days ago
i tried, but i get this answer: Basic authentication is not supported
rubo77 · 432 weeks and 1 day ago
Twitter recently removed support for HTTP Basic Auth (requiring OAuth instead) so this command will not work anymore. See http://dev.twitter.com/announcements
ronnix · 432 weeks and 1 day ago
hi, Basic authentication is no longer supported by @twitter This generates error "curl -u user:pass -d status="Tweeting from the shell" Basic authentication is not supported
ruwindada · 429 weeks and 3 days ago
so is there any other solution?
rubo77 · 425 weeks and 5 days ago
Basic Auth turned off as of August 2010: http://apiwiki.twitter.com/w/page/22554643/Authentication scan to bottom
dan77l · 422 weeks ago
Looks like there is a solution, gotta use OAuth: http://jeffmiller.github.com/2010/05/31/twitter-from-the-command-line-in-python-using-oauth
dan77l · 422 weeks ago
Basic authentication is not supported
ni3in3005 · 403 weeks ago
Personally I'm using this mostly bash-based solution: http://blog.yjl.im/2010/05/bash-oauth.html
gluk47 · 399 weeks and 3 days ago
Here is a working bash script to post to Twitter from the command line on Linux and Mac: http://360percents.com/posts/command-line-twitter-status-update-for-linux-and-mac/
unixmonkey21336 · 397 weeks and 1 day ago
Anyone know of something similar for identi.ca?
sfyn · 366 weeks and 4 days ago
-1 for plain-text password in the shell. Sorry, mate.
R3load · 275 weeks and 5 days ago

What do you think?

Any thoughts on this command? Does it work on your machine? Can you do the same thing with only 14 characters?

You must be signed in to comment.

Considering A New Car?

You should consider a Tesla. Get 6 Months Free Supercharging.

Free Supercharging

What's this?

commandlinefu.com is the place to record those command-line gems that you return to again and again. That way others can gain from your CLI wisdom and you from theirs too. All commands can be commented on, discussed and voted up or down.

Share Your Commands



Stay in the loop…

Follow the Tweets.

Every new command is wrapped in a tweet and posted to Twitter. Following the stream is a great way of staying abreast of the latest commands. For the more discerning, there are Twitter accounts for commands that get a minimum of 3 and 10 votes - that way only the great commands get tweeted.

» http://twitter.com/commandlinefu
» http://twitter.com/commandlinefu3
» http://twitter.com/commandlinefu10

Subscribe to the feeds.

Use your favourite RSS aggregator to stay in touch with the latest commands. There are feeds mirroring the 3 Twitter streams as well as for virtually every other subset (users, tags, functions,…):

Subscribe to the feed for: