Prerequisites

  1. Python Environment

    # 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
    • Required for web frontend development
  3. Browser Requirements

    # Install browser dependencies
    python -m playwright install chromium
    

Installation

  1. Clone Repository

    git clone https://github.com/stanford-mast/blast.git
    cd blast
    
  2. Install Dependencies

    # 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:

# 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

# 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

    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

    # Enable browser debugging
    constraints = Constraints(require_headless=False)
    

Documentation

Go to the GitHub repo for docs.

Next Steps