Update twitter via curl

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

163
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 · 503 weeks and 5 days ago
If you leave out `:pass` (your password), you will be able to enter your password later in a more secure manner.
sirlancelot · 501 weeks and 6 days ago
Also note that you can't use an "!" as bash will error out with bash: !": event not found
XtCrAvE · 499 weeks and 6 days ago
or $history -c once you do that... [of course to clear the hisory]
chanux · 499 weeks and 1 day 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 · 498 weeks and 4 days ago
This is resulting in 403 (Forbidden) errors today: 403 Forbidden: The server understood the request, but is refusing to fulfill it.
alesplin · 496 weeks and 4 days ago
Note: if cURL not installed, install it (ubuntu) : sudo apt-get install curl
cmdnix · 480 weeks and 1 day ago
You can use ! just use 'single quotes'
mandroid · 440 weeks and 3 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 · 433 weeks and 1 day ago
i tried, but i get this answer: Basic authentication is not supported
rubo77 · 423 weeks and 3 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 · 423 weeks and 2 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 · 420 weeks and 4 days ago
so is there any other solution?
rubo77 · 416 weeks and 6 days ago
Basic Auth turned off as of August 2010: http://apiwiki.twitter.com/w/page/22554643/Authentication scan to bottom
dan77l · 413 weeks and 1 day 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 · 413 weeks and 1 day ago
Basic authentication is not supported
ni3in3005 · 394 weeks and 2 days ago
Personally I'm using this mostly bash-based solution: http://blog.yjl.im/2010/05/bash-oauth.html
gluk47 · 390 weeks and 4 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 · 388 weeks and 2 days ago
Anyone know of something similar for identi.ca?
sfyn · 357 weeks and 5 days ago
-1 for plain-text password in the shell. Sorry, mate.
R3load · 266 weeks and 6 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: