fennel - Man Page

a lisp programming language that runs on Lua


fennel [--repl] | [--compile filename] | [--eval source] | [filename] [args ...]


This manual page documents briefly the fennel command.

fennel is the main entry point for Fennel, a lisp programming language that runs on Lua runtimes. With no options or arguments, it runs an interactive Read-Eval-Print loop (REPL).

Given a filename as its first argument, it runs that file and passes it the subsequent arguments. Ahead-of-time compilation can be invoked with the --compile flag.


A summary of options is included below.


Start an interactive repl session.

--compile filename

Perform ahead-of-time compilation on the provided file and write the Lua output to stdout.

--eval source

Evaluate a piece of source code and print the result.


When running a repl or a file, fennel.searcher is installed by default so that the require function can load Fennel files in addition to Lua files. This flag disables that behavior. Has no effect for ahead-of-time compilation.

--indent val

When compiling, use the given string as indentation for the compiler output. This should consist of whitespace.

--add-package-path path

Add the given path to package.path so that the require function will know to look there when searching for Lua modules.

--add-fennel-path path

Same as above, but for Fennel's path used when searching for Fennel modules.

--globals VAR1[,VAR2...]

Allow VAR1, VAR2, etc as globals in addition to the standard set of globals. This enables strict global checking even in ahead-of-time compilation where it otherwise would be disabled.

--globals-only VAR1[,VAR2...]

Same as above, but without the addition of the standard set of globals.


Instead of loading required modules at runtime, compile them inline into the main file being compiled. Only useful during ahead-of-time compilation.


Compile bitwise operations to use LuaJIT's bitop library instead of Lua 5.3+ bitwise operators.

--load FILE

Load the specified file before any command is run.

--compile-binary FILE OUT LUA_LIB LUA_DIR

Compile FILE to a standalone binary OUT using LUA_LIB and the Lua header files in LUA_DIR. See --compile-binary --help for details.


Do not limit compiler environment to minimal sandbox.

-h,  --help

Print a help message and exit

-v,  --version

Print the version number and exit


See https://fennel-lang.org for documentation on Fennel. The syntax is based on the lisp family of languages while the semantics are very close to Lua, so Lua's reference manual is helpful.


The mailing list is at https://lists.sr.ht/~technomancy/fennel while the issue tracker is at https://todo.sr.ht/~technomancy/fennel.


Calvin Rose and contributors: https://git.sr.ht/~technomancy/fennel/contributors


Copyright © 2016-2021, Released under the MIT/X11 license