Skip to main content
Glama

๐ŸŽฌ Jev Docs Agent

Describe the goal. Get the video, the screenshots and the user guide.

An open-source, goal-driven agent that walks through any web app in a real browser, records every task as a walkthrough video, and turns the recordings into polished user documentation โ€” driven from Claude Desktop.

License: MIT Python 3.12 Playwright MCP Docker Powered by Jev

Quick start ยท Use cases ยท How it works ยท Alternatives ยท vs. demo platforms ยท Claude Desktop ยท Roadmap ยท Contributing

A real recording: the agent was only told "Order confirmation page shows 'Thank you for your order!'" โ€” it planned every click.


โœจ Why this exists

Product walkthroughs, help-center articles and test evidence all need the same thing: someone clicking through the app, recording it, taking screenshots, and writing it up โ€” and doing it all again after every UI change.

Jev Docs Agent does that work for you:

- name: checkout
  goal: "Order confirmation page shows 'Thank you for your order!'."

That's a complete test case. The agent opens a browser, figures out the clicks, records an HD video with a visible cursor, captures a screenshot after every step, and hands the recording to Claude to write the guide. When the UI changes, you re-run it โ€” no selectors to fix, no scripts to maintain.

๐ŸŽฏ Goal-driven

Say what finished looks like. Jev decides each click from the live page โ€” buttons can move, get renamed or restyled and the goal still works. Hints are optional.

๐ŸŽฅ Evidence by default

Every run produces a .webm video, a screenshot per action, an actions.json trail of every decision, and a pass/fail report.

๐Ÿ“š Docs, not just videos

Claude turns recordings into how-to guides, quick-starts and FAQs โ€” exported as one HTML page (โ†’ PDF) or a zip with MP4s.

๐Ÿ’ฌ Runs from a chat

20 MCP tools let Claude Desktop create projects, write goals, record, debug failures and write docs. No YAML needed.

๐Ÿ” Bring any login

Credentials are supplied, never stored in config: per-project .env, role profiles (admin / viewer), or docker -e in CI.

๐Ÿ’ธ Very low cost

Jev answers in typed decisions, not prose. The 5-video example below estimated ~33 Jev calls โ‰ˆ $0.01.


Related MCP server: @clikta/mcp-server

๐Ÿงญ Use cases

Use case

What you get

๐Ÿ“–

Help-center & user guides

Step-by-step articles with real screenshots and a video per task, regenerated in minutes after a release

๐Ÿš€

Customer onboarding

"Your first 5 minutes" quick-starts and walkthrough videos for new users

๐ŸŽž๏ธ

Product demos & interactive tours

Short, cursor-highlighted demo clips of each feature for sales, landing pages and release notes

๐Ÿงช

Goal-based end-to-end testing

Natural-language smoke/regression tests with pass/fail, video evidence and a step log โ€” no selectors

โœ…

Manual-test replacement & UAT evidence

Executes the steps from your manual test cases and records proof for sign-off, audits or QA reports

๐Ÿ”„

Docs drift detection

Re-run after each deploy: a failed or changed video tells you the docs (or the UI) need attention

๐Ÿ‘ฅ

Role & permission walkthroughs

Same goal, different credential profiles โ€” see exactly what admins vs. viewers can do

๐ŸŒ

Multi-environment checks

Point one project at staging, then production, with -e LOGIN_* per environment

๐ŸŽ“

Training & internal enablement

Recorded procedures for support teams, new hires and SOPs

๐Ÿงพ

Compliance & change records

Timestamped videos + screenshots of how a workflow behaves at each release

๐Ÿž

Bug reproduction

Describe the bug's path as a goal; get a video of exactly what happens

๐Ÿค

Agencies & consultants

One tool, many client apps โ€” each client is its own project with its own login

  • Technical writers / docs teams โ€” keep screenshots and steps current without re-shooting everything by hand.

  • Product & growth teams โ€” produce demo clips and onboarding content without a video tool subscription.

  • QA & test engineers โ€” express tests as goals, get evidence for free, stop maintaining brittle selectors.

  • Founders & small teams โ€” get a help center and a smoke test suite from the same few lines of YAML.

  • Developers โ€” script it from the CLI or CI with Docker; everything is plain files.


๐Ÿ†š How it compares

Jev Docs Agent is an open-source, self-hosted alternative that sits between demo builders, documentation tools and test automation โ€” it does a useful part of each, from one goal definition.

Jev Docs Agent

Interactive demo platformsStorylane, Navattic, Supademo, Arcade, HowdyGo, Consensus, Reprise, Demostack

Guide/doc captureScribe, Tango, Guidde

Scripted E2E testingPlaywright, Cypress, Selenium

Manual testing

Records itself (no human clicking)

โœ…

โŒ

โŒ

โœ…

โŒ

Defined by a goal in plain English

โœ…

โ€”

โ€”

โŒ code + selectors

โœ… test steps

Survives UI changes without edits

โœ… mostly

โŒ re-record

โŒ re-record

โŒ fix selectors

โœ…

Walkthrough video

โœ… webm / mp4

โœ…

โš ๏ธ some

โš ๏ธ on failure

โŒ

Written user guide

โœ… AI-written

โš ๏ธ captions

โœ…

โŒ

โŒ

Pass / fail result

โœ…

โŒ

โŒ

โœ…

โœ…

Interactive click-through demo

โŒ

โœ…

โŒ

โŒ

โŒ

Precise assertions (exact values, API state)

โš ๏ธ visual goal checks

โŒ

โŒ

โœ…

โœ…

Self-hosted, open source, your data stays local

โœ… MIT

โŒ SaaS

โŒ SaaS

โœ…

โœ…

Cost

API usage only (cents)

per-seat SaaS

per-seat SaaS

free + engineer time

tester time

๐ŸŽž๏ธ An open-source alternative to interactive demo platforms

Demo platforms are built for go-to-market teams: a person captures the product, the platform turns it into an interactive tour or sandbox, and tracks how buyers engage. Jev Docs Agent automates the other half โ€” an AI agent captures every flow by itself and produces videos, guides and a pass/fail result, again on every release.

Category

Platforms

Where Jev Docs Agent fits

High-fidelity & full-funnel builders

Storylane ยท Navattic ยท Supademo

โœ… Alternative for walkthrough videos and guides ยท ๐Ÿค complement for interactive tours & ABM analytics

Lightweight & fast product tours

Arcade ยท HowdyGo

โœ… Alternative for feature videos in help articles & announcements ยท ๐Ÿค complement for embedded click-throughs

Enterprise & sales-engineering platforms

Consensus ยท Reprise ยท Demostack

๐Ÿค Produces the feature videos and verifies flows ยท โŒ no sandboxes, app cloning or buyer intent

โ†’ Full breakdown: Jev Docs Agent vs. interactive demo platforms โ€” feature matrix, platform-by-platform notes, a release workflow that uses both, and a decision guide.

Use it instead ofโ€ฆ

  • Storylane / Supademo / Arcade / HowdyGo โ€” when the deliverable is walkthrough videos and written guides of real flows, regenerated on every release, rather than hand-built interactive tours. Keep a demo platform for clickable, branching tours, lead capture and buyer analytics.

  • Navattic / Consensus / Reprise / Demostack โ€” not as a replacement: they own ABM, buyer intent and sandboxes. Use the agent to produce the underlying videos and to flag which demos went stale after a release.

  • Scribe / Tango โ€” when you want the capture done for you: nobody has to click through the app.

  • Manual testing โ€” for repeatable happy-path checks and UAT evidence; keep humans for exploratory testing and judgment calls.

  • Playwright / Cypress scripts โ€” for smoke tests and flows that break often because of UI churn. Keep coded tests where you need exact assertions, data setup and millisecond-level reliability in CI. The two work well together: this project is built on Playwright.

Honest limits. Goal-based checks are judged visually by a model, so they are excellent at "did the flow work?" and weaker at "is this number exactly 42.17?". It's not a load-testing or security-testing tool.


โš™๏ธ How it works

flowchart LR
    G["๐ŸŽฏ Goal<br/><i>'Order confirmation<br/>page is shown'</i>"] --> L
    subgraph L["Recording loop (per step)"]
        direction TB
        S["๐Ÿ‘€ Read the page<br/>elements, text, popups"] --> J["๐Ÿง  Jev decides<br/>next element ยท value<br/>done? ยท confidence"]
        J --> A["๐Ÿ–ฑ๏ธ Playwright acts<br/>click ยท type ยท choose ยท upload"]
        A --> C{"Stuck or unsure?"}
        C -- yes --> K["๐Ÿงญ Claude coach<br/>looks at a screenshot,<br/>gives one tip"] --> S
        C -- no --> S
    end
    L --> O["๐Ÿ“ฆ video.webm ยท step_N.png<br/>actions.json ยท run_report.md"]
    O --> D["๐Ÿ“ Claude writes the guide"] --> E["๐Ÿ“ค HTML ยท PDF ยท ZIP ยท MP4"]

Jev is TypeSafe AI's System One model: instead of writing prose it returns typed decisions with calibrated confidence. Every step the agent asks Jev several structured questions at once โ€” which element next? what to type? did the last action work? is the goal done? โ€” so it's fast, cheap and knows when it's unsure. When it is unsure, a Claude coach looks at a screenshot and gives one concrete tip. Safety rails sit around all of it:

  • ๐Ÿšซ forbid_labels โ€” buttons the agent may never click (payments, delete, sign out) unless a video explicitly allows them.

  • ๐Ÿ”’ Secrets stay secret โ€” passwords come from env files, are typed into fields but never written to logs, actions.json or tool replies.

  • โฑ๏ธ Budgets โ€” max steps, max wait, stall detection and loop detection on every video.

  • โœ… Honest "done" โ€” a video only passes after at least one action and a confident goal check.


๐Ÿš€ Quick start

Prereqs: Docker (or Python 3.12) and an OpenRouter key (or a TypeSafe key). The example uses Sauce Demo, a public test shop.

git clone https://github.com/kaivalpatel6350/jev-docs-agent.git && cd jev-docs-agent
cp .env.example .env                                    # add OPENROUTER_API_KEY
cp projects/swaglabs/.env.example projects/swaglabs/.env  # Sauce Demo's public test login
docker build -t jev-docs-agent .

docker run --rm -v "$PWD/projects:/app/projects" \
  --env-file .env jev-docs-agent \
  python agent.py videos --project swaglabs
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
playwright install chromium

python agent.py videos --project swaglabs

In about two minutes you'll have five videos and a report in projects/swaglabs/out/:

Video

Goal (all the agent was told)

Result

login

Signed in: the Products page is shown

โœ… 3 actions

sort-products

Sorted by each option, ending on Price (high to low)

โœ… 3 actions

add-to-cart

Cart shows the product, then it's removed and the cart is empty

โœ… 4 actions

checkout

Order confirmation page shows "Thank you for your order!"

โœ… 8 actions

logout

Signed out through the menu; the login page is shown

โœ… 2 actions

Then write and export the docs โ€” from Claude Desktop (below) or the CLI:

python agent.py docs   --project swaglabs          # Claude writes the guides (uses your OpenRouter key)
python agent.py export --project swaglabs --mp4    # one HTML guide + a zip with MP4s

๐Ÿ‘‰ See a generated result: docs/example-swag-labs-guide.md


๐Ÿ’ฌ Drive it from Claude Desktop (MCP)

The MCP server lets Claude Desktop do everything โ€” including writing guides.yaml for a brand-new app.

1. Build the image, then 2. merge this into ~/Library/Application Support/Claude/claude_desktop_config.json (Windows: %APPDATA%\Claude\claude_desktop_config.json) and restart Claude Desktop:

{
  "mcpServers": {
    "docs-agent": {
      "command": "docker",
      "args": ["run", "-i", "--rm",
               "-v", "/ABSOLUTE/PATH/TO/jev-docs-agent/projects:/app/projects",
               "--env-file", "/ABSOLUTE/PATH/TO/jev-docs-agent/.env",
               "-e", "HOST_PROJECTS_DIR=/ABSOLUTE/PATH/TO/jev-docs-agent/projects",
               "jev-docs-agent"]
    }
  }
}

3. Just ask:

"Create a docs project for https://app.acme.com. Make videos for signing in, creating an invoice and exporting a report. Record them, fix anything that fails, then write a how-to guide and export it as HTML and MP4."

"Here's our user manual (attached) โ€” make a video for every how-to in it and group them into guides."

"Record the settings videos as the admin profile, then compare with the viewer profile."

Area

Tools

Projects

list_projects ยท create_project ยท get_project ยท update_settings ยท check_project

Test logins

get_credentials ยท set_credentials ยท remove_credentials_profile

Goals

add_video ยท remove_video

Recording

run_videos (background job) ยท job_status ยท stop_job ยท get_recording (steps, screenshots, why it failed)

Docs

add_doc ยท remove_doc ยท get_doc_brief ยท save_doc ยท get_doc

Sharing

export_project (HTML guide ยท ZIP ยท MP4)

When Claude Desktop writes the docs itself (get_doc_brief โ†’ save_doc), no Claude API key is needed โ€” only Jev's key is used for recording. Every edit to guides.yaml keeps a .bak.


๐Ÿ“ Writing goals

app_url: https://www.saucedemo.com
forbid_labels: [Logout, Reset App State, Delete Account, Purchase]
test_data:
  username: ${LOGIN_USERNAME}        # secret โ†’ supplied from .env / docker -e
  password: ${LOGIN_PASSWORD}
  first_name: Jane                   # plain demo values Jev may type

videos:
  - name: login
    goal: "Signed in: the Products page (inventory list) is shown."
    start_path: /

  - name: checkout
    goal: "Order confirmation page shows 'Thank you for your order!'."
    start_after: login               # reuse the signed-in session
    start_path: /inventory.html
    hints:                           # optional โ€” only where Jev needs help
      - "Fill First Name, Last Name, Zip/Postal Code from test data"

docs:
  - name: shopping-guide
    type: how-to guide
    audience: new customers
    videos: [login, checkout]

Key

What it does

goal

What finished looks like, checkable on screen. One task per video.

hints

Optional steps. **Label** = exact button text, 'text' = which row/section.

start_after / start_path

Reuse a previous video's session; open a specific page.

allow

forbid_labels this one video may click (e.g. Logout for a logout video).

enabled: false + reason

Never recorded (payments, real emails) โ€” documented from your reference doc.

reference_doc

An existing manual (.docx / .md) whose wording and button names the docs should keep.

Tips: make goals verifiable ("the list shows INV-001 as Sent" beats "create an invoice"), keep one task per video, use demo accounts and synthetic data โ€” screenshots are sent to the model.


๐Ÿ” Test logins

guides.yaml only names variables; values are supplied separately, so one project runs against any account or environment. Precedence: docker -e / shell โ†’ .env.<profile> โ†’ project .env โ†’ root .env.

How

Where

Best for

"Set the login for acme: qa@acme.com / โ€ฆ"

projects/acme/.env

quick setup with demo accounts

Edit the file yourself

projects/acme/.env

real test accounts (never passes through chat)

"Add an admin login"

projects/acme/.env.admin (only what differs)

role-based walkthroughs

docker run -e LOGIN_USERNAME=โ€ฆ -e LOGIN_PASSWORD=โ€ฆ

process env

CI and other environments

Pick per run: run_videos(profile="admin"), --profile admin, or -e LOGIN_PROFILE=admin.


๐Ÿงฐ CLI reference

python agent.py plan    --project <name>                  # free: validate config, credentials, run order, cost
python agent.py videos  --project <name> [--only a,b] [--profile admin]
python agent.py docs    --project <name> [--only a] [--dry]   # Claude writes docs (--dry: build requests only)
python agent.py improve --project <name> [--only a]       # Claude rewrites failed goals/hints and re-records
python agent.py export  --project <name> [--only a] [--mp4]
agent.py              recording loop (Jev + Playwright), docs, improve, export CLI
mcp_server.py         20 MCP tools for Claude Desktop
exporter.py           HTML guide / ZIP / MP4 packaging
projects/<name>/
  guides.yaml         app_url, test_data, forbid_labels, videos (goals), docs
  .env, .env.<role>   test logins (git-ignored)
  out/                videos/<video>/{video.webm, step_N.png, actions.json}, docs/, exports/, run_report.md

โ“ FAQ

Jev is TypeSafe AI's first public System One model โ€” built for decisions inside software rather than chat. You send it structured questions (Choice, Noul, Score) and get typed answers with calibrated confidence. That makes it a good fit for a browser agent that needs to pick one element out of hundreds, many times per video, cheaply. It's available through the TypeSafe API and OpenRouter.

Recording only needs Jev. Claude is used for the optional coach (when Jev is stuck), for improve, and for writing docs from the CLI. If you use Claude Desktop, it writes the docs itself through MCP. One OpenRouter key covers Jev and Claude.

python agent.py plan estimates it before you run anything. The Sauce Demo example estimated ~33 Jev calls (โ‰ˆ $0.01). Coach calls and doc writing with Claude cost more than Jev calls; with Claude Desktop writing the docs they come out of your Claude plan.

Any app a browser can open. Username/password logins work out of the box; the session is reused across videos. SSO redirects usually work if the test account doesn't need MFA. MFA codes and CAPTCHAs are not solved โ€” use a test account without them, or a test environment that disables them.

Everything runs on your machine or your own Docker host; outputs are plain files. Page text and screenshots are sent to the model providers you configure (TypeSafe / OpenRouter / Anthropic), so use demo accounts and synthetic data. Passwords are never written to logs, actions.json or MCP replies โ€” but if your app prints a secret on screen, it will appear in screenshots.

That's what Playwright records. export --mp4 (or "export as mp4") converts them to H.264 MP4 for PowerPoint, Confluence, Notion or any player.

Yes โ€” docker run โ€ฆ python agent.py videos --project <name> exits after writing run_report.md and actions.json per video, with credentials from -e variables. Fail the build by checking each video's status.


๐Ÿ—บ๏ธ Roadmap

Next

Theme

Highlights

v0.2

๐ŸŽ™๏ธ Narrated & annotated

AI voice-over synced to each step ยท captions (SRT/VTT) ยท step-by-step manuals (DOCX/PDF) with highlighted screenshots ยท QA test-case format

v0.3

๐Ÿš€ Share & verify

Self-hosted interactive HTML tour ยท trim login & idle time ยท GitHub Action + JUnit ยท visual change detection ยท multi-language

Later

๐Ÿ”ญ

Confluence / Notion / Docusaurus export ยท explore mode ยท test-case import ยท TOTP/MFA ยท mobile viewports ยท branding

โ†’ Full plan with designs, status and effort: ROADMAP.md

๐Ÿ’ก Have an idea?

This project is shaped by its users. Share it in Ideas, ๐Ÿ‘ the issues you want most โ€” priorities follow demand.

๐Ÿค Contributing

Contributions of every size are welcome โ€” ideas, bug reports, example projects against public demo apps, docs and code.

  • ๐ŸŒฑ New here? Try a good first issue.

  • ๐Ÿ“– Read CONTRIBUTING.md for setup, testing and the PR checklist.

  • ๐Ÿ” Never commit .env files, real credentials or recordings of private apps.

  • ๐Ÿค— Please follow the Code of Conduct.

๐Ÿ“„ License

MIT ยฉ 2026 Kaival Patel. Jev and TypeSafe are trademarks of TypeSafe AI; Claude is a trademark of Anthropic; Storylane, Navattic, Supademo, Arcade, HowdyGo, Consensus, Reprise, Demostack, Scribe, Tango and Guidde are trademarks of their respective owners and are mentioned only for comparison. This project is not affiliated with any of them. Sauce Demo is a public demo site by Sauce Labs.

If this saves you a day of screenshots, give it a โญ

jev ยท typesafe-ai ยท system-one ยท ai-agent ยท browser-automation ยท playwright ยท mcp ยท claude-desktop ยท documentation-generator ยท walkthrough-videos ยท e2e-testing ยท no-code-testing ยท supademo-alternative ยท storylane-alternative ยท arcade-alternative ยท navattic-alternative ยท interactive-demo ยท scribe-alternative ยท test-automation ยท open-source

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Records a browser window while Claude drives it and converts the recording into labelled contact sheets, key frames, and an action-correlated timeline for evidence-based evaluation. macOS 15+ only.
    432 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Lets Claude Code drive your own Chrome browser with human-like clicks, drags, and typing. It uses your real sessions and logins, and pauses for your confirmation on anything irreversible.
    8
    MIT