QA agent for vibecoded apps. Real browser checks, your AI fixes them. Ship to green.
Runs on your machine from its package; the steps are below.
At most: moves money, runs code or commands, deletes data, or sends messages for you.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Run
npx -y @nyx-intelligence/val-mcp
MCP client config
{
"mcpServers": {
"val": {
"command": "npx",
"args": [
"-y",
"@nyx-intelligence/val-mcp"
]
}
}
}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.
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.
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'
| Name | Default | Description |
|---|---|---|
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-pages | 12 | Maximum same-origin pages to crawl. |
devices | desktop | Comma-separated device profiles, e.g. desktop,iPhone 14,Pixel 7. |
fail-on | high | Severity that fails the action: high, medium, low, or never. |
comment | true | Post the report as a PR comment (true / false). |
github-token | ${{ github.token }} | Token used to post the PR comment. |
| Name | Description |
|---|---|
high | Number of high-severity findings. |
medium | Number of medium-severity findings. |
low | Number of low-severity findings. |
report-path | Path to the raw report file. |
<html lang>The action needs pull-requests: write to post comments:
permissions:
contents: read
pull-requests: write