How to Install, Set Up, And Get Started Coding With The Lua Programming Language - On macOS

A List For 2025

By Rob Rockwell

Lua is a compact, high-speed scripting language prized for its tiny footprint and seamless embeddability. Initially created for embedded systems and game development, it now powers everything from web servers and IoT devices to popular engines like Roblox and frameworks such as LÖVE. With its straightforward syntax and robust metaprogramming features, Lua shines in scenarios where both performance and simplicity are essential.

Whether you’re embedding a flexible scripting layer into C/C++ applications or taking your first steps into programming, Lua makes an excellent choice on macOS. In this guide, we’ll cover installing Lua via Homebrew, setting up your development environment, running your inaugural scripts, and leveraging LuaRocks to handle libraries and dependencies with ease.

Retro Mainframe Smiling Guy Install Lua

Lua Prerequisites

macOS does not include Lua by default, but it does provide the tools needed to install it easily. Ensure you have the Xcode Command Line Tools installed, which include compilers and build utilities required for Homebrew and LuaRocks:

xcode-select --install

Next, install Homebrew if you haven’t already, as it simplifies the installation of Lua and related packages:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Installing Lua

With Homebrew ready, installing Lua is straightforward. This command installs the latest stable Lua release and makes the lua and luac binaries available in your shell:

brew install lua

After installation, verify by running:

lua -v

You should see output like Lua 5.4.x, confirming your installation.

Using LuaRocks or Docker for Environment Management

LuaRocks is the primary package manager for Lua modules. Install it via Homebrew to easily add and manage libraries:

brew install luarocks

Then install modules as needed, for example:

luarocks install luasocket

If you prefer isolated or reproducible environments, you can use Docker instead of installing locally. For example, to launch a Lua REPL in a container:

docker run -it --rm lua:latest lua

This runs the official Lua Docker image and drops you into an interactive shell without affecting your host system.

Verifying Your Installation

After installing Lua, open a new Terminal window and check the version to confirm it’s correctly installed:

lua -v

You should see output like Lua 5.4.x. If you get an error, ensure that Homebrew’s bin directory (/usr/local/bin or /opt/homebrew/bin on Apple Silicon) is in your PATH.

Setting Up LuaRocks for Package Management

LuaRocks is the official package manager for Lua, used to install and manage libraries (called rocks). Verify it’s installed with:

luarocks --version

To install a rock, for example luasocket, run:

luarocks install luasocket

Using the Lua Interpreter

The Lua interpreter provides a REPL (Read–Eval–Print Loop) for interactive coding and testing. Launch it by typing:

lua

At the >> prompt, you can enter Lua statements, for example:

>> print("Hello, Lua on macOS!")

Exit the REPL by typing os.exit() or pressing Ctrl+D.

Writing Your First Lua Script

Open your preferred text editor (such as Visual Studio Code, Sublime Text, or Vim) and create a new file named hello.lua. Add the following code to print a greeting:

print("Hello, Lua on macOS!")

Save the file, then in your Terminal navigate to its directory and run:

lua hello.lua

If everything is set up correctly, you’ll see Hello, Lua on macOS! printed to the console.

Configuring Your Editor or IDE

For a streamlined Lua development experience, install a Lua extension or plugin in your editor. In Visual Studio Code, search the Extensions pane for “Lua” (e.g., the sumneko.lua extension) to enable syntax highlighting, IntelliSense, and debugging support.

Be sure to configure your editor to use the correct Lua interpreter path (usually /usr/local/bin/lua or /opt/homebrew/bin/lua on Apple Silicon). This ensures “Run” commands and integrated terminals execute the right version of Lua.

Creating a Basic Lua Project

To start a new Lua project, create a dedicated directory and add your entry-point script. In Terminal, run:

mkdir my_lua_app  
cd my_lua_app  
touch init.lua

Inside `init.lua`, you can organize your code into modules. For example, create a `utils.lua` file with helper functions and then require it in `init.lua`:

-- utils.lua  
local M = {}  
function M.greet(name)  
  return "Hello, " .. name  
end  
return M

-- init.lua  
local utils = require("utils")  
print(utils.greet("World"))

Next Steps and Learning Resources

Once your basic project is set up, explore community-driven libraries on LuaRocks to add functionality like networking (`luasocket`) or parsing (`lpeg`). You can manage these dependencies with:

luarocks install luasocket

For deeper learning, consult the official Lua 5.4 Reference Manual and the free online book Programming in Lua. Engage with the community on the r/lua subreddit and Stack Overflow’s Lua tag to ask questions and share your projects.

Enroll in our revolutionary Code Visualization course!