Hey everyone!
For the past year, I’ve been building Forest, a package manager and registry designed for Roblox developers, teams, and package authors.
Forest gives you a central place to discover, install, publish, and manage reusable packages without manually copying modules between projects or maintaining your own package registry.
Website: https://forest.dev
Documentation: https://docs.forest.dev
What does Forest actually do?
Forest consists of a package registry and a command-line tool.
You run the Forest CLI from your project folder, and it installs packages as normal files on disk alongside a forest.json manifest and forest-lock.json lockfile.
forest install evaera/promise
Forest does not run inside Roblox Studio or modify your place file. For Roblox projects, the installed package files can be synced into Studio using your existing workflow, commonly through Rojo.
That means Forest fits into a normal source-controlled project instead of trying to replace the rest of your tooling.
How does Forest compare to Wally?
Wally is an important part of the Roblox ecosystem, and Forest would not exist without the package ecosystem it helped establish.
Forest is not trying to dismiss or replace that work. It is designed to provide a more complete package-management platform around the same core idea.
The main differences are:
- A first-party hosted registry and website for discovering, inspecting, and managing packages
- Private packages without requiring teams to operate their own registry
- Studio accounts with members, roles, and package permissions
- Cross-platform support for both Roblox and UEFN
- Package license visibility and clearer package metadata
- Built-in integrity verification using hashes recorded in the lockfile
- Existing Wally packages available immediately through Forest’s mirror
For individual Roblox developers, the biggest improvement is that Forest provides one place to find packages, read their documentation, inspect their metadata, install them, and manage the packages they publish.
For teams, the larger difference is private package hosting and centralized access control. You can manage who belongs to a Studio, what they can access, and which packages they can publish without building and maintaining that infrastructure yourself.
Forest also installs packages as ordinary files on disk, so it works with existing tools such as Rojo rather than requiring a completely different project workflow.
A common pain point with existing Roblox package managers is losing Luau type information. Wally generates link modules in the package index, which breaks type resolution unless you run an extra tool like wally-package-types after every install. Forest installs each package as its actual source files at the top level of your Packages folder, so require resolves types natively in Luau tooling with no extra steps and no generated link modules.
Forest aims to be the complete package-management platform around what modern teams need: discovery, private packages, team management, security, and support for more than one development ecosystem.
How does Forest compare to pesde?
pesde is another a well-built open source tool with its own community registry, and it focuses on the Luau language across multiple runtimes (Roblox, Lune, and standalone Luau).
Forest takes a different approach: it is a hosted platform rather than a tool you bring infrastructure to. The registry, website, accounts, and access control are all first-party, which is what enables things like private packages without running your own registry, Studios with roles and package permissions, license detection and review on every package, the verified open source publish/download pipeline, and the synced Wally mirror with scope claiming. Forest also supports UEFN, which sits outside the Luau ecosystem entirely.
If you want a flexible multi-runtime Luau tool and are happy operating your own infrastructure for private use, pesde is a solid choice. If you want a batteries-included registry with discovery, teams, and private packages handled for you, that is what Forest is built for.
Existing Roblox packages are already available
A package manager is not particularly useful when its registry starts empty, so Forest mirrors eligible open-source packages from the Wally registry.
Mirrored packages contain the original files published by their authors. Their existing scope names are reserved, new Wally releases are kept in sync, and original authors can claim their scope by verifying the associated GitHub account.
Check out the available packages here: https://forest.dev/search
Dependencies, version ranges, lockfiles, and integrity verification work the same way for mirrored and native Forest packages.
More information about mirroring is available here: Mirrored Packages | Forest PM Docs
Features
- Public and private packages
- Semantic versioning and dependency resolution
- Reproducible installs through lockfiles
- Package discovery through the Forest registry
- Organizations, called Studios, with members, roles, and package permissions
- License detection and visibility
- SHA-256 integrity verification for downloaded packages
- Windows, macOS, and Linux support
Everything above is free for individual developers, including 10 private packages and Studios with up to 5 members. There is a single flat Pro plan for larger teams. Details: Pricing · Forest
Package security and transparency
We believe package managers deserve a higher level of scrutiny than most developer tools. They download code and place it directly into your project, so “just trust the server” is not a great answer.
Every part of Forest’s pipeline that handles package files is open source, including:
- The Forest CLI
- The package publishing and download gateway
- The package CDN worker
The CLI verifies the SHA-256 hash of every package archive against the integrity value stored in your lockfile and refuses to install files that do not match.
You can read more about the open-source pipeline here: Open Source | Forest PM Docs
Getting started
You can install the CLI from our download page
Then:
forest i username/packageName
(forest i is shorthand for forest install)
The full setup and package authoring guides are available in the documentation:
Using Forest with AI assistants
The registry exposes a public JSON API, so AI tools like Claude Code, Cursor, and ChatGPT can search for packages, read their readmes and license information, and even inspect a package’s source files before recommending anything.
If you use a coding agent, point it at https://forest.dev/llms.txt, or see the guide at Forest for AI Agents | Forest PM Docs for a copy-paste snippet for your project’s CLAUDE.md or AGENTS.md.
Why build another package manager?
Forest started because I wanted to make package management on Roblox safer and more accessible, and cultivate an ecosystem that lets users spend more time building, and less time worrying about their tooling.
Wally proved that package management works well for Roblox. Forest is an attempt to build on that foundation with hosted accounts, private packages, team permissions, package discovery, license information, an independently verifiable package pipeline, and support for platforms beyond Roblox.
This is still an actively developed project, and feedback from people actually using it is far more useful than another month of me arguing with myself about API naming.
I would especially appreciate feedback around:
- The installation and migration experience
- Package layout and dependency behavior
- Features needed by larger Roblox teams
- Missing documentation
- Packages you would like to publish or see supported
You can explore Forest at https://forest.dev and read the documentation at https://docs.forest.dev.
Thanks for taking a look!

