I find 2 options that work very well for me:
utop provides a beautiful interface and supports completion, colors, parenthesis matching, etc. It can be installed by OPAM:
opam install utop.
Another simple way I found is to use the
rlwrap for line editing support: http://www.pkill.info/linux/man/1-rlwrap/
To start the OCaml toplevel with
$ rlwrap ocaml
Or wrap it in a shell script:
exec rlwrap /usr/bin/ocaml "$@"