{"slug": "show-hn-open-sourced-solution-to-ai-manage-playwright-automations", "title": "Show HN: Open-sourced solution to AI manage Playwright automations", "summary": "Sorify has open-sourced an AI-first browser testing and automation platform built on Playwright, offering low-token MCP control for Claude and Codex agents. The platform includes a Chrome extension that captures browser actions and sends them to AI to write and self-heal tests, plus a built-in scheduler, bi-directional webhooks, and self-hosting with Docker and ephemeral mode. It ships with MCP server support, Claude and Codex plugins, role-based user management, and per-suite cookie injection.", "body_md": "Next generation AI First - Browser Testing \n\n& browser automation platform \n\n  Low Tokens consumption\n\n  Built for AI Agents - Claude/Codex\n\n  Built for developers\n\n  Manage entire workspace through MCP\n\n  Create powerful **browser automations**\n\n  With scheduler\n\n  Bi-directional webhooks integrations\n\n**And a bonus** Chrome Extension, with MCP\n\n★ **Automate:** Automate browser testing, using claude, codex - with skills, mcp, test runners & dashboard.\n\n★ **Chrome Extension:** Capture browser actions, send to AI to write tests, upload, self heal.\n\n★ **Webhooks:** 3 types of bi-directional integrations. Trigger runs remotely, or trigger Github Actions or HTTP webhook pre/post a run from Sorify.\n\n★ **Ephemeral:** Self host, scalable on ephemeral mode.\n\n★ **Schedule:** In built scheduler to run automated browser tasks.\n\n✴︎ **Test Management:** Organize test suites and test cases, run them on demand or on a schedule.\n\n✴︎ **Test Runners:** Playwright-powered execution with full run history.\n\n✴︎ **Notifications:** Get notified when suites finish or fail.\n\n✴︎ **Cookie Manager**: Sorify supports per-suite cookie injection from UI, MCP and chrome extension.\n\n✴︎ **User Management:** Roles, permissions, and per-user IAM.\n\n✴︎ **MCP Server:** Low token consumption over MCP layer, control all aspects of tests cases, code.\n\n✴︎ **Agent Plugins:** Claude/Codex plugins included - zero-code test code management.\n\nWITH ALL MCP CONTROLS - SUPPORTED\n\n```\n▼ Core Testing\n・ AI test generation        ・ Playwright execution\n・ Browser automation        ・ Cross-browser support\n・ Headless mode             ・ Scheduled runs\n・ Cron scheduling           ・ Run history\n・ Run cancellation          ・ Status polling\n・ Test logs                 ・ Pass-rate analytics\n\n▼ Test Management\n・ Suite management          ・ Test case management\n・ Bulk test creation        ・ Bulk test deletion\n・ Suite duplication         ・ Test duplication\n・ Code version history      ・ Version restore\n・ Test enable/disable       ・ Search and filters\n・ Suite bookmarks           ・ Dashboard analytics\n\n▼ Sessions and Data\n・ Cookie injection          ・ Pre-authenticated sessions\n・ Storage state upload      ・ Suite variables\n・ Proxy routing             ・ Per-domain proxies\n・ Timeout configuration     ・ History retention\n\n▼ Access Control\n・ User management           ・ Role-based permissions\n・ Per-suite members         ・ Suite sharing\n\n▼ Notifications\n・ Teams notifications       ・ Email notifications\n・ Inline screenshot emails  ・ Notification cooldown\n・ Digest summaries\n\n▼ Integrations\n・ CI webhook trigger        ・ Bi-directional webhooks\n・ Webhook concurrency guard ・ Webhook token regeneration\n・ GitHub Actions dispatch   ・ HTTP request hooks\n・ Pre-run hooks             ・ Post-run hooks\n・ GitHub App login\n\n▼ AI and Agents\n・ MCP server                ・ Low-token consumption\n・ Claude plugins            ・ Codex plugins\n・ AI healing                ・ Failure investigation\n・ Gateway live lookups\n\n▼ Recorder\n・ Chrome extension          ・ Session recording\n・ Recorded test generation\n\n▼ Deployment\n・ Self hosting              ・ Ephemeral mode\n・ Docker deployment         ・ Admin panel\n▼ Feature Matrix\n\n                                                                            MCP  Dashboard   Webhook     API\n                                                                        --------------------------------------\n・ Suites: list/get/create/update/delete/duplicate                           ○      ○          —           ○\n・ Suite schedule: update/delete                                             ○      ○          —           ○\n・ Suite cookies: upload                                                     ○      ○          —           ○\n・ Suite integrations: GitHub Action/HTTP request (pre/post run hooks)       ○      ○          —           ○\n・ Suite bookmarks: list/toggle                                              ○      ○          —           ○\n・ Suite members: list/add/update/remove                                     ○      ○          —           ○\n・ Tests: list/get/create/update/update code/delete/duplicate                ○      ○          —           ○\n・ Tests: bulk-create/bulk-delete                                            ○      ○          —           ○\n・ Tests: toggle enabled/disabled                                            ○      ○          —           ○\n・ Runs: trigger/list/get/cancel/delete                                      ○      ○          —           ○\n・ Runs: status                                                              ○      ○          ○           ○\n・ Runs: logs                                                                ○      ○          —           ○\n・ Screenshots: list/get                                                     ○      ○          —           ○\n・ Recorder: chrome extension events                                         ○      —          —           —\n・ Suite webhook token: regenerate                                           —      ○          —           ○\n・ Test code-version: restore                                                —      ○          —           ○\n・ Login/register/logout/password reset                                      —      ○          —           ○\n・ Profile: update name/password                                             —      ○          —           ○\n・ Dashboard analytics (stats, recent runs)                                  —      ○          —           —\n・ Admin: manage users (create, list, role, delete, reset password)          —      ○          —           ○\nclaude /plugin marketplace add https://github.com/rakutentech/sorify.git\ncodex plugin marketplace add https://github.com/rakutentech/sorify.git\nbash\n╰─$ cat ~/.sorify\nSORIFY_URL=http://localhost:8000/sorify\nSORIFY_USERNAME=admin@sorify.local\nSORIFY_PASSWORD=changeme\n/sorify:gateway Create a test suite called \"Awesome App\"\n/sorify:gateway List latest failing tests\n\n/sorify:gateway Create new test suite. Get requirements from JIRA/GHE/Excel. Write using /sorify:generate\n/sorify:gateway Update the test suite http://localhost:8000/sorify/suites/{id} by adding retry twice\n```\n\n**AI Healing**\n\n```\n/sorify:gateway why my test is failing <name of test>\n/sorify:gateway why my test is failing <or-link-to-test>\n# Tests from source code (git)\n/sorify:generate Scan my code and generate tests for <github.com/your/repo>\n\n# Tests from source code (path)\n/sorify:generate Scan my code and generate tests for </path/to/your/source>\n\n# Tests from url (remote)\n/sorify:generate Crawl site and generate tests for https://rakuten.co.jp\n\n# Tests from url (local)\n/sorify:generate Crawl site and generate tests for http://localhost:3000/my-awesome-app\n\n# Tests from requirements\n/sorify:generate Read requirements here <link to docs> <path to docs> <raw paste>\n<you got the idea...>\n/my:qa:skill Create detailed tests <...>\n...then /sorify:gateway once done - upload, run and invetigate failed tests\n```\n\nThis is a chrome extension that works in hybrid mode optionally. While browsing it records browser events, and stores into a file. The sequence of events then can be picked up by AI to better write the test code, works well when more context about the project, such as source code is complemented.\n\nGenerate tests from a real recorded session instead of DOM exploration — chrome-mcp-playwright `sorify-recorder-mcp`\n\n**♢  1.** Install the mcp\n\n```\ncurl -fsSL https://raw.githubusercontent.com/rakutentech/sorify/master/mcp/install-mcp.sh | sh\n```\n\n**♢  2.** Load the **Chrome** extension\n\n`chrome://extensions/` → enable **\"Developer mode\"** → \"Load unpacked\" → select `extension/` folder\n\n*we don't have npx, sorry*\n\n**♢  3.** Start the recorder\n\nSorify recorder should start automatically, when you launch claude/codex.\nYou can check using `/mcp` → `plugin:sorify:sorify-recorder`\n\n**If not**, then start the listener at:\n\n```\n~/.sorify-bin/sorify-recorder-mcp\n```\n\n**No 4.** Click the extension icon → Connect → Start recording\n\n*Perform the clicks/inputs you want turned into a test, then Stop recording.*\n\n**Tip:** to check the port `lsof -nP -iTCP:7420 -sTCP:LISTEN`\n\n**No 5.** Generate tests\n\n```\n/sorify:recording latest\n# Update: APP_KEY, DB_PASSWORD, MYSQL_ROOT_PASSWORD\ncp .env.example .env\n\ncomposer setup\nphp artisan dev\nhttp://localhost:8000/sorify\n```\n\n- **User:**[admin@sorify.local](mailto:admin@sorify.local)\n- **Password:** changeme\n\nSee [INSTALL.md](/rakutentech/sorify/blob/master/INSTALL.md) for other details, self hosting, ephemeral mode, docker.\n\n1. **Sorify Webhook:** Trigger Sorify run/runs from outside\n2. **HTTP Webhook:** Trigger HTTP from sorify - pre/post run\n3. **Github Action Webhook:** Trigger Github action from sorify - pre/post run. Details below:\n\nGitHub Apps are managed under **Admin → GitHub Apps** (dashboard).\nUsed for either **login** or triggering **actions** from Sorify.\n\nTo register an app, follow the walkthrough on the dashboard itself: **Admin → GitHub Apps → \"How to\nregister\"**.\n\nA workflow dispatched by Sorify looks like this:\n\n```\non:\n  workflow_dispatch:\n    inputs:\n      # Injected by Sorify — do not edit\n      sorify_run_id:\n        type: string\n      sorify_suite_id:\n        type: string\n      # and so on. Custom add from - sorify's suite/{id} > settings\n\njobs:\n  sorify:\n    name: Sorify\n    steps:\n      - name: Show Sorify context\n        run: |\n          echo \"sorify_run_id=${{ github.event.inputs.sorify_run_id }}\"\n```\n\nSee [API.md](/rakutentech/sorify/blob/master/API.md) for the complete endpoint list and sample curl requests.\n\n|    [<sub>**MarikoKikugawa**</sub>](https://github.com/MarikoKikugawa)  |    [<sub>** asghar-ahmed**</sub>](https://github.com/asghar-ahmed)  |    [<sub>** HiromichiHagiwara**</sub>](https://github.com/HiromichiHagiwara)  |  | \n|    [<sub>**kevincobain2000**</sub>](https://github.com/kevincobain2000)  |    [<sub>** pulkit-kathuria**</sub>](https://github.com/pulkit-kathuria)  |    [<sub>** chetra-tep**</sub>](https://github.com/chetra-tep)  |    [<sub>** chetratep**</sub>](https://github.com/chetratep)  | \n\n- Raise an issue or PR to `master`\n\nLicensed under the [Apache License, Version 2.0](/rakutentech/sorify/blob/master/LICENSE).\n\nThe Chrome extension in [`extension/`](/rakutentech/sorify/blob/master/extension) is licensed separately\nunder the [BSD 3-Clause License](/rakutentech/sorify/blob/master/extension/LICENSE), which prohibits\npublishing it (or a derivative) under the \"Sorify Recorder\" name without\npermission. See [`extension/README.md`](/rakutentech/sorify/blob/master/extension/README.md) for details.\n\n- **v1** - Intial Release\n- **v1.1** - Batteries added on user management, mcp enhancement\n- **v1.2** - Chrome Extension to record and write playwright tests\n- **v1.3** - Skills updated, MS Teams notifications links to a screenshot, dashboard has admin editable msg\n- **v1.4** - Manage users from MCP.\n- **v1.5** - i18n support for English and Japanese for now.\n- **v1.6** - i18n support for Malay, Simplified Chinese. Extension captures file uploads, iframes, tabs, network. oAuth login, with Avatar. Duplicate a test suite (background copy of tests) and duplicate a test case, available on the dashboard and via MCP (`duplicate_suite` ,`duplicate_test` ).\n- **v1.7** - Cookies support, variables support.\n- **v1.8** - MCP supports runs. Auto redirect after login page. Support for one time CI webhook and who ran the CI.\n- **v1.9** - Chrome extension memory leak fix. Support pre/post webhooks for multiple connectors.\n- **v2.0** - Ephemeral mode", "url": "https://wpnews.pro/news/show-hn-open-sourced-solution-to-ai-manage-playwright-automations", "canonical_source": "https://github.com/rakutentech/sorify", "published_at": "2026-09-12 22:00:47+00:00", "updated_at": "2026-09-12 22:26:37.120094+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "developer-tools", "ai-products", "mlops"], "entities": ["Sorify", "Playwright", "Claude", "Codex", "Chrome", "GitHub Actions", "MCP", "Docker"], "alternates": {"html": "https://wpnews.pro/news/show-hn-open-sourced-solution-to-ai-manage-playwright-automations", "markdown": "https://wpnews.pro/news/show-hn-open-sourced-solution-to-ai-manage-playwright-automations.md", "text": "https://wpnews.pro/news/show-hn-open-sourced-solution-to-ai-manage-playwright-automations.txt", "jsonld": "https://wpnews.pro/news/show-hn-open-sourced-solution-to-ai-manage-playwright-automations.jsonld"}}