Learning shell