anaksor-ocr
Sokheng · Kit
Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…

TesterArmy’s open source testing framework for web and mobile apps. You write a goal in words and an agent drives the app. Its skill and MCP server let Claude Code, Codex or Cursor write, run and fix the tests.
Tester Army e2e is an open-source project on GitHub in the Developer category, listed by Mindket. It is free. This is version 2, last updated on . Install it from GitHub as its README says. Get Mindket’s setup notes on your Mindket account, as a zip.
npx e2e init npx e2e run
And 3 more in Where to use it
e2e is an end-to-end testing framework for web and mobile apps, made by TesterArmy. A test can hold exact locator checks, plain-language goals that an agent carries out, or both. This listing covers the part that touches your coding agent. A skill teaches Claude Code, Codex or Cursor how e2e works. An MCP server gives the agent a live session on your app, and a trace page shows it what happened in a failed test. The agent walks a flow in the running app and writes each step into the test as it goes.
Developers who ship a web or mobile app and want their coding agent to write and fix the UI tests, and to check its own UI changes in the running app. QA engineers with a Playwright, Cypress, Selenium, Detox or Maestro suite can move the suite over one slice at a time. Version 1.0 is not out yet, and the README says APIs and config can still change between minor releases.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| Web and SaaS teams | Front-end and full-stack developers | Ask the agent to write a test while it walks a flow in the running app | A developer asks for a checkout test, and each step lands in the file as the agent takes it. |
| Mobile app teams | iOS, Android and Expo developers | Run the same kind of test on a simulator or an emulator | An Expo developer starts from the with-expo example and runs the suite on an iOS simulator. |
| QA and test engineering | QA engineers and test leads | Port an existing suite one slice per session | A QA lead moves one Playwright slice while the old suite keeps running. |
| Release and CI | Developers and reviewers | Bug bash a branch, or post run results as a pull request comment | A developer asks for a bug bash and keeps only the findings a repro test proves. |
Skip it if you need a settled 1.0 API, or if you work on Windows and will not use WSL: the quickstart says to run e2e inside WSL.
TesterArmy’s docs give full steps for three coding agents, and a folder for the skill that several more read.
The tests run in a browser (Chromium, Firefox and WebKit through Playwright) or on iOS simulators, Android emulators and phones connected to your machine.
Get it saves a zip of Mindket’s setup notes in your downloads folder, with each agent’s steps from TesterArmy’s docs. The main route is the setup wizard, run in your app’s directory.
| Need | Detail |
|---|---|
| Node.js | 24.8 or newer, or 22.22.3 or newer on Node.js 22 |
| Windows | The quickstart says to run inside WSL |
| A browser | e2e downloads one when it is missing |
| A model for agent steps | Optional: an API key, a gateway, a local model, a ChatGPT, Copilot, OpenCode Console or SuperGrok login, or your Claude Code or Codex login. Tests without agent steps need none |
| Xcode or the Android SDK | Only for mobile tests |
npx e2e init npx e2e run
The MCP server runs from the project’s own e2e install, so run the wizard and its install first. By hand, the line for Claude Code is below, and for Codex the server goes in .codex/config.toml.
claude mcp add --scope project e2e -- npx e2e mcp
[mcp_servers.e2e] command = "npx" args = ["e2e", "mcp"]
Ask your agent in plain words. The MCP server page gives these prompts, and says that adding “headed” shows a local browser or simulator.
Add a Remember me checkbox to the login form. Check it in the app with e2e. Write a test for checkout while you walk it in the app. Reproduce issue #123 in the app and record a video.
While it iterates, the agent runs only the test it works on, by the line its test( opens on. A failed run writes a trace page under .e2e/results/ with the failing line, each step, the values an assertion read, console errors and failed requests. The agent reads that page and fixes every line it covers.
You work on an app with a sign-in form and a checkout, and the MCP server is registered. You type:
Write a test for checkout while you walk it in the app.
The agent opens a session and takes each step on the live screen. Every action answers with the line that repeats it. The MCP page shows an answer of this shape:
Tapped #n31.
Test line: await screen.getByRole("button", "Sign in").tap();The agent copies those lines into tests/checkout.e2e.ts. A goal such as “add the cheapest item” goes in as an agent.act step with an expect after it. You get a test file whose locator lines were checked on the live screen, and you can rerun it by line.
If you are new. An end-to-end test uses your app the way a person does: it opens a page, types, clicks and checks what shows up. Written by hand, those tests are scripts of selectors and waits. With e2e you write a goal in words, and an agent does it. The docs say the agent adapts when the UI changes, so you fix fewer tests. Once a check on the screen passes, the run records what the agent did and replays it with no model calls. Start with the wizard in a small app. The example test needs no key.
For experts. A recording is written only when a later verification passes: a locator matcher, an engine assertion such as toHaveURL, locator.waitFor() or agent.assert. Reading a value with textContent() or expect.poll does not count. When a recorded control no longer matches, replay never guesses. It hands the rest of the step to the agent, which finishes from the current screen, and the run can save the new recording. Only agent.act replays. The docs say agent.assert, agent.waitFor and agent.extract always run live.
Renaming a test or rewording a goal makes its recording miss. The skill tells the agent to keep the cache on while it fixes a test and to turn retries off, since a retry runs every goal live. Once the test passes, it runs it one time with --no-cache to confirm that the live agent still reaches each goal.
Beyond tests, e2e explore gives the agent a goal in place of a test file and reports findings. A bug bash runs several of these at once, four at a time, each on one charter, and the agent keeps a finding only when a repro test fails. Each session spends model calls. The @e2e-dev/acp package can run agent steps on Claude Code or Codex over the Agent Client Protocol, with the agent’s own login, and keeps the agent to e2e’s step tools.
Most of e2e runs on your machine, and a few paths reach out.
This kit holds setup notes only. Mindket wrote them. The e2e framework, its skills and its plugin install from TesterArmy's repository: https://github.com/tester-army/e2e
These notes are not made or endorsed by TesterArmy. The README says e2e is built by TesterArmy, "the agentic testing platform that runs natural language tests on web and mobile apps, on every pull request or on a schedule." The documentation is at https://e2e.tester.army/docs
License: Apache-2.0. The LICENSE file (https://github.com/tester-army/e2e/blob/main/LICENSE) is the standard Apache License 2.0 text and fills in no copyright holder. The NOTICE file (https://github.com/tester-army/e2e/blob/main/NOTICE) reads "Copyright 2026 TesterArmy, Inc." and "This product includes software developed at TesterArmy, Inc. (https://tester.army)."
The README says e2e is in active development on the way to 1.0, and that APIs and config can still change between minor releases.
e2e npm package, which holds the SDK, the runner and the CLI, added to your project's devDependencies. Source: https://github.com/tester-army/e2e/blob/main/README.md@e2e-dev/web for browsers (Chromium, Firefox and WebKit through Playwright) or @e2e-dev/mobile for iOS simulators and Android emulators (through agent-device).npx e2e init, the files listed in the CLI reference: e2e.config.ts, tests/example.e2e.ts, a test:e2e script and the missing entries in .gitignore, plus, where you choose them, the agent skill in .agents/skills/e2e/ and .claude/skills/e2e/, and the MCP server entry in .mcp.json and .cursor/mcp.json. Source: https://e2e.tester.army/docs/reference/clie2e, create-verification-skill and migrate-to-e2e. The plugin adds neither the npm package nor the MCP server. Source: https://e2e.tester.army/docs/coding-agents^22.22.3 || >=24.8.0 in its engines field. @e2e-dev/web, @e2e-dev/mobile and @e2e-dev/acp list the same.npx @e2e-dev/web install chromium --with-deps.npx agent-device doctor checks the setup. Source: https://e2e.tester.army/docs/mobileRun it in your app's directory. It asks for an engine, a model provider and where to put the skill and the MCP entry, then shows every change before it writes anything.
npx e2e init
Source: https://e2e.tester.army/docs/quickstart
To update, the CLI reference gives:
npx e2e upgrade
It moves e2e and the @e2e-dev/* packages in your package.json, installs them, and refreshes the skill copy in .agents/skills/e2e or .claude/skills/e2e. Source: https://e2e.tester.army/docs/reference/cli
The README and the docs give no uninstall steps. npx e2e logout forgets a stored model login. Source: https://e2e.tester.army/docs/reference/cli
To take it out by hand, these notes (Mindket's, not TesterArmy's) go by the files the CLI reference says init writes: remove e2e and the @e2e-dev/* packages with your package manager, delete e2e.config.ts, the example test, the test:e2e script, .agents/skills/e2e/ and .claude/skills/e2e/, the e2e entry in .mcp.json and .cursor/mcp.json, and the .e2e/ output folder. Logins are kept in ~/.config/e2e/oauth.json and the telemetry choice in ~/.config/e2e/telemetry.json (%APPDATA%\e2e\ on Windows). Claude Code removes its plugin with its own command:
claude plugin uninstall e2e@e2e
The README says the CLI sends anonymous usage data, such as which commands and engines run and where runs fail, but no test content, app content or credentials. The Telemetry page lists every field. Either of these turns it off. Source: https://e2e.tester.army/docs/telemetry
npx e2e telemetry disable
export E2E_TELEMETRY_DISABLED=1
DO_NOT_TRACK=1 works too. To see what would be sent without sending it, run any command with E2E_TELEMETRY_DEBUG=1. The Telemetry page adds that in CI only the environment variables turn it off.
npx skills add tester-army/e2e, the route without init, runs a separate tool: the skills CLI from vercel-labs/skills. Its npm entry asks for Node.js 22.20 or newer, and its README says it collects anonymous usage data unless DISABLE_TELEMETRY=1 or DO_NOT_TRACK=1 is set. Source: https://github.com/vercel-labs/skills
The Security page says a run connects to your model provider, the app under test and, unless you opt out, telemetry at eu.i.posthog.com. There is no crash reporting. Its list of outbound connections adds the daily npm registry check for a newer release, e2e login and e2e models calls to the subscription provider, Playwright's one-time browser download and each hosted integration you turn on. Source: https://e2e.tester.army/docs/reference/security
README.md 6 KB setup/claude-code.md 5 KB setup/codex.md 2 KB setup/cursor.md 2 KB setup/mobile.md 2 KB setup/models-and-logins.md 6 KB setup/other-agents.md 2 KB
Updated by Mindket to the current version of this kit.
Posts and comments that name this project on Hacker News, Bluesky, X, Reddit, Facebook and YouTube, found by a weekly search and on Trendshift. Mindket doesn’t write or check them. Open one to read it where it was posted.
Sokheng · Kit
Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…
Qwen · Kit
Qwen2.5-7B-Instruct as GGUF files in eight quantization sizes, to chat with locally through llama.cpp. For people who want a capable 7.6B model on their own co…
ACE-Step · Kit
Generates music from text with a 4B diffusion decoder, 50 steps and guidance control, aiming for higher audio quality than the base. For creators with a GPU of…
hubastard · Kit
Runs end-to-end UI tests for Android, iOS and web apps from plain YAML files, driving the app from outside. For developers and QA teams who want quick test run…
alirezarezvani · Skill
Adds 411 ready-made skills for Claude Code and other coding agents, grouped by role from engineering and product to marketing, finance and compliance. Installs…
block · Kit
Self-hostable workspace where people and AI agents share the same rooms, built on a Nostr relay that logs every action as a signed event. For teams that want t…