Rails Quick Tip - Display Current Environment in Console Prompt

Displaying Ruby on Rails env in console is represented by a sign Photo by Markus Spiske on Unsplash

Am I the only programmer who once or twice messed up production by thinking it was development? In this short tutorial, I’ll describe a simple way to reduce the risk of mixing up your current working Rails environment.

How to customize Rails console prompt?

By default, Rails console displays info about the current working environment on startup:

Default Ruby on Rails console prompt

Default Rails console prompt

The issue with this setup is that the environment name is pushed off the screen once you run a few commands. If you’re working in multiple terminal tabs, it’s just too easy to confuse environments.

You can easily improve it by adding the following file to your Rails project:


require 'irb'

env = Rails.env
env_color = if env.production?

IRB.conf[:PROMPT] ||= {}
  PROMPT_I: "YourApp (#{env_color}) > ",
  PROMPT_N: nil,
  PROMPT_S: nil,
  PROMPT_C: nil,
  RETURN:   "=> %s\n"


and enabling it in app configuration:


console do
  ARGV.push "-r", root.join("config/initializers/console_prompt.rb")

Now your console prompt will ALWAYS display the current Rails environment. With a bit of ANSI coloring magic, we can highlight the environment name if you’re on production:

Custom Ruby on Rails development console prompt

Custom Ruby on Rails production console prompt

Abot for Slack custom console prompt


For me, this simple hack highly improves the comfort of working in the Rails console. Before implementing it I’ve manually run Rails.env before executing any potentially destructive command. I hope that adding it to your project will help you prevent unnecessary mistakes.

Back to index