Pragtical is a Lua scriptable editor built with Meson
The practical and pragmatic code editor.
At a glance
- What is it?
- Pragtical is a cross-platform code editor written mostly in Lua, with an SDL front end and a Meson build that can pull every dependency in as a subproject. The trade is that the build wraps a chain of dependencies rather than using system packages, and that plugins live in a separate repository from the editor core.
- Who is it for?
- Pragtical suits a developer who wants an editor they can extend by writing Lua rather than by waiting for a plugin to be written in C, and who is comfortable with a Meson toolchain and a dependency stack that builds from source.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 6 days ago.
- What is it written in?
- Mainly Lua, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 20, 2026, and from our analysis. They are not legal advice.
Editorial analysis
An editor whose own source is mostly Lua
The problem Pragtical addresses is extension. A code editor that ships a plugin API is only as good as the plugins written for it, and plugins written in C or C++ are a barrier for a lot of people. Pragtical is built with that in mind, and the repository's primary language is listed as Lua, with the topic tags covering code, cross-platform, editor, liteweight, luajit and sdl. The SDL tag is the front end and the LuaJIT tag is the runtime, which together explain the shape of the project. The intended user is a developer who wants a light editor with an embedded scripting language, and the description calls it the practical and pragmatic code editor, a claim that reads as a positioning statement rather than a feature. Pre-built releases are published for Windows, Linux and Mac OS, so you do not have to build it to try it.
The Meson build pulls every dependency in as a subproject
The build is Meson, and the specific invocation matters more than it usually does, because of the wrap mode. The setup step uses the forcefallback wrap mode and sets the portable flag to true:
meson setup --wrap-mode=forcefallback -Dportable=true build
meson compile -C buildThe README explains both choices. Forcefallback makes Meson download and build all the dependencies, which takes longer, and if you already have every dependency installed on your system you can skip the flag. The portable flag makes the install process generate a directory structure that is easily relocatable, which is what lets the finished directory be moved or renamed without breaking. The repository layout backs this up, with a subprojects/ directory for the dependency wraps, a meson_options.txt for the options, a meson.build at the root, and a build-packages.sh script for packaging the results.
Installing means installing a directory, not a package
The install step is deliberately simple because the build step did the work. Running meson install with a destdir produces a new directory:
meson install -C build --destdir ../pragticalcalled pragtical, that contains the executable and all the necessary files to run the editor, and the README says you can move or rename that directory however you wish. That relocatability is the payoff of the portable flag, and it is the reason the project can ship a single archive per platform. The documentation for more detailed instructions lives at pragtical.dev under the setup and building pages, and the README points there. The three download options are separate things worth keeping apart: the editor itself from the releases page, plugins from a separate plugins repository, and colour themes from another, with the themes bundled with all releases of the editor by default.
Plugins live in their own repository, not in the editor
The contribution model is a two-track decision that the README lays out clearly. Pull requests to improve or modify the editor itself are welcome directly in this repository. Additional functionality is added through a plugin by sending a pull request to the plugins repository instead. And if you think the functionality belongs in the core editor, the instruction is to open an issue so it can be discussed. The practical effect is that the plugin repository is where the ecosystem grows, and the core stays small. That is a deliberate division, and it is worth knowing before you fork, because a fork that merges plugins into the core ends up maintaining a merge stream the project does not. There is also a changelog file in the repository where a list of changes is registered, and a Discord server linked from the README.
The licences directory tracks the dependency licences
The licensing section is short and points somewhere specific. The project is free software, and you can redistribute it and modify it under the terms of the MIT license, with details in the LICENSE file. Then there is the licences directory for details on licenses used by the required dependencies. That directory existing at all is the interesting part, because a Lua and SDL editor is not a self-contained program, and an editor that bundles a Lua interpreter, an SDL layer and a set of font and image assets is redistributing more than its own source. A per-dependency licence inventory is the kind of housekeeping that usually gets skipped and then regretted, so it is a reasonable signal about how the project is run. The topics also show that the project descends from the liteweight lineage of editors, which is useful context for the embedded Lua runtime choice.
Release naming has a rolling track and a version track
The release list is unusual and worth reading carefully, because it has two parallel tracks. There is a rolling release named Pragtical rolling, and there are numbered releases, v3.13.1 tagged on 2026-10-02 and v3.13.0 on 2026-09-24. The rolling tag is tied to a continuous integration workflow, the Build Rolling badge in the README points at a rolling.yml workflow, and the rolling release in the list carries a date of 2024-08-23, which is what a continuously rebuilt artefact looks like when the tag is reused rather than versioned. The numbered line is what you would pin if you wanted a fixed build, and the gap between the two tagged dates in the list, 2026-09-24 and 2026-10-02 for v3.13.0 and v3.13.1, is a two week release cadence for the stable line. The default branch is master and the last push to the repository was on 2026-10-16, so the work is current.
Editorial conclusion
Pragtical suits a developer who wants an editor they can extend by writing Lua rather than by waiting for a plugin to be written in C, and who is comfortable with a Meson toolchain and a dependency stack that builds from source. It does not suit someone who wants a zero-dependency install from a package manager, since the recommended build downloads and compiles the dependency chain, and it does not suit a project where the plugin ecosystem has to live in the same repository as the core. Before adopting, read the build instructions at pragtical.dev and confirm the dependency set builds on your platform, and note that the last push to the repository was on 2026-10-16 with release v3.13.1 tagged on 2026-10-02.
Frequently asked questions
How do I build Pragtical from source?
Clone the repository, then run `meson setup --wrap-mode=forcefallback -Dportable=true build` followed by `meson compile -C build`, and install with `meson install -C build --destdir ../pragtical`. The forcefallback wrap mode downloads and builds all the dependencies, which takes longer, and the portable flag produces a relocatable directory.
Do I have to build Pragtical to use it?
No. Pre-built releases are published for Windows, Linux and Mac OS on the releases page, and colour themes are bundled with all releases by default. Plugins are downloaded separately from the plugins repository.
Where do I add new functionality to Pragtical?
Through a plugin, by sending a pull request to the separate plugins repository. If you think the functionality belongs in the core editor, the README asks you to open an issue so it can be discussed instead.
What licence is Pragtical released under?
The editor is MIT licensed, and you can redistribute and modify it under those terms, with details in the LICENSE file. The README also points at a licenses directory for the licences of the required dependencies, which the project tracks separately.
What is the difference between the rolling and numbered Pragtical releases?
The project maintains two tracks. A rolling release is produced by a continuous integration workflow and is a continuously rebuilt artefact, while numbered releases such as v3.13.1 and v3.13.0 are the stable line, tagged on 2026-10-02 and 2026-09-24 respectively. The rolling tag is reused rather than versioned.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/pragtical-pragtical)