irb-history gives IRB persistent, shared Readline history by way of Distributed Ruby (DRb). What does that mean?


irb-history-server stores its history in YAML in a file of your choice (the default is ~/.irb_history).


Load the irb-history client in your ~/.irbrc, and you'll instantly have access to the irb-history store. Every line you type is sent to the server and will appear in other clients' histories immediately.

Because irb-history uses DRb, you can share your history with other IRB sessions:

  • on the same computer

  • on other computers on your local network

  • on computers connected to the Internet (fun, but not recommended :))

Installation and usage

It's a simple process:

  1. Install the gem.

    $ gem install irb-history
  2. Start a history server listening on, port 26501 (see the irb-history-server documentation for more options).

    $ irb-history-server -d

    Note: If you wish to use irb-history on a network, you'll need to pass the -h flag with an appropriate address to listen on.

  3. Add three lines to your ~/.irbrc.

    require 'rubygems'
    require 'irb/history'

    This connects to the history server on, port 26501. If you need to specify a different host and/or port, just pass a DRb URI to start_client. For example:

    IRB::History.start_client 'druby://galt:4000'

    connects to the history server on host galt, port 4000.

Source code

Check out the darcs repository:

$ darcs get


irb-history is freely distributable under the terms of a MIT-style license.


Sam Stephenson <>