Just Another Ruby Debugger

Ruby Jard provides a rich Terminal UI that visualizes everything your need, navigates your program with pleasure, stops at matter places only, reduces manual and mental efforts. You can now focus on real debugging.

MIT License

Ruby Jard is open-source, built for community. All contributions are welcome.Gem

Powered by Byebug and Pry

Ruby Jard's core is Byebug, combine with Pry REPL power. This brings battle-tested reliability, flexibility, and tons of cool features.

Pure Ruby and minimal dependencies

Jard is written in pure Ruby, with a slim set of dependencies, compatible with a wide range of systems.

Easy to use

Easy to Use

You just need to install the gem, put jard command before the place you want to stop, and run the program like normally. Jard spawns up a Terminal UI, runs right in your terminal emulator when your program stops at a break point.

The UI is friendly, intuitive, but still powerful enough. Jard's documents come with plenty of references, guides, and videos to help you utilize all Jard features.

Visualize everything you need

Ruby Jard's visual interface lets you grab everything you need at first glance. No more constantly typing list, where, puts @user or puts BORING_CONSTANT, and then forgetting what you are doing.

Variable visualization helps you know exactly the shape of data and overview of data content, backtrace visualization helps you grab an overview of current program flow. And more.

You won't need to be worried about information overflow either. Jard is smart enough to display only relevant essential information.

Visualize everythingVisualize everything
Navigate with ease

Navigate with pleasure

Thank to backtrace visualization and source code display, you'll never get lost in the dump of backtrace again. By default, those interfaces are always available, and compact.

You now can freely go up, and down of the current stack trace. At each frame, you can view the source code, input parameters, relevant variables. This helps you create a minimap of your program execution in your mind.

Nonetheless, you can even continue the execution at a particular upper frame, get out of unwanted boring gem, or just skip a nested loop with ease.

Stop at matter places only

How many times do you type step, and have idea why the debugger is leading you into a scary metaprogramming method deep in Rails?

What was the last time you are trying to debug a simple class, but have to type next, next, next, next to skip all the boring parts you don't care?

Good. Ruby Jard comes with a smart filter to let you choose the matter places only.

  • By default, Ruby Jard ignores everything outside of your project folder.
  • You can always change filter mode to go into gem, or even standard lib.
  • You can include/exclude a gem, a standard lib, a file, or even a folder.
Stop at matter places
Powerful REPL

Powerful REPL console

Ruby Jard's REPL engine is powered by Pry, a runtime developer console with powerful introspection capabilities. There are plenty of things you can do with the REPL console:

  • Ad-hoc code execution
  • Inspect nested variable, support syntax highlight
  • Source code browsing
  • Document browsing
  • Command shell integration
  • Navigation around state
  • Interfere and change current object state

Personalize your workflow

Do you have a big 4K monitor? Or you are a tmux guy, who runs Ruby in tiny windows? Ruby Jard can auto-scale automatically to fit into different screen sizes.

You don't like the default theme? Sure, Ruby Jard comes with 6 color schemes, 4 dark, and 2 light ones. Did I mention you can create your own scheme?

Default key bindings don't click for you? You can redefine almost key binding.

You don't like the default layout? Too much information for you? You can define your own layout too!

Ruby Jard comes with flexible configurations in mind. Check out the document page.

Peronnalize your workflowPeronnalize your workflow

Not what you are looking for now?

Ruby Jard is under active development. You'll be surprised when coming back later. You can always submit a feature request, and we'll welcome all contributions.