A framework written in Ruby for building GUI/TUI terminal/console applications.
Switch branches/tags
release_0.8.32 release_0.8.31 release_0.8.30 release_0.8.29 release_0.8.28 release_0.8.27 release_0.8.26 release_0.8.25 release_0.8.24 release_0.8.23 release_0.8.22 release_0.8.21 release_0.8.20 release_0.8.19 release_0.8.18 release_0.8.17 release_0.8.16 release_0.8.15 release_0.8.14 release_0.8.13 release_0.8.12 release_0.8.10 release_0.8.9 release_0.8.8 release_0.8.7 release_0.8.6 release_0.8.5 release_0.8.4 release_0.8.3 release_0.8.2 release_0.8.1 release_0.8.0 release_0.7.4 release_0.7.3 release_0.7.2 release_0.7.1 release_0.7.0 release_0.6.71 release_0.6.70 release_0.6.69 release_0.6.68 release_0.6.67 release_0.6.66 release_0.6.65 release_0.6.64 release_0.6.63 release_0.6.62 release_0.6.61 release_0.6.60 release_0.6.59 release_0.6.58 release_0.6.57 release_0.6.56 release_0.6.55 release_0.6.54 release_0.6.53 release_0.6.52 release_0.6.51 release_0.6.50 release_0.6.49 release_0.6.48 release_0.6.47 release_0.6.46 release_0.6.45 release_0.6.44 release_0.6.43 release_0.6.42 release_0.6.41 release_0.6.40 release_0.6.39 release_0.6.38 release_0.6.37 release_0.6.36 release_0.6.35 release_0.6.34 release_0.6.33 release_0.6.32 release_0.6.31 release_0.6.30 release_0.6.29 release_0.6.28 release_0.6.27 release_0.6.26 release_0.6.25 release_0.6.24 release_0.6.23 release_0.6.22 release_0.6.21 release_0.6.20 release_0.6.19 release_0.6.18 release_0.6.17 release_0.6.16 release_0.6.15 release_0.6.14 release_0.6.13 release_0.6.12 release_0.6.11 release_0.6.10 release_0.6.9
Nothing to show
Clone or download


Code Climate Build Status


Vedeu (vee-dee-you; aka VDU) is my attempt at creating a terminal based application framework without the need for Ncurses. I've tried to make Vedeu as simple and flexible as possible.


Note: You may have trouble running Vedeu with Windows installations. (Pull requests welcome!)


Vedeu relies on the following gems, these will be automatically installed when you install Vedeu (as documented below).

  • bundler
  • rake
  • vedeu_cli
    • thor


To install Vedeu, simply:

gem install vedeu

To use Vedeu's application scaffolding, see the RubyDoc


Have a look at: Playa. Please browse the source of Playa and Vedeu to get a feel for how it all works.

Note: Playa is based on an old version of Vedeu. Vedeu has significantly improved since then and a better example is coming soon!

If you have produced software which uses Vedeu, please let me know, I'll link to your project here.

Documentation & Usage

Vedeu is documented using Yard. I hope to produce more 'General Usage' documentation shortly. In the meantime, please browse the RubyDoc. Finally, here is some documentation for the various aspects of Vedeu (not comprehensive):

There are also some small, simple applications in the examples/ directory to show some concepts and basic functionality. This is not exhaustive, but are being added to and improved fairly regularly.

Development / Contributing

Pull requests are very welcome! Please try to follow these simple rules if applicable:

  • Please create a topic branch for every separate change you make.
  • Make sure your patches are well tested.
  • Update the Yard documentation. (Use yard stats --list-undoc to locate undocumented code)
  • Update the README, if appropriate.
  • Please do not change the version number.

Raising issues and finding bugs, updating documentation and improving the code are all welcome contributions. I may also have left some TODO items lying around, which you're quite welcome to and can find with either Yard, or git:

yard list --query '@todo'

git grep --line-number '@todo'

Any branch on the repository that is not master is probably experimental; do not rely on anything in these branches. Typically, twerks will be merged into master before a release, and branches prefixed with spike/ are me playing with ideas- they aren't guaranteed to work at all.

Various environment variables are available to you to help with testing, all of which can be used in combination, prefaced to rake:

  • Produce statistics on the slowest performing parts of the application/tests. Useful when used multiple times. See test/test_helper.rb for configuration.

      PERFORMANCE=1 rake
  • Produce a 'SimpleCov' test coverage report in the coverage/ directory.

      SIMPLECOV=1 rake
  • Produces a 'SimpleCov' test coverage report with output to the console.

  • Enable Ruby's warnings mode (this can usually be quote verbose, but thankfully more so with gem dependencies rather than Vedeu itself).

      WARNINGS=1 rake
  • Disable Ruby's garbage collection for this test run.

      DISABLE_GC=1 rake
  • Use Rubocop to catch coding misdemeanours for this test run. (Or use rake rubocop).

      RUBOCOP=1 rake
  • Build the Yard documentation for the project. (Or use rake yard).

      YARD=1 rake

General contribution help

  1. Fork it (https://github.com/gavinlaking/vedeu/fork)
  2. Clone it
  3. Run bundle
  4. Run rake (runs all tests and coverage report) or bundle exec guard
  5. Create your feature branch (git checkout -b my-new-feature)
  6. Write some tests, write some code, have some fun!
  7. Commit your changes (git commit -am 'Add some feature')
  8. Push to the branch (git push origin my-new-feature)
  9. Create a new pull request.

Author & Contributors


Gavin Laking (@gavinlaking)