يرتبط direnv بالشِل ويبحث عن ملف .envrc في المجلد الحالي ومجلداته الأعلى. حين تدخل مجلد مشروع يحمّل المتغيرات المعرَّفة فيه، وحين تغادره يزيلها. هذا يعني أن لكل مشروع مفاتيحه ومسارات PATH وإعداداته الخاصة دون تلويث الشِل العام أو الحاجة لتذكّر تحميل الملفات يدوياً.

ملف .envrc بسيط قد يبدو هكذا:

sh
export DATABASE_URL="postgres://localhost/myapp"
export PATH="$PWD/bin:$PATH"
use node 20

من باب الأمان، يطلب direnv منك تشغيل direnv allow صراحةً قبل تنفيذ أي ملف .envrc جديد أو معدَّل، فلا تشغّل شيفرة غير موثوقة بالخطأ. يتكامل مع أدوات مثل nix وasdf ومدراء إصدارات اللغات عبر دوال "stdlib". direnv محبوب لدى الفرق التي تريد بيئات قابلة لإعادة الإنتاج لكل مشروع، ولدى المطورين الذين سئموا إدارة الأسرار عبر مستودعات كثيرة. خفيف، محايد للغة، ويعمل مع bash وzsh وfish وtcsh.