> ## Documentation Index
> Fetch the complete documentation index at: https://docs.blastproject.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Setup

> For BLAST contributors

## Prerequisites

1. **Python Environment**
   ```bash theme={null}
   # Create virtual environment
   python -m venv blast-venv
   source blast-venv/bin/activate  # Linux/macOS
   # or
   blast-venv\Scripts\activate     # Windows
   ```

2. **Node.js and npm** (for web UI)
   * Install from [nodejs.org](https://nodejs.org)
   * Required for web frontend development

3. **Browser Requirements**
   ```bash theme={null}
   # Install browser dependencies
   python -m playwright install chromium
   ```

## Installation

1. **Clone Repository**
   ```bash theme={null}
   git clone https://github.com/stanford-mast/blast.git
   cd blast
   ```

2. **Install Dependencies**
   ```bash theme={null}
   # Install Python dependencies
   pip install -e ".[dev]"

   # Install frontend dependencies
   cd blastai/frontend
   npm install
   ```

## Development Server

Just run `blastai serve`.

## Configuration

Create a development config file:

```yaml theme={null}
# dev_config.yaml
settings:
  persist_cache: false  # Disable cache persistence on disk (also use "no-cache" to disable in memory)
  blastai_log_level: "debug"
  browser_use_log_level: "debug"

constraints:
  max_concurrent_browsers: 2
  allow_parallelism:
    task: true
    data: true
```

## Testing

```bash theme={null}
# Run all tests (probably don't since our test suite needs to be distilled a bit)
pytest

# Run specific test file
pytest tests/test_engine.py

# Run with coverage
pytest --cov=blastai
```

## Debugging

1. **Backend Debugging**
   ```yaml theme={null}
   settings:
       persist_cache: false
       blastai_log_level: "debug"
       browser_use_log_level: "debug"
   ```

2. **Frontend Debugging**
   * Use browser dev tools
   * Check browser console
   * Monitor network requests

3. **Browser Debugging**
   ```python theme={null}
   # Enable browser debugging
   constraints = Constraints(require_headless=False)
   ```

## Documentation

Go to the [GitHub repo for docs](github.com/stanford-mast/blast-docs).

## Next Steps

* Read [Internals](/development/internals)
* Check [Contributing Guide](/development/contributing)
* Review [Roadmap](/development/roadmap)
