Skip to content
Switch branches/tags

An Emacs major mode for Hy, a lisp embedded in python.

Provides autocompletion, documentation lookup, and all features required to make developing in Hy enjoyable and productive.



hy-mode is available in MELPA.

IDE components like autocompletion via company-mode rely on jedhy, which can be installed as standard with pip install jedhy in your virtual environment of choice, see

Jedhy should auto-start whenever it finds it.

Currently, completing imported packages requires sending the imports/requires/sys.path.extend manually in the current buffer with M-x hy-jedhy-update-imports.

The precise features enabled are: company-mode, eldoc-mode, and hy-describe-thing-at-point for looking up docs of the symbol at point.

Spacemacs users - Hy has its own layer in its dev branch.


Company/Eldoc support is enabled by default with hy-jedhy--enable?.

Indentation can be customized with hy-indent--exactly and hy-indent--fuzzily.

See hy-shell.el for configuring the shell.

Raising Issues

Please provide the version of Hy you are using. The last confirmed version of Hy jedhy is compatible with is: 0.16.0.

The IDE features and management is feature-full but nascent. If you encounter issues please provide as much details as you can.


hy-mode is well-tested. It uses buttercup rather than ert.

Execute tests after running cask install with the command: cask exec buttercup -L .

Process-based tests currently rely on setting hy-test--pyvenv-name to the name of a virtual environment containing Hy, see hy-test.el. If not set, then a warning will be given and process-based tests will be skipped.