Configurator
@versionzero/configurator
https://github.com/argh/configurator
Introduction
A schema-based configuration management library for Node.js applications that exposes a rich API for customization and extension.
Developers have control over the entire configuration pipeline, from input to output.
Philosophy
Unlike command-line oriented libraries that focus solely on expressive argument parsing, Configurator takes a data-first approach, and focuses on the "correctness" of the configured data that will be consumed by your application and its subsystems.
The idea is that if the configuration system offers a strong contract for validating inputs against well-defined configurable fields, then the output can be trusted, and treated more like a data model. The final populated configuration should be exactly what was expected, no more, no less.
(Configurator's command-line processing is still highly expressive, but is constructed automatically by introspecting the configuration schema's structure and custom metadata!)
Architecture
The architecture is straightforward, and was driven by two principles:
- Sources of configuration data should be self-contained and composable.
- Data should pass through an extensible type-checking and validation system.

Requirements
- NodeJS 22.22.0+
- ESM Modules only
License
Copyright 2026 Version Zero | github.com/argh
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this library except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.