Environment Variables
Urx supports configuration through environment variables for sensitive data and default settings.
API Keys
URX_VT_API_KEY
VirusTotal API key for accessing the VirusTotal provider.
export URX_VT_API_KEY=your_api_key_here
urx example.com --providers vt
Multiple Keys (Rotation):
export URX_VT_API_KEY=key1,key2,key3
urx example.com --providers vt
URX_URLSCAN_API_KEY
Optional URLScan API key. The urlscan provider works anonymously without a
key (rate-limited to ~30 requests/min per IP); set a key only to raise those
limits and enable key rotation.
export URX_URLSCAN_API_KEY=your_api_key_here
urx example.com --providers urlscan
Multiple Keys (Rotation):
export URX_URLSCAN_API_KEY=key1,key2,key3
urx example.com --providers urlscan
URX_ZOOMEYE_API_KEY
ZoomEye API key for accessing the ZoomEye provider.
export URX_ZOOMEYE_API_KEY=your_api_key_here
urx example.com --providers zoomeye
Multiple Keys (Rotation):
export URX_ZOOMEYE_API_KEY=key1,key2,key3
urx example.com --providers zoomeye
URX_GITHUB_API_KEY
GitHub personal access token for the github provider (GitHub Code Search),
which requires a token to run.
export URX_GITHUB_API_KEY=your_token_here
urx example.com --providers github
Multiple Keys (Rotation):
export URX_GITHUB_API_KEY=token1,token2,token3
urx example.com --providers github
URX_BEVIGIL_API_KEY
BeVigil API key for the bevigil provider, which returns URLs extracted from
unpacked Android apps. Required; the provider does nothing without it. Get a
key from the BeVigil OSINT API.
export URX_BEVIGIL_API_KEY=your_key_here
urx example.com --providers bevigil
Multiple Keys (Rotation):
export URX_BEVIGIL_API_KEY=key1,key2
urx example.com --providers bevigil
Notifications
URX_NOTIFY_URL
Webhook URL(s) for --notify. Comma-separate several to fan out. The URL is
treated as a secret: urx never prints more than its host, so the environment
is the recommended place for it.
export URX_NOTIFY_URL=https://hooks.slack.com/services/T000/B000/XXXX
urx example.com --incremental --notify-format slack
--notify on the command line takes precedence over the variable; both take
precedence over notify_url in the provider-config file and [notify].url
in the main config.
Display
NO_COLOR
The standard NO_COLOR convention is honored: set it
to anything at all — an empty value counts — and urx drops ANSI color from the
progress UI and the output, exactly as --no-color does.
NO_COLOR=1 urx example.com --check-status
Summary
| Variable | Provider | Description |
|---|---|---|
URX_VT_API_KEY |
VirusTotal | VirusTotal API key |
URX_URLSCAN_API_KEY |
URLScan | Optional URLScan API key (the provider also works anonymously) |
URX_ZOOMEYE_API_KEY |
ZoomEye | ZoomEye API key |
URX_GITHUB_API_KEY |
GitHub | GitHub Code Search personal access token |
URX_BEVIGIL_API_KEY |
BeVigil | BeVigil OSINT API key (URLs from unpacked Android apps) |
URX_NOTIFY_URL |
— | Webhook URL(s) for --notify, comma-separated |
NO_COLOR |
— | Any value disables ANSI color, as --no-color does |
Usage Notes
- Environment variables are automatically detected when running Urx
- Command-line flags take precedence over environment variables
- Multiple API keys can be comma-separated for rotation
- API keys enable automatic activation of the respective providers
Best Practices
Store in Profile
Add to your ~/.bashrc, ~/.zshrc, or ~/.profile:
# Urx Configuration
export URX_VT_API_KEY=your_vt_key
export URX_URLSCAN_API_KEY=your_urlscan_key
export URX_ZOOMEYE_API_KEY=your_zoomeye_key
export URX_NOTIFY_URL=https://hooks.slack.com/services/...
Use .env Files
For project-specific configuration:
# .env
URX_VT_API_KEY=your_vt_key
URX_URLSCAN_API_KEY=your_urlscan_key
URX_ZOOMEYE_API_KEY=your_zoomeye_key
Load with:
source .env
urx example.com
Docker Environment
docker run --rm \
-e URX_VT_API_KEY=your_key \
-e URX_URLSCAN_API_KEY=your_key \
-e URX_ZOOMEYE_API_KEY=your_key \
ghcr.io/hahwul/urx:latest \
example.com
CI/CD Secrets
Store API keys as secrets in your CI/CD platform:
GitHub Actions:
- name: Run Urx
env:
URX_VT_API_KEY: ${{ secrets.VT_API_KEY }}
URX_URLSCAN_API_KEY: ${{ secrets.URLSCAN_API_KEY }}
URX_ZOOMEYE_API_KEY: ${{ secrets.ZOOMEYE_API_KEY }}
run: urx example.com
Security Considerations
- Never commit API keys to version control
- Use secrets management for production environments
- Rotate keys regularly
- Use different keys for different environments (dev/staging/prod)