Update twitter via curl

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

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

    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

    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.

    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

    curl -u YourUsername:YourPassword -d status="Your status message go here" http://twitter.com/statuses/update.xml
    m33600 · 2009-06-27 21:47:48 7
  • 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.

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

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 · 657 weeks and 2 days ago
If you leave out `:pass` (your password), you will be able to enter your password later in a more secure manner.
sirlancelot · 655 weeks and 2 days ago
Also note that you can't use an "!" as bash will error out with bash: !": event not found
XtCrAvE · 653 weeks and 2 days ago
or $history -c once you do that... [of course to clear the hisory]
chanux · 652 weeks and 4 days 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 · 652 weeks and 1 day ago
This is resulting in 403 (Forbidden) errors today: 403 Forbidden: The server understood the request, but is refusing to fulfill it.
alesplin · 650 weeks and 1 day ago
Note: if cURL not installed, install it (ubuntu) : sudo apt-get install curl
cmdnix · 633 weeks and 5 days ago
You can use ! just use 'single quotes'
mandroid · 594 weeks 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 · 586 weeks and 4 days ago
i tried, but i get this answer: Basic authentication is not supported
rubo77 · 576 weeks and 6 days 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 · 576 weeks and 6 days 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 · 574 weeks ago
so is there any other solution?
rubo77 · 570 weeks and 2 days ago
Basic Auth turned off as of August 2010: http://apiwiki.twitter.com/w/page/22554643/Authentication scan to bottom
dan77l · 566 weeks and 4 days 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 · 566 weeks and 4 days ago
Basic authentication is not supported
ni3in3005 · 547 weeks and 5 days ago
Personally I'm using this mostly bash-based solution: http://blog.yjl.im/2010/05/bash-oauth.html
gluk47 · 544 weeks 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 · 541 weeks and 5 days ago
Anyone know of something similar for identi.ca?
sfyn · 511 weeks and 1 day ago
-1 for plain-text password in the shell. Sorry, mate.
R3load · 420 weeks and 3 days ago
This is just amazing! Wow~! respite care
aegyjingoo · 42 weeks and 3 days ago
cant get over this. will recommend this to my friends. breast implants portland
looneyhans · 31 weeks and 2 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.

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: