twosheds is a library, written in Python, for making command language interpreters, or shells.
While shells like bash and zsh are powerful, extending them and customizing them is hard; you need to write in inexpressive arcane languages, such as bash script or C. twosheds helps you write and customize your own shell, in pure Python:
>>> import twosheds
>>> shell = twosheds.Shell()
>>> shell.serve_forever()
$ whoami
arthurjackson
$ ls
AUTHORS.rst build requirements.txt test_twosheds.py
LICENSE dist scripts tests
Makefile docs setup.cfg twosheds
README.rst env setup.py twosheds.egg-info
- Substitution
- History
- Tab completion
- Highly extensible
To install twosheds, simply:
$ pip install twosheds
Documentation is available at http://twosheds.readthedocs.org/en/latest/.
twosheds is under active development and contributions are especially welcome.
- Check for open issues or open a fresh issue to start a discussion around a feature idea or a bug.
- Fork the repository on GitHub to start making your changes to the master branch (or branch off it).
- Write a test which shows that the bug was fixed or that the feature works as expected.
- Send a pull request and bug the maintainer until its get merged and published. Make sure to add yourself to AUTHORS. :)
If you have questions or issues about twosheds, there are several options:
If your question is less than 140 characters, feel free to tweet at the maintainer, @Ceasar_Bautista.
If you notice some unexpected behavior in twosheds, or want to see support for a new feature, file an issue on GitHub issues.
I'm more than happy to answer any personal or in-depth questions about twosheds. Feel free to email cbautista@gmail.com.