seal is a cross-platform scripting tool that emphasizes correctness, performance, and fun.
It can surreptitiously swap your one-off Python scripts and shell hacks for strictly-typed Luau, making your code easier to follow and maintain. Or you can use it to write a full application.
Some features:
- Faster than Python for general purpose scripting.
- seal projects are more scalable than shell scripts.
- Built in terminal manipulation for TUIs.
- Powerful multithreading.
- Best pretty printer in the business for dealing with nested data.
- All the standard compression and archive support you want but with safety and saner defaults.
- 1230 handcrafted error messages.
0.8.0 is adding some huge new features such as:
- archives
- customizable table formatting, more colors
- str.encoding/convert (utf-8 <-> different flavors of utf-16)
- const, classes, export syntax
Grab the latest release or check out these install instructions for a detailed walkthrough.
To get started, you just need:
- A text editor (VSCode, Zed, and nvim are supported by Luau Language Server).
- Luau Language Server installed in your editor.
- The seal executable in your
$PATH
To start a new project with seal, make a new directory, run seal setup project inside it, and open it up with code .
seal ./filename.luauruns a Luau file with seal.seal runruns the project at your current working directory.seal compilebundles and compiles the project at your current working directory into a standalone executable for your platform.
Check out the full usage instructions for more.
Check out the programming intro to get started or the standard library reference for all current features and APIs. In supported editors, you can take advantage of modern tooling such as strict typechecking and autocomplete, inline documentation, automatic imports, etc.
Some quick examples:
- HTTP - calling an API with API key
- FS - file watching (upload files added to folder)
- FS - remove files older than a week
- TUI - two column option picker
- More featureful
@extralibrary. - Custom and customizable
seal setupscripts. - Ecosystem of external libraries to expand seal's functionality with native bindings.
- Cross-platform GUI and input automation libraries.
- Dedicated tooling integrations such as extensions and an MCP server.
Join the Discord if you want to talk about seal, need help, or want to contribute!
seal wants to empower you to write correct code that doesn't explode at runtime. In most cases, runtime errors will be expressly documented, and/or returned as an error type to facilitate nonthrowing error handling with the typechecker.
If you encounter a bug, panic, or security vulnerability, please make an issue in this repo right away; you may attach a repro or send one privately to dev@deviaze.com or @deviaze on Discord.
