Lookup Elixir documentation from the command line
Switch branches/tags
Nothing to show
Clone or download
Latest commit 5221360 Oct 2, 2015
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib simplify function listing May 9, 2015
test Introduce Eh.functions Apr 26, 2015
.gitignore Ignore doc/ folder Oct 2, 2015
.travis.yml Updated .travis.yml file. Apr 27, 2015
LICENSE Add APL 2.0 licence Nov 30, 2014
README.md Merge pull request #1 from sajmoon/docs Apr 20, 2015
mix.exs Bump outdated dependencies Oct 2, 2015
mix.lock Bump outdated dependencies Oct 2, 2015



Build status

Look up Elixir documentation from the command line

eh basically works like IEx.Helpers.h, except that you can run it from the command line.

It prints the documentation for its first argument, if it can find any documentation on it.

Eh for your code

Eh comes with a mix task for looking up code, mix eh. It can find documentation on any code it is compiled with, so if you install it standalone, it will only be able to lookup built-in Elixir documentation and its own documentation.

What's more interesting is to use it to lookup documentation on your own packages, or on dependencies in your application. By adding eh as a development dependency to your package, you can do that from outside of iex, e.g. from your editor.

Setting up eh for your project

Add eh as a development dependency to your project:

# mix.exs

def dependencies do
  [{:eh, only: :dev}]

Install dependencies

mix deps.get
mix deps.compile

You should now be able to use mix eh to lookup code in your project!

If you are a vim user, you can also set :keywordprog=mix\ eh, and have K look up code in your project.

Global installation

You can also install eh for your

You can install eh with git, like so

Install with git

git clone git@github.com:Frost/eh.git
cd eh
mix deps.get
mix escript.build
./eh Eh

Then you can put the eh binary somewhere in your $PATH and use it from anywhere, like set :keywordprog=/path/to/eh in your vimrc and for Elixir files, and be able to lookup Elixir documentation with K.



  • mix eh String - Module docs for String
  • mix eh is_binary - Docs for Kernel.is_binary
  • mix eh String.to_integer - Docs for any arity of String.to_integer
  • mix eh String.to_integer/1 - Docs for String.to_integer/1
  • mix eh String.to_integer/2 - Docs for String.to_integer/2

Why monochrome?

The output from eh is monochrome because some colors don't really work very well in some terminals. For instance, having bright yellow as a documentation header on a white background (or the reverse of that) makes the text completely illegible. That specific example was fixed in my pull request, but there might be other color combinations out there that also get messed up, so therefore I chose to output the documentation in monochrome.


The project is inspired by ri (ruby interactive), that basically does the same thing, but for ruby.

I also took a lot of inspiration from IEx.Helpers.h, since I basically wanted that, but without having to fire up IEx first.


Some of the code for extracting documentation from modules is more or less borrowed straight out of IEx.Introspection.h, and thate code is copyright 2012-2013 Plataformatec.


Pull requests are welcome.


  • eh String.to_integer(some, args) -> String.to_integer/2