Environment Setup Assistant
FSecurityGenerate setup scripts and instructions for development environments across platforms. Use when: (1) Setting up new development machines (Python, Node.js, Docker, databases), (2) Creating automated setup scripts for team onboarding, (3) Need cross-platform setup instructions (macOS, Linux, Windows), (4) Installing development tools and dependencies, (5) Configuring version managers and package managers. Provides executable setup scripts, platform-specific guides, and tool installation instruc...
- 247 stars
- 0 votes
- 0 copies
- 1 view
- Added May 27, 2026
Works with
Security analysis
31/100- Pipes output to a shell interpreter
- Uses curl or wget to download content
- Performs destructive filesystem operations
- Modifies startup scripts or system services for persistence
- Modifies startup scripts or system services for persistence
- Downloads and executes remote scripts — classic supply chain attack
- Installs packages at runtime which could introduce malicious dependencies
- Installs packages at runtime which could introduce malicious dependencies
Pro scans all 6 files and shows the line behind each finding
npx -y skills add ArabelaTso/Skills-4-SE --skill environment-setup-assistant --agent claude-codeAre you the author of Environment Setup Assistant?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/arabelatso-environment-setup-assistant)---
name: environment-setup-assistant
description: "Generate setup scripts and instructions for development environments across platforms. Use when: (1) Setting up new development machines (Python, Node.js, Docker, databases), (2) Creating automated setup scripts for team onboarding, (3) Need cross-platform setup instructions (macOS, Linux, Windows), (4) Installing development tools and dependencies, (5) Configuring version managers and package managers. Provides executable setup scripts, platform-specific guides, and tool installation instructions."
---
# Environment Setup Assistant
Generate automated setup scripts and detailed instructions for development environments across multiple platforms.
## Quick Start
### Generate Setup Script
Specify your requirements and get an automated setup script:
```bash
# Example: Python development environment
bash scripts/setup_python.sh
# Example: Node.js development environment
bash scripts/setup_nodejs.sh
# Example: Docker environment
bash scripts/setup_docker.sh
```
### Get Platform-Specific Instructions
For manual setup or understanding what the scripts do, see **[platform_instructions.md](references/platform_instructions.md)**.
## Common Setup Scenarios
### Scenario 1: New Team Member Onboarding
**Goal**: Set up complete development environment for a new developer
**Approach**:
1. Identify target platform (macOS, Linux, Windows)
2. List required tools (Git, Python, Node.js, Docker, etc.)
3. Generate comprehensive setup script
4. Provide verification checklist
**Example Request**: "Set up a Python and Node.js development environment on macOS"
**Generated Output**:
```bash
#!/usr/bin/env bash
# Complete Development Environment Setup
# Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install Git
brew install git
# Install Python via pyenv
brew install pyenv
pyenv install 3.11.0
pyenv global 3.11.0
# Install Node.js via nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
nvm install --lts
# Install Docker Desktop
echo "Please download Docker Desktop from https://www.docker.com/products/docker-desktop"
# Install VS Code
brew install --cask visual-studio-code
# Verify installations
git --version
python --version
node --version
```
### Scenario 2: Project-Specific Setup
**Goal**: Set up environment for a specific project with exact dependencies
**Approach**:
1. Analyze project requirements (package.json, requirements.txt, etc.)
2. Detect required runtime versions
3. Generate setup script with project initialization
4. Include virtual environment or project-specific configuration
**Example Request**: "Create setup script for a Django project requiring Python 3.11 and PostgreSQL"
**Generated Output**:
```bash
#!/usr/bin/env bash
# Django Project Environment Setup
# Install Python 3.11
if ! command -v python3.11 &> /dev/null; then
# macOS
brew install python@3.11
# Linux: sudo apt-get install python3.11
fi
# Install PostgreSQL
brew install postgresql@15
brew services start postgresql@15
# Create virtual environment
python3.11 -m venv venv
source venv/bin/activate
# Install Django and dependencies
pip install django psycopg2-binary
# Create database
createdb myproject_dev
# Initialize Django project
django-admin startproject myproject .
echo "Setup complete! Activate venv: source venv/bin/activate"
```
### Scenario 3: CI/CD Environment Replication
**Goal**: Replicate CI/CD environment locally
**Approach**:
1. Analyze CI configuration (.github/workflows, .gitlab-ci.yml, etc.)
2. Extract runtime versions and dependencies
3. Generate matching local setup
4. Include container-based option if applicable
**Example Request**: "Match my GitHub Actions environment locally (Ubuntu, Python 3.10, Node 18)"
### Scenario 4: Multi-Language Development
**Goal**: Set up polyglot development environment
**Approach**:
1. Install version managers for each language
2. Set up common tools (Git, Docker, editor)
3. Configure shell environment
4. Provide switching instructions
**Example Request**: "Set up Python, Node.js, and Go development on Linux"
## Setup Script Templates
### Python Development
Use `scripts/setup_python.sh`:
- Installs Python 3.11
- Sets up virtual environment
- Installs common tools (pytest, black, mypy)
- Cross-platform (macOS, Linux, Windows/WSL)
### Node.js Development
Use `scripts/setup_nodejs.sh`:
- Installs Node.js via nvm
- Installs package managers (npm, pnpm)
- Installs global tools (TypeScript, ESLint, Prettier)
- Cross-platform support
### Docker Development
Use `scripts/setup_docker.sh`:
- Installs Docker Engine or Docker Desktop
- Installs Docker Compose
- Adds user to docker group (Linux)
- Verification steps
## Platform-Specific Guidance
### macOS Setup
See **[platform_instructions.md](references/platform_instructions.md#macos-setup)** for:
- Homebrew installation
- Command Line Tools
- Common package installation patterns
- Shell configuration (zsh)
### Linux Setup
See **[platform_instructions.md](references/platform_instructions.md#linux-setup)** for:
- apt-get based installation (Ubuntu/Debian)
- Build tools and dependencies
- systemd service management
- Shell configuration (bash)
### Windows Setup
See **[platform_instructions.md](references/platform_instructions.md#windows-setup)** for:
- WSL 2 setup (recommended)
- Native Windows tools
- PowerShell configuration
- Git Bash alternative
## Development Tools
### Version Managers
See **[tool_guides.md](references/tool_guides.md#version-managers)** for:
- **pyenv**: Python version management
- **nvm**: Node.js version management
- **rbenv**: Ruby version management
### Code Editors
See **[tool_guides.md](references/tool_guides.md#code-editors)** for:
- **VS Code**: Installation and essential extensions
- **JetBrains IDEs**: PyCharm, WebStorm, IntelliJ
- Editor configuration
### Database Tools
See **[tool_guides.md](references/tool_guides.md#database-tools)** for:
- **PostgreSQL**: Installation and pgAdmin
- **MySQL/MariaDB**: Installation and Workbench
- **MongoDB**: Installation and Compass
- **Redis**: Installation and CLI
### Containerization
See **[tool_guides.md](references/tool_guides.md#containerization)** for:
- **Docker**: Setup and Docker Compose
- **Kubernetes**: Minikube and kubectl
## Workflow
### 1. Assess Requirements
Determine what needs to be installed:
```
Questions to ask:
- What programming languages? (Python, Node.js, Java, Go, etc.)
- What databases? (PostgreSQL, MySQL, MongoDB, Redis, etc.)
- What tools? (Docker, Git, editor, etc.)
- What platform? (macOS, Linux, Windows)
- Team-wide or personal setup?
```
### 2. Choose Approach
**Option A: Automated Script**
- Fast, repeatable
- Use for standard setups
- Generates executable bash/shell script
**Option B: Manual Instructions**
- More control, educational
- Use when customization needed
- Provides step-by-step guide
**Option C: Hybrid**
- Script + explanations
- Best for team onboarding
- Script does heavy lifting, docs explain
### 3. Generate Setup Content
Based on requirements, generate:
- Setup script with error handling
- Platform-specific instructions
- Verification steps
- Troubleshooting tips
### 4. Include Verification
Always include verification steps:
```bash
# Verify installations
echo "Verifying setup..."
git --version || echo "❌ Git not installed"
python3 --version || echo "❌ Python not installed"
node --version || echo "❌ Node.js not installed"
docker --version || echo "❌ Docker not installed"
echo "✅ Setup verification complete"
```
### 5. Add Cleanup Instructions
Provide cleanup/uninstall steps if needed:
```bash
# Uninstall (if needed)
brew uninstall python@3.11
rm -rf venv
```
## Best Practices
### 1. Make Scripts Idempotent
Scripts should be safe to run multiple times:
```bash
# Check before installing
if ! command -v python3 &> /dev/null; then
brew install python@3.11
else
echo "✅ Python already installed"
fi
```
### 2. Add Platform Detection
Detect OS and adapt:
```bash
detect_os() {
if [[ "$OSTYPE" == "darwin"* ]]; then
echo "macos"
elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
echo "linux"
else
echo "unknown"
fi
}
OS=$(detect_os)
```
### 3. Provide Progress Feedback
Show what's happening:
```bash
echo "📦 Installing Python..."
brew install python@3.11
echo "✅ Python installed"
```
### 4. Handle Errors Gracefully
```bash
set -e # Exit on error
# Or handle specific errors
if ! brew install python@3.11; then
echo "❌ Failed to install Python"
echo "Try installing manually from python.org"
exit 1
fi
```
### 5. Include Documentation
Add comments explaining each step:
```bash
# Install Node.js via nvm (Node Version Manager)
# This allows managing multiple Node.js versions
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
```
## Common Patterns
### Virtual Environment Setup
```bash
# Python
python3 -m venv venv
source venv/bin/activate # macOS/Linux
# venv\Scripts\activate # Windows
# Node.js (using nvm)
nvm use 18
```
### Tool Installation Check
```bash
check_installed() {
if command -v $1 &> /dev/null; then
echo "✅ $1 is installed"
return 0
else
echo "❌ $1 is not installed"
return 1
fi
}
check_installed git
check_installed python3
check_installed node
```
### Environment Variable Setup
```bash
# Add to ~/.bashrc or ~/.zshrc
cat >> ~/.bashrc << 'EOF'
export PATH="$HOME/.local/bin:$PATH"
export EDITOR=vim
EOF
source ~/.bashrc
```
## Troubleshooting
### Permission Issues
```bash
# macOS/Linux: Use sudo for system installations
sudo apt-get install package
# Avoid sudo for user-level tools
pip install --user package
```
### PATH Issues
```bash
# Check PATH
echo $PATH
# Add to PATH (temporary)
export PATH="/usr/local/bin:$PATH"
# Add to PATH (permanent, in ~/.bashrc)
echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bashrc
```
### Version Conflicts
```bash
# Use version managers to avoid conflicts
pyenv install 3.11.0 # Python
nvm install 18.16.0 # Node.js
```
## Complete Example
**Request**: "Set up a full-stack JavaScript development environment on macOS"
**Generated Script**:
```bash
#!/usr/bin/env bash
# Full-Stack JavaScript Development Environment
# Platform: macOS
set -e
echo "🚀 Full-Stack JavaScript Setup"
echo "=============================="
# Install Homebrew
if ! command -v brew &> /dev/null; then
echo "📦 Installing Homebrew..."
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
fi
# Install Git
echo "📦 Installing Git..."
brew install git
# Install Node.js via nvm
echo "📦 Installing Node.js..."
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
nvm install --lts
nvm use --lts
# Install global packages
echo "📦 Installing global packages..."
npm install -g pnpm typescript ts-node nodemon
# Install PostgreSQL
echo "📦 Installing PostgreSQL..."
brew install postgresql@15
brew services start postgresql@15
# Install Redis
echo "📦 Installing Redis..."
brew install redis
brew services start redis
# Install Docker Desktop
echo "📦 Docker Desktop..."
echo "Please download from https://www.docker.com/products/docker-desktop"
# Install VS Code
echo "📦 Installing VS Code..."
brew install --cask visual-studio-code
# Verify setup
echo ""
echo "✅ Setup Complete!"
echo ""
echo "Installed:"
echo " - Git: $(git --version)"
echo " - Node.js: $(node --version)"
echo " - npm: $(npm --version)"
echo " - pnpm: $(pnpm --version)"
echo " - TypeScript: $(tsc --version)"
echo " - PostgreSQL: $(postgres --version)"
echo " - Redis: $(redis-server --version)"
```
Files in this skill
- SKILL.md
- references/platform_instructions.md
- references/tool_guides.md
- scripts/setup_docker.sh
- scripts/setup_nodejs.sh
- scripts/setup_python.sh
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.