Skip to main content

direnv-pattern

Automates environment variable management using the b00t direnv pattern for secure project configurations.

Install this skill

or
0/100

Security score

The direnv-pattern skill was audited on Feb 9, 2026 and we found 68 security issues across 3 threat categories. Review the findings below before installing.

Categories Tested

Security Issues

medium line 273

Template literal with variable interpolation in command context

SourceSKILL.md
273```bash
medium line 370

Template literal with variable interpolation in command context

SourceSKILL.md
370```yaml
medium line 380

Template literal with variable interpolation in command context

SourceSKILL.md
380```yaml
medium line 54

Access to hidden dotfiles in home directory

SourceSKILL.md
541. **Datums specify WHICH** - `~/.dotfiles/_b00t_/*.ai.toml` files specify required variable names
low line 83

Access to hidden dotfiles in home directory

SourceSKILL.md
83echo 'eval "$(direnv hook bash)"' >> ~/.bashrc
low line 86

Access to hidden dotfiles in home directory

SourceSKILL.md
86echo 'eval "$(direnv hook zsh)"' >> ~/.zshrc
low line 89

Access to hidden dotfiles in home directory

SourceSKILL.md
89echo 'direnv hook fish | source' >> ~/.config/fish/config.fish
low line 102

Access to hidden dotfiles in home directory

SourceSKILL.md
102# dotenv ~/.env
low line 158

Access to hidden dotfiles in home directory

SourceSKILL.md
158# dotenv ~/.env
low line 181

Access to hidden dotfiles in home directory

SourceSKILL.md
181# - Datums (~/.dotfiles/_b00t_/*.ai.toml) specify WHICH vars are required
low line 230

Access to hidden dotfiles in home directory

SourceSKILL.md
230validation = b00t_py.check_provider_env("openrouter", "~/.dotfiles/_b00t_")
low line 248

Access to hidden dotfiles in home directory

SourceSKILL.md
248dotenv ~/.env
low line 347

Access to hidden dotfiles in home directory

SourceSKILL.md
347providers = b00t_py.list_ai_providers("~/.dotfiles/_b00t_")
low line 351

Access to hidden dotfiles in home directory

SourceSKILL.md
351validation = b00t_py.check_provider_env("openrouter", "~/.dotfiles/_b00t_")
medium line 4

Access to .env file

SourceSKILL.md
4Implements the b00t environment management pattern: direnv → .envrc → dotenv → .env
medium line 5

Access to .env file

SourceSKILL.md
5where datums specify WHICH environment variables are required and .env contains
medium line 15

Access to .env file

SourceSKILL.md
15- Set up direnv + .envrc + .env configuration
medium line 16

Access to .env file

SourceSKILL.md
16- Follow the b00t pattern: WHICH (datums) vs VALUES (.env)
medium line 31

Access to .env file

SourceSKILL.md
31- "configure .env file"
low line 43

Access to .env file

SourceSKILL.md
43dotenv loads .env file
medium line 55

Access to .env file

SourceSKILL.md
552. **`.env` contains VALUES** - Actual API keys and secrets (gitignored)
low line 64

Access to .env file

SourceSKILL.md
64├── .env # ← Contains actual API keys (GITIGNORED!)
low line 66

Access to .env file

SourceSKILL.md
66├── .env.example # ← Shows required keys (committed)
low line 67

Access to .env file

SourceSKILL.md
67└── .gitignore # ← Must include .env and .envrc
low line 96

Access to .env file

SourceSKILL.md
96# This file demonstrates the b00t pattern: direnv → .envrc → dotenv → .env
low line 98

Access to .env file

SourceSKILL.md
98# Load project .env file (contains API keys)
low line 101

Access to .env file

SourceSKILL.md
101# Optionally load home directory .env for global keys
low line 102

Access to .env file

SourceSKILL.md
102# dotenv ~/.env
low line 105

Access to .env file

SourceSKILL.md
105# dotenv .env.local
low line 106

Access to .env file

SourceSKILL.md
106# dotenv .env.development
medium line 109

Access to .env file

SourceSKILL.md
109### 3. Create .env with API Keys
low line 150

Access to .env file

SourceSKILL.md
150# 2. Copy: cp .env.example .env
low line 151

Access to .env file

SourceSKILL.md
151# 3. Edit .env with your actual API keys
low line 154

Access to .env file

SourceSKILL.md
154# Load project .env file (contains API keys)
low line 157

Access to .env file

SourceSKILL.md
157# Optionally load home directory .env for global keys
low line 158

Access to .env file

SourceSKILL.md
158# dotenv ~/.env
low line 161

Access to .env file

SourceSKILL.md
161# dotenv .env.local
medium line 168

Access to .env file

SourceSKILL.md
168## .env.example Template
low line 173

Access to .env file

SourceSKILL.md
173# API keys are loaded via direnv → .envrc → dotenv → .env pattern.
low line 176

Access to .env file

SourceSKILL.md
176# 1. Copy: cp .env.example .env
low line 177

Access to .env file

SourceSKILL.md
177# 2. Fill in your actual API keys in .env
low line 182

Access to .env file

SourceSKILL.md
182# - This .env file contains the actual VALUES
low line 213

Access to .env file

SourceSKILL.md
213# Required: Must be present in .env file
low line 236

Access to .env file

SourceSKILL.md
236print("Add them to your .env file and run 'direnv allow'")
low line 248

Access to .env file

SourceSKILL.md
248dotenv ~/.env
low line 263

Access to .env file

SourceSKILL.md
263dotenv .env.production
low line 265

Access to .env file

SourceSKILL.md
265dotenv .env.staging
low line 267

Access to .env file

SourceSKILL.md
267dotenv .env.development
low line 284

Access to .env file

SourceSKILL.md
284echo " Add it to your .env file"
medium line 296

Access to .env file

SourceSKILL.md
296- ✅ Add `.env` to `.gitignore`
medium line 298

Access to .env file

SourceSKILL.md
298- ✅ Use `.env.example` as template (committed to git)
medium line 299

Access to .env file

SourceSKILL.md
299- ✅ Store API keys only in `.env` files
medium line 305

Access to .env file

SourceSKILL.md
305- ❌ Commit `.env` files to git
medium line 309

Access to .env file

SourceSKILL.md
309- ❌ Share `.env` files via chat/email
low line 316

Access to .env file

SourceSKILL.md
316.env
low line 318

Access to .env file

SourceSKILL.md
318.env.local
low line 319

Access to .env file

SourceSKILL.md
319.env.*.local
low line 322

Access to .env file

SourceSKILL.md
322!.env.example
medium line 398

Access to .env file

SourceSKILL.md
3982. **Copy templates**: `.envrc.example` → `.envrc`, `.env.example` → `.env`
medium line 399

Access to .env file

SourceSKILL.md
3993. **Edit .env** with actual API keys
medium line 405

Access to .env file

SourceSKILL.md
4051. **Add to .env.example** (commented, as template)
medium line 406

Access to .env file

SourceSKILL.md
4062. **Add to .env** (actual value)
medium line 414

Access to .env file

SourceSKILL.md
4143. **Create .env**: Reference `.env.example`
medium line 428

Access to .env file

SourceSKILL.md
428- `b00t-j0b-py/.env.example` - API keys template
medium line 436

Access to .env file

SourceSKILL.md
4362. **Secure**: Secrets in `.env` (gitignored), not in code
medium line 439

Access to .env file

SourceSKILL.md
4395. **Flexible**: Supports multiple `.env` files, local/global keys
low line 204

External URL reference

SourceSKILL.md
204# OLLAMA_BASE_URL=http://localhost:11434
low line 217

External URL reference

SourceSKILL.md
217defaults = { OPENROUTER_API_BASE = "https://openrouter.ai/api/v1" }
Scanned on Feb 9, 2026
View Security Dashboard
Installation guide →