Installation Guide
This guide provides step-by-step instructions for installing and configuring Claude in both Linux and Windows Subsystem for Linux (WSL) environments.
Linux Installation
Prerequisites
- Python 3.8 or higher
- pip package manager
- git
Steps
- Create a virtual environment:
python3 -m venv claude-env source claude-env/bin/activate - Install Claude CLI:
pip install anthropic - Set up your API key:
export ANTHROPIC_API_KEY='your-api-key' - Add to your ~/.bashrc or ~/.zshrc for persistence:
echo 'export ANTHROPIC_API_KEY="your-api-key"' >> ~/.bashrc source ~/.bashrc
WSL Installation
Prerequisites
- WSL2 installed and configured
- Ubuntu or Debian-based distribution
- Python 3.8 or higher
Steps
- Update WSL system:
wsl -d Ubuntu sudo apt update && sudo apt upgrade -y - Install Python dependencies:
sudo apt install python3-pip python3-venv -y - Follow the same steps as Linux installation above.
Claude Desktop Application
For a graphical interface to Claude:
- Install Node.js dependencies:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash source ~/.bashrc nvm install --lts - Clone and build the desktop application:
git clone https://github.com/anthropics/claude-desktop cd claude-desktop npm install npm run build - Start the application:
npm start
Role Configuration and Project Initialization
Setting Up Project Roles
Claude can be configured with different roles for various project contexts. Here’s how to set up roles:
- Create a claude-config.json in your project root:
{ "roles": { "code_reviewer": { "description": "Reviews code for best practices and security issues", "temperature": 0.7, "max_tokens": 1024 }, "documentation_writer": { "description": "Generates and updates technical documentation", "temperature": 0.3, "max_tokens": 2048 }, "architect": { "description": "Provides architectural guidance and system design", "temperature": 0.4, "max_tokens": 1500 } } } - Initialize Claude with a specific role: ```python import anthropic import json
def initialize_claude_with_role(role_name): with open(‘claude-config.json’, ‘r’) as f: config = json.load(f)
if role_name not in config['roles']:
raise ValueError(f"Role {role_name} not found in configuration")
role_config = config['roles'][role_name]
return anthropic.Client(
api_key=os.getenv("ANTHROPIC_API_KEY"),
default_parameters={
'temperature': role_config['temperature'],
'max_tokens_to_sample': role_config['max_tokens']
}
) ```
Initializing Claude for Existing Projects
To initialize Claude for an existing codebase:
- Create a project context file:
def create_project_context(): context = { 'project_structure': [], 'dependencies': {}, 'configuration': {} } # Scan project structure for root, dirs, files in os.walk('.'): if '.git' in dirs: dirs.remove('.git') context['project_structure'].extend( os.path.join(root, file) for file in files ) # Parse dependency files if os.path.exists('requirements.txt'): with open('requirements.txt', 'r') as f: context['dependencies']['python'] = f.read() if os.path.exists('package.json'): with open('package.json', 'r') as f: context['dependencies']['node'] = json.load(f) return context - Initialize Claude with project context:
def initialize_claude_for_project(): context = create_project_context() claude = anthropic.Client(api_key=os.getenv("ANTHROPIC_API_KEY")) # Initialize system message with project context system_message = f"""Project Context: - Structure: {len(context['project_structure'])} files - Dependencies: {', '.join(context['dependencies'].keys())} - Configuration: {context['configuration']} """ return claude, system_message - Usage example:
```python
Initialize Claude as a code reviewer for your project
claude = initialize_claude_with_role(‘code_reviewer’) claude, context = initialize_claude_for_project()
Now you can use Claude with project awareness
response = claude.messages.create( model=”claude-3-opus-20240229”, system=context, messages=[{ “role”: “user”, “content”: “Review the code in src/main.py for security issues” }] )
### Best Practices for Role Configuration
1. **Role Separation**
- Keep roles focused and specific
- Define clear boundaries between roles
- Use appropriate temperature settings for each role
2. **Context Management**
- Regularly update project context
- Keep system messages concise but informative
- Include relevant project-specific guidelines
3. **Version Control**
- Track role configurations in version control
- Document role changes and their purposes
- Use environment variables for sensitive settings
## Best Practices
1. **API Key Security**
- Never commit API keys to version control
- Use environment variables or secure key management
- Rotate keys periodically
2. **Virtual Environment**
- Always use virtual environments for isolation
- Keep dependencies updated
- Use requirements.txt for project dependencies
3. **Error Handling**
```python
try:
import anthropic
claude = anthropic.Client(api_key=os.getenv("ANTHROPIC_API_KEY"))
except Exception as e:
logging.error(f"Failed to initialize Claude: {e}")
Troubleshooting
Common issues and solutions:
- API Key Issues
- Verify key is correctly set in environment
- Check key permissions and quotas
- Ensure no whitespace in key string
- Installation Errors
- Update pip:
pip install --upgrade pip - Check Python version compatibility
- Verify system dependencies
- Update pip:
- WSL-Specific Issues
- Enable WSL2:
wsl --set-version Ubuntu - Check WSL integration in VS Code
- Verify network connectivity
- Enable WSL2: