awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
cosmiconfig avatar

cosmiconfig/cosmiconfig

0
View on GitHub↗
4,154 stars·143 forks·TypeScript·MIT·18 views

Cosmiconfig

Cosmiconfig is a Node.js configuration loader used to find and load application settings from package manifests, rc files, and TypeScript modules. It functions as a directory-tree search tool and multi-format config parser that converts settings into JavaScript objects.

The system distinguishes itself through a configuration transformation engine that supports merging base configurations and applying custom functions to parsed results. It employs a memoized transformation cache to store these results in memory, reducing filesystem overhead and avoiding repeated expensive computations.

The library covers broad capability areas including multi-format parsing for JSON, YAML, JS, and TypeScript, as well as upward-traversal directory search for locating files based on custom naming patterns. It also provides a pluggable parser interface to support non-standard file formats via user-defined loader functions.

Features

  • Application Configuration Management - Provides centralized management of application settings by loading and merging diverse files and formats into a unified object.
  • Node.js Application Configurations - Provides a comprehensive library for finding and loading application settings within the Node.js runtime.
  • Configuration Discovery Tools - Functions as a directory-tree search tool that traverses the filesystem upwards to locate configuration files.
  • Configuration Discovery - Searches the directory tree upwards from a starting point to locate configuration files using a defined strategy.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI
  • Hierarchical Configuration Search - Implements a hierarchical search to find the closest configuration file by traversing the directory tree upwards.
  • Tool Behavior Configurations - Manages developer tool settings via rc files or package manifests to ensure consistency across environments.
  • Upward Directory Traversals - Implements an upward-traversal search to find the nearest configuration file relative to the project root.
  • Multi-Source Configuration Loaders - Reads configuration settings from multiple heterogeneous sources such as package manifests, rc files, and TypeScript modules.
  • Multi-Format Config Parsers - Parses configuration settings from multiple formats like JSON, YAML, and TypeScript into JavaScript objects.
  • Multi-Format Configuration Loading - Loads application settings from diverse formats including JSON, YAML, JavaScript, and TypeScript.
  • Hierarchical Configuration Merging - Provides mechanisms for merging local settings with inherited base configurations to resolve final application options.
  • Configuration Lookup Caches - Implements in-memory caching of filesystem reads and configuration resolutions to reduce repeated I/O overhead.
  • Computational Result Caching - Caches the output of configuration transformation functions to avoid repeated expensive computations.
  • Configuration Inheritance - Supports merging local configuration files with shared base files to maintain consistent defaults across projects.
  • Configuration Search Patterns - Allows definition of specific filenames or patterns to be used during the configuration file search process.
  • Transformation Engines - Includes a transformation engine that applies custom functions to parsed configuration and caches the results.
  • Custom Configuration Loaders - Provides a mechanism to extend the loading process with user-defined functions for non-standard file formats.
  • Extension-Based Loader Mappings - Implements a mapping system that connects file extensions to their corresponding parsing functions for formats like YAML and JSON.
  • Value Extraction - Retrieves specific configuration values from properties or nested paths within a project's package manifest.
  • Property Extraction - Enables retrieval of specific configuration objects nested within project manifest files such as package.json.
  • Memoization Caches - Uses a memoized cache to store the results of expensive parsing and transformation operations in memory.
  • Pluggable Parsers - Offers a pluggable parser interface that allows users to register custom loader functions for non-standard file formats.
  • Star history

    Star history chart for cosmiconfig/cosmiconfigStar history chart for cosmiconfig/cosmiconfig

    How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

    Frequently asked questions

    What does cosmiconfig/cosmiconfig do?

    Cosmiconfig is a Node.js configuration loader used to find and load application settings from package manifests, rc files, and TypeScript modules. It functions as a directory-tree search tool and multi-format config parser that converts settings into JavaScript objects.

    What are the main features of cosmiconfig/cosmiconfig?

    The main features of cosmiconfig/cosmiconfig are: Application Configuration Management, Node.js Application Configurations, Configuration Discovery Tools, Configuration Discovery, Hierarchical Configuration Search, Tool Behavior Configurations, Upward Directory Traversals, Multi-Source Configuration Loaders.

    Which projects share features with cosmiconfig/cosmiconfig?

    Projects with overlapping indexed features include: lightbend/config — This is a configuration library for JVM applications that parses HOCON, JSON, and Java properties files into an… dynaconf/dynaconf — Dynaconf is a configuration management library for Python applications that provides a unified system for loading,… node-config/node-config — This is a configuration manager for Node.js applications that handles hierarchical settings across different… symfony/config — This project is a PHP configuration management library used to define, load, and validate application settings. It… symfony/dependency-injection — This project is a PHP dependency injection container and framework designed to centralize object construction and… davidanson/markdownlint.

    Projects sharing features with Cosmiconfig

    These projects share indexed features with Cosmiconfig. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
    • lightbend/configlightbend avatar

      lightbend/config

      6,309View on GitHub↗

      This is a configuration library for JVM applications that parses HOCON, JSON, and Java properties files into an immutable tree structure. It resolves ${...} placeholders by traversing the configuration tree and falling back to environment variables and system properties, and validates loaded configurations against a reference schema. The library loads configuration from classpath resources, files, URLs, system properties, and environment variables, merging them with priority-based override semantics. It provides typed value access with automatic type coercion, supports dot-path navigation,

      Javaconfiguration-libraryhoconsupported
      View on GitHub↗6,309
    • dynaconf/dynaconfdynaconf avatar

      dynaconf/dynaconf

      4,308View on GitHub↗

      Dynaconf is a configuration management library for Python applications that provides a unified system for loading, validating, and managing settings. It aggregates configuration data from multiple files, environment variables, and external stores into a single object using a defined precedence order. The project distinguishes itself through a layered environment manager that separates settings into distinct profiles, such as development and production. It includes a declarative validation framework to enforce data rules and type constraints during the loading process, as well as an external s

      Python
      View on GitHub↗4,308
    • node-config/node-confignode-config avatar

      node-config/node-config

      6,427View on GitHub↗

      This is a configuration manager for Node.js applications that handles hierarchical settings across different deployment environments. It functions as an environment-based loader and settings parser that merges default configurations with overrides based on the current runtime context and hostname. The project distinguishes itself through a priority-based merge strategy that incorporates environment variables, command-line arguments, and external data sources to supersede file-based settings. It supports multi-format parsing for JSON, YAML, JavaScript, and TypeScript files, and allows for cust

      JavaScriptconfigdeploymentproperties
      View on GitHub↗6,427
    • symfony/configsymfony avatar

      symfony/config

      4,280View on GitHub↗

      This project is a PHP configuration management library used to define, load, and validate application settings. It functions as a configuration merging engine and a schema validator, ensuring that software behaves consistently across different installations. The library acts as a multi-format configuration loader that converts settings from various file types, such as YAML and XML, into a standardized internal format. It allows for the establishment of formal configuration schemas with validation rules and default values to prevent runtime errors caused by invalid inputs. The system supports

      PHPcomponentphpsymfony
      View on GitHub↗4,280
    Compare all 30 related projects→