bringing text-mode interfaces into the 21st century

about | status | download | contact


What do vim, mutt, and screen have in common?

They're powerful text-mode programs that are the staple of many programmers' toolboxes. They're written in C. They all have their own custom scripting/configuration language.

What if these programs were written in a high-level language like Ruby, and the scripting/configuration language was Ruby also? What if the extension mechanism was flexible enough that most of the program was implemented using the extension mechanism?

That is what silkscreen is.

I can hear the Emacs users crying "you silly fool, that's what Emacs is, and it already exists!" That's very true. silkscreen takes a lot of inspiration from Emacs. Let me distinguish silkscreen from Emacs in the following ways (without starting a relgious war):

silkscreen is released under the MIT license (BSD, but simpler).


silkscreen is currently immature. The implementation of TerminalWindow (terminal multiplexing, a la screen) has made good progress, and can currently run "vim" in color reasonably well. However, many escape sequences are still unimplemented, and it has not been thoroughly tested.

I have begun working on a mail client (a la mutt). It will focus on being really fast and using IMAP as efficiently as possible.


silkscreen is hosted in a darcs repository. Retrieve it with:

$ darcs get

If you don't have darcs, you can download a nightly snapshot:

silkscreen requires the following:


This software is written by Joshua Haberman.

For email, my email alias is 'habes'.

Valid XHTML 1.0 Strict Valid CSS! Logo