Documentation

Help

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

] [n:] [

FAQs

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: http://github.com/chr/qataki (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: http://blog.yjl.im/2010/05/bash-oauth.html and modified it to my needs (including removing a perl dependency, replaced by a modified version of an urlencode script available here: http://www.shelldorado.com/scripts/cmds/urlencode).

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 http://test-subdomain.status.net (let's say @you), you have to put (in qataki.conf):

site example http://test-subdomain.status.net
machine test-subdomain.status.net login you password SECRET

where "example" is just an arbitrary alias for http://test-subdomain.status.net.

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

qataki s:example u "my message"

to post "my message" on http://test-subdomain.status.net as @you. Of course, you can have a shell alias like:

alias mysub="qataki s:example"

and then post your notices to http://test-subdomain.status.net 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 gs.sdf.org). You don't have to use the n:YOU option for your default account. Read the note about <NICK> in the help screen above.

Killfile

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:

foo
bar
foobar
#qux

Themes

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:

col_normal
Normal color. If you set any of the remaining colours, this needs to be set.
col_nick
Nicks of people you don't follow
col_follow
Nicks of people you follow
col_reply
Nicks of mentioned people (e.g., @user)
col_link
Links
col_hash
Hashtags
col_group
Groups

Some examples can be found in http://chr.tx0.org/qataki/themes/.

If you want to contribute a theme, contact me. A summary of escape sequences is available at ftp://sdf.org/pub/computers/vt100/color.pdf.

Tips

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 gs.sdf.org, Twitter and http://micro.example.com. If you want to update your accounts with the same notice, you can create this script (let's call it up-all.sh):

#!/bin/sh
for flag in i t s:mic "s:mic n:other" ; do
	qataki $flag u "$1"
done

(mic is an alias for http://micro.example.com and other is an alternate account on http://micro.example.com; see above). You can then make the script executable (chmod +x up-all.sh) and run it like:

./up-all.sh "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 follow.sh):

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

Then, after making it executable, you can ./follow.sh 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.

More

You can contribute usage tips on the wiki.