envier
Python application configuration via the environment
Decision gist · record as of 2026-08-14
Yes. Envier is a lightweight, actively maintained library with no dependencies, permissive licensing, and solid Python version coverage. It solves a real problem—declarative, typed environment configuration—cleanly and with minimal friction. Install it if your application reads configuration from environment variables and you want type safety and cleaner code than manual os.environ parsing.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Low install friction with no runtime dependencies.
- Actively maintained as of 2026-08-06 with recent releases; supports Python 3.7 through 3.13.
License · maintenance · safety
permissive license (permissive) — MIT License permits unrestricted use, modification, and distribution with minimal restrictions—suitable for both open-source and commercial projects.
last release 2024-10-22 (661 days) · last repo commit 2026-08-06 · 9 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 40,534,632 downloads/mo, #681 on PyPI
Alternatives
Verify before relying
from envier import Env
class GlobalConfig(Env):
__prefix__ = "myapp"
debug_mode = Env.var(bool, "debug", default=False)
service_host = Env.var(str, "service.host", default="localhost")
service_port = Env.var(int, "service.port", default=3000)
config = GlobalConfig()
print(config.service_port)- Whether the mypy plugin integration works with current mypy versions without additional configuration beyond adding envier.mypy to plugins.
- Performance characteristics when dealing with large configuration hierarchies or frequent instantiation.
- Support for environment file loading (listed as a roadmap item but unclear if implemented in 0.6.1).
What it is and what it does
Envier is a configuration library that reads environment variables into typed Python objects using a declarative class-based syntax. You define a class that inherits from Env, declare variables with Env.var() specifying their type and environment variable name, and instantiate it to get a config object with those values automatically loaded and converted from the environment.
The library supports nested configuration namespaces by composing Env subclasses, automatic type conversion (bool, int, str, etc.), default values, and derived fields computed from other config values. It includes an optional mypy plugin for static type checking of config access. With no runtime dependencies and support for Python 3.7 through 3.13, it's lightweight and compatible across modern Python versions.
Use it for
- Build 12-factor-compliant applications that read all configuration from environment variables with type safety.
- Organize complex multi-service configurations into nested namespaces matching your application architecture.
- Add static type checking to environment-based config using the mypy plugin to catch config access errors at lint time.
- Replace ad-hoc os.environ parsing with a declarative schema that documents required and optional configuration.
- Deploy containerized applications where environment variables are the primary configuration mechanism.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Envier is a lightweight, actively maintained library with no dependencies, permissive licensing, and solid Python version coverage. It solves a real problem—declarative, typed environment configuration—cleanly and with minimal friction. Install it if your application reads configuration from environment variables and you want type safety and cleaner code than manual os.environ parsing.
Install
envier on PyPI
Before you install
Low install friction with no runtime dependencies. Actively maintained as of 2026-08-06 with recent releases; supports Python 3.7 through 3.13.
License in practice
MIT License permits unrestricted use, modification, and distribution with minimal restrictions—suitable for both open-source and commercial projects.
Quickstart
from envier import Env
class GlobalConfig(Env):
__prefix__ = "myapp"
debug_mode = Env.var(bool, "debug", default=False)
service_host = Env.var(str, "service.host", default="localhost")
service_port = Env.var(int, "service.port", default=3000)
config = GlobalConfig()
print(config.service_port)
Verify before relying
- Whether the mypy plugin integration works with current mypy versions without additional configuration beyond adding envier.mypy to plugins.
- Performance characteristics when dealing with large configuration hierarchies or frequent instantiation.
- Support for environment file loading (listed as a roadmap item but unclear if implemented in 0.6.1).
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.7 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 661 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 40,534,632 / month, #681 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: MIT LicenseProgramming Language :: PythonProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9 |
Evidence: envier-0.6.1-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 › “12-factor app config”
- envierEnvier extracts application configuration from environment variables…
- everettEverett is a configuration library that reads settings from…
- 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.
Similar packages
Builds a configuration store by layering multiple sources (files, environment variables, command-line arguments) with support for YAML, TOML, and JSON formats, exposing the result as nested Python data types.
Everett is a configuration library that reads settings from environment variables, .env files, INI, YAML, and other sources, with support for type parsing, validation, and automated documentation.
No—not for new projects.
environs parses environment variables into typed Python objects with validation, supporting common types like integers, booleans, dates, and collections, while optionally loading from .env files without mutating os.environ.
Loads application configuration from environment variables using declarative Python classes, with support for nested config, type conversion, validation, and pluggable secrets extraction.
Configures CORS settings for FastAPI applications via environment variables, with optional health-check endpoint.
chz is a configuration management library that handles command-line parsing, validation, and serialization of configuration objects with type checking and immutability support.
See also python-dotenv · django-appconf · dataclass-wizard · appdata