maisha - Micro-blogging From Your Command Line


   maisha -c mymaisha.ini
   maisha -v
   maisha -u
   maisha -h


maisha gives you access to micro-blogging from your command line


--config | -c

Specify the config file to read from. By default, maisha attempts to read a config file named config.ini in the current directory

--version | -v

Print out the version and exit

--usage | -u

Prints out a basic usage help screen

--help | -h

Print out the manual page.


The configuration file must contain at least one micro-blogging service, with your username and password for that service, all other configuration settings are optional.

The configuration file itself can be in several different formats, XML, YAML, JSON, Windows INI files and even pure Perl are all supported, provided you have the correct distributions to support those file formats. As a guide the following are known to work with this application:

  Config::Tiny    - INI file format
  JSON            - JSON file format
  JSON::Syck      - JSON file format
  XML::Simple     - XML file format
  YAML            - YAML file format
  YAML::Syck      - YAML file format

For further options for other file formats see Config::Tiny for more information. See also examples listed further below.

By default the INI and YAML file formats are used, with the application looking for a default configuration file in your $HOME directory, named '.maisha.ini', '.maisha.yml' or '.maisha.yaml'.

Application Configuration

The configuration for the application itself are contained within a 'CONFIG' section in your configuration file. All settings are optional, and will default to sensible values should they not be user defined.

  • prompt

    The prompt you wish to see on the command line. This will default to 'maisha>' if not configured.

  • tag

    The tag you wish to have added to the end of an update/say command. This will default to '[from maisha]' if not configured. If you do not wish a tag to be added at all, set the tag to '.' in the configuration file.

  • order

    Describes the order for printing status messages when a timeline command is requested. Will default to 'descending' if not configured. Setting is case insensitive and should be set to 'ascending' or 'asc' to reverse the order.

  • limit

    Describes how many status messages should be printed when a timeline command is requested. Will default to the last 20 if not configured.

  • pager

    Enables the use of a pager when viewing timelines. Defaults to true if not specified.

  • format

    When printing a list of status messages, the default format of printing the username followed by the status message is not always suitable for everyone. As such you can define your own formatting.

    The default format is "[%U] %M", with the available formatting patterns defined as:

      %U - username or screen name
      %M - status message
      %T - timestamp (e.g. Sat Oct 13 19:29:17 +0000 2012)
      %D - datetime  (e.g. 13/10/2012 19:29:17)
      %d - date only (e.g. 13/10/2012)
      %t - time only (e.g. 19:29:17)
      %N - network
  • chars

    As Maisha is run from the command line, it is most likely being run within a terminal window. Unfortunately there isn't currently a detection method for knowing the exact screen width being used. As such you can specify a width for the wrapper to use to ensure the messages are correctly line wrapped. The default setting is 80.

Service Configuration

For each service you have available (the default install includes 'Identica' and 'Twitter') include an associated section in your configuration file, providing a username and password for that service. If any service fails to connect, a warning is emitted. If the application is not able to connect to any service, the application will terminate with an error message.

  • username

    Your username login to your network service account

  • password

    Your password login to your network service account


Note that not all services offer all commands. Where commands are not applicable for a service, and appropriate warning message will be emitted.

  • friends

    Displays the most recent status messages from each of your friends.

  • friends_timeline | ft [<limit>]

    Displays the most recent status messages within your friends timeline.

  • public_timeline | pt [<limit>]

    Displays the most recent status messages within the public timeline.

  • followers

    Displays the most recent status messages from each of your followers.

  • replies | re [<limit>]

    Displays the most recent reply messages.

  • direct_messages | dm [<limit>]

    Displays the most recent direct messages you have received.

  • send_message | send | sm <user> <message>

    Post a direct message to another user. Include the username of the person you wish to send a message to, followed by your message, of upto 140 characters in length.

  • update | say <message>

    Posts a new status message, of upto 140 characters in length.

  • exit | quit | q

    Exits the program.

  • help

    Provides help for a specific command, or provides a summary of the commands available if requested with no arguments.

Example Configuration Files

INI Style Configuration

Requires Config::Tiny to be available.




YAML Style Configuration

Requires YAML or YAML::Syck to be available.

  --- #YAML:1.0
    order: asc
    tag: .
    username: yourlogin
    username: yourlogin
    password: yourpassword

Perl Style Configuration

No additional dependencies required.

    CONFIG      => {'order': 'asc','tag': '.'},
    Twitter     => {'username': 'yourlogin'},
    Identica    => {'username': 'yourlogin','password': 'yourpassword'},


  Barbie, <>
  for Miss Barbell Productions <>.


  Copyright (C) 2009-2012 by Barbie

  This module is free software; you can redistribute it and/or
  modify it under the Artistic License v2.