1.0.1 Latest release released


The simplest yaml to ENV config loader.

Build Status

Envyable takes a config YAML file and loads the entries into your ENV hash. Keep your development environment clean of application specific configuration.


It is only recommended that you use Envyable in your development environment. There are better ways to set environment variables in production.

Add this to your application's shard.yml:

    github: philnash/envyable.cr


You will need a YAML file which contains your application config. I like to use config/env.yml. Put your default settings in the root and then override them on an environment by environment basis.

Example YAML file

The following YAML file sets the API_CLIENT_ID in all environments to "development-id" then overrides it in the test environment to "test-id".

API_CLIENT_ID: development-id
  API_CLIENT_ID: test-id

Load the configuration

To load the configuration you just need to require the library and then call load.

require "envyable"
Envyable.load("path/to/yml", "development")

All config is loaded as a string.

By default the development environment will be loaded. If you have a config file called env.yml in the config directory and you wanted to load the development environment, then you would include the following:

require "envyable"

Version control

It is not recommended that you check the YAML file in to version control. I like to check in a env.yml.example file that shows the required keys, but does not include any credentials.


  1. Fork it ( https://github.com/philnash/envyable.cr/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request


  github: philnash/envyable.cr
  version: ~> 1.0.1
License MIT
Crystal 0.26.1


Dependencies 0

Development Dependencies 0

Dependents 0

Last synced .
search fire star recently