com.nyx-intelligence/val

QA agent for vibecoded apps. Real browser checks, your AI fixes them. Ship to green.

AI & MLJavaScriptv0.10.1

Val QA scan — GitHub Action

Run Val, the QA agent for vibecoded apps, on every PR. Val drives a real browser against your preview URL, catches broken links, dead buttons, busted layouts, accessibility violations, and posts a report as a PR comment.

Requires a Val subscription

Val is a paid product. Get a license key at val.nyx-intelligence.com, store it as a repository secret (e.g. VAL_LICENSE_KEY), and pass it to the action.

Quick start

name: Val QA
on: pull_request

jobs:
  qa:
    runs-on: ubuntu-latest
    steps:
      - name: Deploy preview
        id: deploy
        # ... your preview deployment step (Vercel, Netlify, etc.) ...
        # outputs.url should be the preview URL

      - name: Val scan
        uses: nyx-intelligence/val-action@v1
        with:
          url: ${{ steps.deploy.outputs.url }}
          license-key: ${{ secrets.VAL_LICENSE_KEY }}
          devices: 'desktop,iPhone 14'
          fail-on: 'high'

Inputs

NameDefaultDescription
url(required)The URL Val should scan. Pass your preview deployment URL.
license-key(required)Your Val license key (vk_...). Get one at val.nyx-intelligence.com.
max-pages12Maximum same-origin pages to crawl.
devicesdesktopComma-separated device profiles, e.g. desktop,iPhone 14,Pixel 7.
fail-onhighSeverity that fails the action: high, medium, low, or never.
commenttruePost the report as a PR comment (true / false).
github-token${{ github.token }}Token used to post the PR comment.

Outputs

NameDescription
highNumber of high-severity findings.
mediumNumber of medium-severity findings.
lowNumber of low-severity findings.
report-pathPath to the raw report file.

What Val checks

  • Broken links and 4xx/5xx responses
  • Uncaught JS errors and console errors
  • Broken/missing images
  • Horizontal layout overflow on mobile
  • Clipped text in fixed containers
  • Cumulative Layout Shift (janky load)
  • A11y essentials: missing alt, unnamed buttons, unlabeled inputs, missing <html lang>
  • Multi-device: catches bugs that appear only on mobile or only on desktop

Permissions

The action needs pull-requests: write to post comments:

permissions:
  contents: read
  pull-requests: write

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y @nyx-intelligence/val-mcp

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "com-nyx-intelligence-val": {
      "command": "npx",
      "args": [
        "-y",
        "@nyx-intelligence/val-mcp"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

@nyx-intelligence/val-mcpnpm

Compatible MCP Clients

com.nyx-intelligence/val works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More