Most operations can be performed from the keyboard. Selection can be moved using the arrow keys. Up/down moves the selection line by line, wile left/right will move the selection into nested sub-expressions. Elements may be inserted using the first letter of the element in question: 'c' for conditionality, 'm' for matrix generality, etc. If a dropdown is shown, such as for selecting a letter judgment, the arrow keys and enter work for that as well -- or you can hit the respective keyboard key instead.
If a placeholder (i.e., a little red box) is selected, the new node will replace it.
If only a sub-expression is selected, then the new node will replace only that part of the line.
If an entire line is selected, but only a single line is allowed in the context of the selection, such as the test for an conditionality, the selected line will be replaced.
If a line is selected in a context which allows multiple lines, such as the main program, the body of a generality or the consequent of an conditionality, the new node will be inserted after the selected line.
However, if you hold shift for the insertion, it will be inserted before the selected line.
If nothing at all is selected, then the new node will be inserted at the end of the program.
Hitting [DEL] will delete any selection that isn't a placeholder. If the selection was a sub-expression within the line, that sub-expression will be replaced with a new placeholder.
The code will not be runnable until all the placeholders are filled. Once the backend code can be generated, the "Run program" button under the console will be activated. Likewise, any syntax errors in manually-entered expressions (such as referencing non-existent letters) will cause the execution to fail.