Lilconfig is a zero-dependency Node.js configuration search tool for finding and loading configuration files for a given app name. It provides both async and sync APIs, with customizable search options, and it supports custom loaders (for example, YAML) when you need formats beyond its default behavior.
Project status
- Maintenance status: The project appears stable and mature, but published updates are infrequent (latest shown update v3.1.3 dated 2024-12-03). A GitHub upstream push is noted on 2025-12-10, suggesting some ongoing activity, but release cadence since the last tagged update looks quiet.
- Update cadence (as evidenced by tags): Prior updates cluster in 2024 (v3.1.3 in Dec 2024, with earlier 2024 and 2023 tags), with no tagged updates shown after 2024-12-03, which is long relative to today (2026-06-09).
AI summary generated 2026-06-09
Recent updates
v3.1.3
2024-12-03v3.1.3 updates the JavaScript loading logic to better handle Windows paths. Specifically, dynamic imports now convert the provided specifier to a file URL before calling `import()`, enabling default JS loading from absolute filesystem paths on Windows.
Featuresv3.1.2
2024-06-09v3.1.2 is described as making lilconfig work as expected when a Node.js app is bundled with webpack. The code changes in this release specifically adjust how lilconfig performs dynamic loading under webpack, plus a tooling-only shift to Biome for linting/formatting in the repo.
v3.1.1
2024-02-18v3.1.1 is a security-focused release that removes the need for an eval-based dynamic import implementation by migrating the runtime source from TypeScript to plain JavaScript, while still shipping TypeScript types via index.d.ts. The release notes also mention a formatting change (tabs instead of spaces).
Securityv3.1.0
2024-02-14v3.1.0 adds built-in support for loading ESM configuration files, but only through the async API. It changes how config modules are discovered and loaded, adding dynamic import-based loaders for async mode and restricting default ESM search behavior for sync mode.
BreakingFeaturesv3.0.0
2023-11-19v3.0.0 introduces built-in caching to lilconfig, intended to speed up configuration lookups by reusing results within the same Node.js process. The release also drops support for older Node versions (v10, v12) and updates the package engines accordingly.
BreakingFeaturesv2.1.0
2023-03-02v2.1.0 extends lilconfig default configuration discovery to also look for `.config/<name>rc` files (and common JS/JSON variants). The intent is to better match cosmiconfig v7.1.0 search behavior.
Featuresv2.0.6
2022-07-10Release v2.0.6 primarily adds a missing LICENSE file. The accompanying diff also updates package version metadata and changes a dev dependency version in the lockfile, but there are no runtime code changes shown.
Featuresv2.0.5
2022-03-23v2.0.5 updates lilconfig to properly handle async user-provided loaders, enabling ESM-friendly configuration loading via custom loader functions (for example, using dynamic import). The main code change is that loader results are now awaited in the async `lilconfig` flow for both normal config files and the `package.json` path.
Featuresv2.0.4
2021-11-05v2.0.4 fixes how `lilconfig` and `lilconfigSync` handle relative paths passed to their `load` methods. The implementation now resolves the provided `filepath` against `process.cwd()` before parsing, reading, and delegating to loaders. Release notes also mention dev dependency updates and CI coverage for Node 14 and 16.
v2.0.3
2021-06-06v2.0.3 is a targeted patch that fixes how the library computes search paths when traversing toward the Unix root directory. The change ensures the last generated path is '/' instead of an empty string, so configuration file lookups at the root behave correctly.