Skip to content

brainz-lab/vision

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

99 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Vision

Visual regression testing and browser automation platform.

CI CodeQL codecov License: OSAaSy Ruby

Quick Start

# Capture a screenshot
vision_capture(url: "https://example.com", viewport: "desktop")

# Run AI browser task
vision_task(instruction: "Add item to cart", start_url: "https://shop.example.com")

Installation

With Docker

docker pull brainzllc/vision:latest

docker run -d \
  -p 3000:3000 \
  -e DATABASE_URL=postgres://user:pass@host:5432/vision \
  -e REDIS_URL=redis://host:6379/11 \
  -e RAILS_MASTER_KEY=your-master-key \
  brainzllc/vision:latest

Local Development

bin/setup
bin/rails server

Configuration

Variable Description Required
DATABASE_URL PostgreSQL connection Yes
REDIS_URL Redis for ActionCable/jobs Yes
RAILS_MASTER_KEY Rails credentials Yes
AWS_ENDPOINT S3/MinIO endpoint Yes
AWS_ACCESS_KEY_ID S3 access key Yes
AWS_SECRET_ACCESS_KEY S3 secret key Yes
AWS_BUCKET Bucket for screenshots Yes
BRAINZLAB_VAULT_URL Vault service URL No

Tech Stack

  • Ruby 3.4.7 / Rails 8.1
  • PostgreSQL 16 (UUID primary keys)
  • Browser Engine: Playwright (playwright-ruby-client)
  • Image Processing: ImageMagick (mini_magick)
  • Storage: ActiveStorage with S3/MinIO
  • Hotwire (Turbo + Stimulus) / Tailwind CSS

Usage

Screenshot Capture

POST /api/v1/snapshots
{
  "url": "https://example.com",
  "viewport": "desktop",
  "browser": "chromium",
  "hide_elements": [".cookie-banner", ".ads"]
}

Visual Regression Testing

# Create baseline
POST /api/v1/pages
{ "url": "https://example.com/pricing", "name": "Pricing Page" }

# Capture and compare
POST /api/v1/test_runs
{ "page_ids": ["page_uuid1", "page_uuid2"] }

# Review results
GET /api/v1/test_runs/:id

AI Browser Automation

# Autonomous task execution
vision_task(
  instruction: "Add item 12345 to cart and proceed to checkout",
  start_url: "https://shop.example.com",
  credential: "shop-login"  # Auto-login from Vault
)

Browser Support

Browser Viewports
Chromium Desktop (1280x720), Mobile (375x812), Tablet (768x1024)
Firefox Desktop
WebKit Desktop, Mobile

Credential Integration

Vision integrates with Vault for secure credential storage:

# Store credential in Vault
vision_credential(action: "store", name: "github", username: "user", password: "secret")

# Use in automation
vision_task(
  instruction: "Create new issue",
  start_url: "https://github.com/org/repo/issues/new",
  credential: "github"
)

API Reference

Snapshots

  • GET /api/v1/snapshots - List snapshots
  • POST /api/v1/snapshots - Capture screenshot
  • POST /api/v1/snapshots/:id/compare - Compare to baseline

Test Runs

  • GET /api/v1/test_runs - List test runs
  • POST /api/v1/test_runs - Start test run
  • GET /api/v1/test_runs/:id - Get run with comparisons

Comparisons

  • POST /api/v1/comparisons/:id/approve - Approve changes
  • POST /api/v1/comparisons/:id/reject - Reject changes

MCP Tools

Tool Description
vision_capture Take screenshot of a URL
vision_compare Compare current state to baseline
vision_test Run full visual test suite
vision_approve Approve changes, update baseline
vision_task Execute autonomous AI browser task
vision_ai_action Single AI-powered browser action
vision_perform Direct browser action without AI
vision_extract Extract structured data from page

Full documentation: docs.brainzlab.ai/products/vision

Self-Hosting

Docker Compose

services:
  vision:
    image: brainzllc/vision:latest
    ports:
      - "4008:3000"
    environment:
      DATABASE_URL: postgres://user:pass@db:5432/vision
      REDIS_URL: redis://redis:6379/11
      RAILS_MASTER_KEY: ${RAILS_MASTER_KEY}
      AWS_ENDPOINT: http://minio:9000
      AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
      AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
      AWS_BUCKET: vision-screenshots
    depends_on:
      - db
      - redis
      - minio

Testing

bin/rails test
bin/rubocop

Contributing

See CONTRIBUTING.md for development setup and contribution guidelines.

License

This project is licensed under the OSAaSy License.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

 
 
 

Contributors