Ginsu is a client for the gale chat system. It is designed to be powerful and above all stable, as well as having a quick learning curve.


Using Ginsu

Setting up Ginsu

If you are new to gale

First you need a keypair. These can be generated with the ginsu-mdk program which comes with ginsu as follows:

; ginsu-mdk
Then you should answer a bunch of questions. Lets assume you register <yourname> for the following.
; mkdir ~/.gale
; echo 'GALE_ID  <yourname>' >> ~/.gale/conf
; echo 'GALE_DOMAIN' >> ~/.gale/conf
; echo 'GALE_NAME  <Your Full Name>' >> ~/.gale/conf
If you cannot run ginsu-mdk for some reason (perhaps you don't have python installed), you may sign up for an account at and click on the keypair link on the upper left and follow the instructions. After you download the keys, create the ~/.gale/conf as shown above.

You might want to create a ginsu configuration file too as discussed below.

If you already use gale

Although ginsu will work with a normal gale configuration, you will probably want to create a ginsu.config file, the following will generate a simple one filled with the system defaults.

mkdir ~/.gale ; ginsu -s > ~/.gale/ginsu.config
There are instructions in the file on what the options mean, but you should be sure to set GALE_ID, GALE_SUBSCRIBE and GALE_DOMAIN if they are not in your environment or ~/.gale/conf.

If you are running ginsu on a machine you have not used gale from before, you need to copy your private key files to the new machine. these are found in ~/.gale/auth/private/ and are named after your GALE_ID you may copy that entire directory to the new machine. Be sure set up a configuration file as show above.

General use

See the Ginsu Manual and the GinsuFaq.

Here is the output of the help mode:

  Main Screens:
             <F1>, ?    Show help screen
                <F3>    show presence status
                   d    show puff details
                   S    show status screen
  Puff Movement:
           <Down>, j    Goto the next puff
             <Up>, k    Goto the previous puff
              <Home>    Goto the first puff
            <End>, G    Goto the last puff
      <C-E>, <Enter>    Scroll one line down
  <Backspace>, <C-Y>    Scroll one line up
   <C-F>, <PageDown>    Scroll one page down
     <C-B>, <PageUp>    Scroll one page up
               <C-D>    Scroll a half page down
               <C-U>    Scroll a half page up
  Filter Manipulation:
                   c    prompt new filter
                   /    prompt new filter slash
                   ~    prompt new filter twiddle
                   u    pop one filter
                   U    pop all filters
                   !    invert filter
                T, t    filter current thread
                   x    swap filters
                   a    filter current author
  Puff Body Filtering:
               <C-O>    toggle Rot13 filter
  Mark/Workspace Manipulation:
                   m    save current position at a given mark.
       <SingleQuote>    goto position saved at mark
                   M    save current filter stack at given mark.
       <DoubleQuote>    Recall filter stack at mark
                   C    Recall filter stack at mark and combine it with the current filter stack.
               [1-9]    Recall given numbered workspace and set it as current workspace, these follow marks [1-9]
  Composing Puffs:
                   p    compose a new puff
                   f    follow up to the same category as the current puff
                   r    reply to the author of the current puff privatly
                   g    reply to the union of the sender and categories of the current puff
                   R    resend puff
                   v    visit link in current puff
                   N    modify presence string
               <C-R>    reconnect to servers
                   E    Edit the configuration file and reload its settings
                   q    quit ginsu
                   Q    quit ginsu without asking first
               <C-L>    redraw screen

Filter Reference:
  Primitive Filters:
    ~a:<gale-id>    author of puff
   ~c:<category>    category puff was sent too
      ~k:<regex>    regex match against keyword
      ~s:<regex>    regex match against senders real name
      ~b:<regex>    regex match against message body
        /<regex>    search for <regex> in visible fragments
  Combining Filters:
           A ; B    Filter A or filter B
             A B    Filter A and filter B
              !A    Not filter A
             (A)    Grouping, same as filter A
      /'foo bar'    Single quotes are used to quote strings

Filter Examples:
      all puffs by john@ugcs
      puffs from jtr and to
    (/ginsu ; ~c:pub.gale.ginsu)
      puffs containing the word ginsu or directed to pub.comp.ginsu
      no spoilers
    ( !~c:pub.meow)
      puffs to buffy which are not about cats

For more info see the manual at



Binaries for Linux x86-64 are available as tarballs and redhat rpms. If you use the static binary be sure to read the FAQ for some issues.

Building from source

Compilation should be possible on a wide variety of platforms. The main requirements are curses and openssl which are preinstalled on many systems. GHC version 6.4 or better is also needed and it may be found at the ghc homepage. It is recommended you install a binary package of GHC if it exists for your system.

Once you have ghc installed you may build ginsu as you would any autoconf style package. Unpack the source package, cd into its directory and run the following:

; ./configure
; make
; su 
Password: [enter root password]
; make install
If there were no errors you should now be ready to run ginsu! See above for information on setting up a configuration file and getting a gale key.

If you have toast installed, and freshmeat is up to date, you can build and install ginsu by via the following:

; toast arm ghc  # unless you already have GHC installed.
; toast arm ginsuginsu

** Here is the download directory **

Debian packages are also be available

There is a public darcs repository at

ginsu is split among several darcs repositories, in order to get them all, do the following.
  darcs get 
  cd ginsu
  darcs get 
  darcs get


See the Changelog or for older changes see the Older Changelog.
My homepage -> computer stuff -> ginsu