environ-config
Boilerplate-free configuration with env variables.
Decision gist · record as of 2026-08-14
Yes. Low install friction, active maintenance, permissive license, no known vulnerabilities, and production-stable status make it a safe choice. Install if you need declarative, type-safe environment-based configuration with minimal boilerplate—especially valuable in containerized or cloud-native deployments following Twelve-Factor principles. Requires Python 3.10+.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later; support for Python 3.8 and 3.9 was removed in version 26.1.0.
- Low install friction—a pure Python wheel with only attrs as a runtime dependency.
- Actively maintained as of 23 days ago with production-stable status.
License · maintenance · safety
Apache-2.0 (permissive) — Apache 2.0 permissive license allows commercial and private use with minimal restrictions; suitable for most projects.
last release 2026-07-22 (23 days)
0 known vulnerabilities (OSV.dev, 2026-08-14) · 198,210 downloads/mo, #9,736 on PyPI
Alternatives
Verify before relying
pip install environ-config
import environ
@environ.config(prefix="APP")
class AppConfig:
env = environ.var()
debug = environ.bool_var()
cfg = environ.to_config(AppConfig, environ={"APP_ENV": "prod", "APP_DEBUG": "no"})- Whether boto3 is automatically installed for AWS Secrets Manager support or must be added separately.
- Performance characteristics when dealing with large numbers of environment variables or deeply nested config structures.
What it is and what it does
environ-config is a Python library that maps environment variables into typed, validated configuration objects using declarative class definitions. It builds on attrs to provide automatic data validation and conversion, eliminating boilerplate code typically needed for environment-based config. The package follows the Twelve-Factor App methodology and supports nested configuration from flat environment variable names, default and mandatory values, and pluggable secrets extraction from HashiCorp Vault, AWS Secrets Manager, or INI files.
You define your config as a class with environ.var() and environ.bool_var() fields, optionally nested with environ.group(), then call environ.to_config() to populate it from os.environ or a custom dict. The library handles type conversion (e.g., string to int), boolean parsing (recognizing 'true', 'yes', '1'), and validation through attrs converters and validators. It also generates helpful debug logging showing which variables are present and what the library is looking for.
Use it for
- Manage multi-environment application settings (dev, staging, prod) by reading from environment variables without hardcoding or config files.
- Extract database credentials and API keys from Vault or AWS Secrets Manager into a typed config object with validation.
- Build nested configuration hierarchies (e.g., separate DB, cache, and logging sections) from flat environment variable names.
- Enforce required config fields and provide sensible defaults without writing validation logic.
- Generate dynamic help documentation for environment variables your application expects.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Low install friction, active maintenance, permissive license, no known vulnerabilities, and production-stable status make it a safe choice. Install if you need declarative, type-safe environment-based configuration with minimal boilerplate—especially valuable in containerized or cloud-native deployments following Twelve-Factor principles. Requires Python 3.10+.
Install
environ-config on PyPI
Before you install
Low install friction—a pure Python wheel with only attrs as a runtime dependency. Actively maintained as of 23 days ago with production-stable status.
Requires Python 3.10 or later; support for Python 3.8 and 3.9 was removed in version 26.1.0.
License in practice
Apache 2.0 permissive license allows commercial and private use with minimal restrictions; suitable for most projects.
Quickstart
pip install environ-config
import environ
@environ.config(prefix="APP")
class AppConfig:
env = environ.var()
debug = environ.bool_var()
cfg = environ.to_config(AppConfig, environ={"APP_ENV": "prod", "APP_DEBUG": "no"})
Verify before relying
- Whether boto3 is automatically installed for AWS Secrets Manager support or must be added separately.
- Performance characteristics when dealing with large numbers of environment variables or deeply nested config structures.
Package facts
| License | Apache-2.0 permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packageattrs |
| Maintenance | Actively maintained 23 days since the last release |
| First released | |
| Downloads | 198,210 / month, #9,736 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableLicense :: OSI Approved :: Apache Software LicenseProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.15Typing :: Typed |
Evidence: environ_config-26.1.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “twelve factor app config”
- environ-configLoads application configuration from environment variables using…
- envparseParses environment variables with optional type casting, defaults,…
- vyper-configVyper provides a unified configuration system for Python applications…
Give your agent the search over MCP, or paste the wish link into any chat.
More Software Development packages
Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.
See also dynaconf · typed-settings · envier · typed-config · hvac · pydantic-settings · pytest-dotenv · attrs · environ · sample-helper-aws-appconfig