What is Æsh?

Æsh is a configurable, extendable, flexible Java Terminal API


Almost every feature in Æsh is possible to either disable/enable or extend. All the features described here are just a simple overview, we recommend that you look at the documentation for more info regarding the different subjects.


Æsh provide two different public APIs that for different usecases. One high level API when you need to create commands withing a certain specification and ruls and one low level API where you get full access to the streams and can parse/configure it do your liking.

Command Line Parser

Æsh provide a sophisticated command line parser that will automatically inject the correct value into the specific attribute. It is also possible to specify a validator that will validate the value before it is passed to the specific attribute.


Æsh also provide automatic completions based on default or custom rules. Æsh have several built-in completors for common object types which can used or overridden by the developer.

Editor Support

Æsh support both VI and EMACS editing mode. Its also possible to enable your own custom editing mode if wanted. Æsh can be configured to read then +inputrc+ file on startup for custom editing properties. - this can all be disabled if wanted.

Built-in Commands

Æsh provides a few built-in commands

  • alias
  • unalias
  • man

They can all be enabled/disabled if wanted. The man command must be integrated into the running console to work properly. Read more in the documentation.

Pipeline and Redirect

Æsh support pipeline and redirection similar to POSIX terminals. The different out/err/in streams are provided in the API. This can be disabled if needed.


Æsh provide history support, both in-memory and to file. All can be enabled and disabled.


Æsh provide variable support similar to POSIX shells. The variables can be managed during runtime with the export command and/or from a file during startup.

Undo, Redo, Masking, Paste buffer, etc

- yes we have that as well....

back to top