---
name: "fennel"
section: "1"
platform: "linux"
package: "fennel"
version: "1.6.1-3"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/fennel"
---

# fennel(1)

a lisp programming language that runs on Lua

## NAME

fennel - a lisp programming language that runs on Lua

## SYNOPSIS

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

## DESCRIPTION

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, while short snippets can be evaluated with the **--eval** argument.

## OPTIONS

A summary of options is included below.

- **--repl**

  Start an interactive repl session. This is the default when given no arguments.

- **--compile *filename***

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

- **--eval *source***

  Evaluate a given piece of source code and print the result.

- **--no-searcher**

  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.

- **--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. Use "\*" to disable globals checking.

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

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

- **--require-as-include**

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

- **--to-be-closed**

  When compiling **with-open** use the to-be-closed feature of Lua 5.4+ to avoid interfering with traces.

- **--assert-as-repl**

  Calls to the built-in function **assert** from Fennel will be replaced with calls to **assert-repl** so that when the assertion fails, a REPL will be started in which you can interactively debug.

- **--lambda-as-fn**

  Replace **lambda** function definitions with **fn,** removing the runtime overhead from arity checking.

- **--use-bit-lib**

  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.

- **--no-compiler-sandbox**

  Do not limit compiler environment (used in macros) to minimal sandbox.

- **--keywords *KEYWORD1\[,KEYWORD2...\]***

  Treat these symbols as reserved Lua keywords.

- **-h, --help**

  Print a help message and exit

- **-v, --version**

  Print the version number and exit

Use the NO\_COLOR environment variable to disable escape codes in error messages.

## SEE ALSO

[*fennel-api*(3)](/fennel-api/3.md), [*fennel-reference*(5)](/fennel-reference/5.md), [*fennel-tutorial*(7)](/fennel-tutorial/7.md)

The semantics are very close to Lua, so Lua's reference manual is also helpful.

## COMMUNITY

The mailing list is at https://lists.sr.ht/~technomancy/fennel while the issue tracker is at https://dev.fennel-lang.org. Most discussion happens on the #fennel channel of Libera chat.

## AUTHORS

Calvin Rose and Phil Hagelberg and contributors: https://github.com/bakpakin/Fennel/graphs/contributors

## LICENSE

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