Here's the output of "qataki h" (could be outdated):

] [n:] [


Are these really frequently asked questions?
No. ;-)
Why Qataki?
I wanted a way to read/post status updates from/to microblogs from the command line. Thus, I started with a couple of lines to download statuses, then added send updates, replies, … (Yes, I know there are already some other CLI clients out there. Reinventing the wheel? Maybe.)
How come the output from conversations is different?
As of April 2010, there's no API for conversations. So, the script just downloads the actual HTML page and formats it. The output, however, seems nice.

Twitter support

In short, you can use Twitter with OAuth. Just download qataki.utils available in the git repo: (remember to check also in the 'next' branch). After you download it you have to put it in $conf_dir (which by default is in $HOME/.qataki). That's all.

Twitter decided to use OAuth for authentication and removed Basic Auth. This implied that supporting it required code OAuth support. I found a simple OAuth Bash library here: and modified it to my needs (including removing a perl dependency, replaced by a modified version of an urlencode script available here:

StatusNet support

You can use variuos StatusNet sites with the s option. Run qataki k and follow the instructions, otherwise you'll have to do it manually. In this case, you'll have to write in the configuration file (by default $HOME/.qataki/qataki.conf) one row for each site you want to use. For instance, if you have an account on (let's say @you), you have to put (in qataki.conf):

site example
machine login you password SECRET

where "example" is just an arbitrary alias for

Done that (luckily that should be done once!), you can run:

qataki s:example u "my message"

to post "my message" on as @you. Of course, you can have a shell alias like:

alias mysub="qataki s:example"

and then post your notices to this way:

mysub u "hello world"

Multiple accounts

If you have multiple accounts, you can configure Qataki in order to allow you to use one of these accounts with, e.g., qataki n:YOU (where YOU is an alternate account; in this example an account on You don't have to use the n:YOU option for your default account. Read the note about <NICK> in the help screen above.


Are you tired of seeing again and again messages which contains a certain word/tag? Let's say that you don't really care about foobar: If you add foobar in .qataki/killfile, you won't see again those messages!

.qataki/killfile is a file which should contain a word/tag on each line, like:



Optionally, the default look of Qataki's output can be changed. All you need is to specify the option opt_theme in the configuration file (by default $HOME/.qataki/qataki.conf) with a name of a file to be located in $conf_dir (by default $HOME/.qataki/) where colours (ANSI escaped) are set (the file can have the name and the extension you want, e.g., opt_theme=default.txt.

Colors are:

Normal color. If you set any of the remaining colours, this needs to be set.
Nicks of people you don't follow
Nicks of people you follow
Nicks of mentioned people (e.g., @user)

Some examples can be found in

If you want to contribute a theme, contact me. A summary of escape sequences is available at


The script does one thing at a time. If you want to do crazy stuff, then you have to create a wrapper around qataki. Some examples below.

Update multiple accounts

For instance, let's say that you have accounts on, Twitter and If you want to update your accounts with the same notice, you can create this script (let's call it

for flag in i t s:mic "s:mic n:other" ; do
	qataki $flag u "$1"

(mic is an alias for and other is an alternate account on; see above). You can then make the script executable (chmod +x and run it like:

./ "My message!"

Real time updates

If you want qataki to check for new notices (from people you follow) every ten minutes (not real time, but probably sufficient), you can do it with this script (say

while true; do
     qataki f 1>/dev/null
     if [ "$?" -eq 0 ] ; then
         echo ; echo "Update: $(date)" ; echo ; qataki p
     sleep 600

Then, after making it executable, you can ./ and it will display notices when they become available.

Read context when displaying timelines

OK, say you are reading the statuses from people you follow and notice a {context} string in, say, the third one (it means that someone has replied to that notice). Do you really have to scroll down all the messages and then run qataki c 3? No way. You can simply type Ctrl-z (that is, the control key and z), then qataki c 3, and then go back typing fg.


You can contribute usage tips on the wiki.