Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Pry Cheat Sheet

Pry Cheat Sheet

Command Line

  • pry -r ./config/app_init_file.rb - load your app into a pry session (look at the file loaded by
  • pry -r ./config/environment.rb - load your rails into a pry session


  • help ls -- Display command options for pry command ls
  • ls <Object> -- Show all of the available methods that can be called by an object
  • _ -- Last eval
  • ? <Object> -- Shows more information (doc) about an object, or method
  • _file_ -- Represent the last file Pry touched
  • wtf? -- Print the stack trace, same as _ex_.backtrace
  • $ -- Show source, shortcut for show-source
  • edit Class -- Open file in $EDITOR
  • edit Class#instance_method -- Open file in $EDITOR
  • <ctrl+r> -- Search history
  • _out_ -- Array of all outputs values, also _in_
  • cd <var> -- Step into an object, change the value of self
  • cd .. -- Take out of a level
  • binding.pry -- Breakpoint
  • edit --ex -- Edit the file where the last exception was thrown
  • .<Shell> -- Runs the command
  • whereami -- Print the context where the debugger is stopped
  • whereami 20 -- Print the context 20 lines where the debugger is stopped
  • ; -- Would mute the return output by Ruby
  • play -l -- Execute the line in the current debugging context


  • next -- execute next line
  • step -- step into next function call
  • continue -- continue through stack


  • rescue rspec -- break on exception in rspec
  • rescue rails server -- break on exception in rails server
  • try-again -- run last failing spec, reloads the file not the enviornment
Copy link

bsimpson commented Feb 23, 2015

Just a note on showing the backtrace: The command is _ex_.backtrace. Looks like markdown ate the underscores

Copy link

stujo commented May 21, 2015

Thank you!

Copy link

geocodinglife commented Apr 10, 2016

Info very helpful,

Copy link

ghost commented Jun 15, 2017

very helpful, thanks

Copy link

cmdallas commented Mar 9, 2018

This is amazing. Thanks!

Copy link

hailengc commented Mar 26, 2018


Copy link

abdul-shajin commented Dec 6, 2018

Thanks for this.

Copy link

mrinterweb commented Feb 1, 2019

One trick I use all the time is ls -G <search-term> <Object> It greps method names on an object containing the term.

Copy link

maxkerp commented Feb 14, 2019

This is pure gold 👌. Thank you so much for this! 😁✌️

Copy link

OddEssay commented May 23, 2019

Thanks for this! I spent so long trying to find how to skip inspecting the result of a slow command (By adding ; to the end)

For context in case it helps someone:

Model.all.count # Fast

If you break it down by line, Pry wants to inspect the interim step which means serializing every record in your table

q = Model.all # Slow, as it tries to inspect every row in the table
q.count # Fast

So, you can make it quick by skipping output:

q = Model.all; # Fast again
q.count # Fast

Copy link

misraelson commented Aug 7, 2019

What about exit or escape commands? Sometimes you are trapped in a pry inside a loop and want to escape all

Copy link

Reksford commented Aug 8, 2019

If you want to escape out of the program use exit-program or simply !!!

Copy link

misraelson commented Aug 8, 2019

Copy link

gustiando commented Dec 27, 2019

I'm inside a giant loop, is there a way to "continue all"? exit! ends up killing rails server altogether.

Copy link

Patrickmnts commented Jan 15, 2020

@gumatias disable-pry will skip all future bindings without killing the server.

Copy link

gustiando commented Jan 16, 2020


Copy link

mel-delosada-wb commented Mar 9, 2020

Much appreciated!

Copy link

QasimQureshi commented Mar 10, 2020

Want to stop the code from running after pry, without quitting the server? I use raise-up

Copy link

DavidEcklund commented Dec 11, 2020

Thanks for this!

Copy link

ssoulless commented Jun 17, 2021

very useful!!! Thank you!

Copy link

apatniv commented Dec 11, 2021


Copy link

davidr64 commented Feb 4, 2022

pry-backtrace is a great option for viewing the stack. It will include line numbers where I don't think wtf? does

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment