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/activateInstall Claude CLI:
pip install anthropicSet 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 ~/.bashrcWSL 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 -yInstall Python dependencies:
sudo apt install python3-pip python3-venv -yFollow 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 --ltsClone and build the desktop application:
git clone https://github.com/anthropics/claude-desktop
cd claude-desktop
npm install
npm run buildStart the application:
npm startRole 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:
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 contextInitialize 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_messageUsage example:
# 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
Role Separation
Keep roles focused and specific
Define clear boundaries between roles
Use appropriate temperature settings for each role
Context Management
Regularly update project context
Keep system messages concise but informative
Include relevant project-specific guidelines
Version Control
Track role configurations in version control
Document role changes and their purposes
Use environment variables for sensitive settings
Best Practices
API Key Security
Never commit API keys to version control
Use environment variables or secure key management
Rotate keys periodically
Virtual Environment
Always use virtual environments for isolation
Keep dependencies updated
Use requirements.txt for project dependencies
Error Handling
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 pipCheck Python version compatibility
Verify system dependencies
WSL-Specific Issues
Enable WSL2:
wsl --set-version UbuntuCheck WSL integration in VS Code
Verify network connectivity
Resources
Last updated