Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 21 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ concurrency:
cancel-in-progress: true

permissions:
id-token: write
contents: write
pull-requests: write

Expand All @@ -19,6 +20,7 @@ jobs:
outputs:
releases_created: ${{ steps.release.outputs.releases_created }}
paths_released: ${{ steps.release.outputs.paths_released }}
cli_release_created: ${{ steps.release.outputs['packages/cli--release_created'] }}
mcp_release_created: ${{ steps.release.outputs['packages/mcp--release_created'] }}
steps:
- uses: googleapis/release-please-action@v4
Expand Down Expand Up @@ -46,5 +48,22 @@ jobs:
- run: npm run build --workspace @testplane/mcp

- run: npm publish --workspace @testplane/mcp --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

publish-cli:
needs: release-please
if: ${{ needs.release-please.outputs.cli_release_created == 'true' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: actions/setup-node@v4
with:
node-version: "22"
registry-url: "https://registry.npmjs.org"
cache: "npm"

- run: npm ci

- run: npm run build --workspace @testplane/cli

- run: npm publish --workspace @testplane/cli --access public
1 change: 1 addition & 0 deletions .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"packages/cli": "0.1.0",
"packages/mcp": "0.6.0"
}
8 changes: 7 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,14 @@ A collection of AI integrations for Testplane, which enables agents to interact
- AI Agents no longer have to take guesses as to how your app works — they can truly see what's happening inside a browser and write quality tests for you
- Let LLMs use text-based or visual-based snapshots, depending on what works better for your app

### Testplane CLI

Testplane CLI is a command line interface for inspecting and controlling a browser from your terminal. It makes possible to perform any browser interactions, inspect HTML Reports and Time Travel snapshots, use REPL mode to debug failing tests and more.

Read [full documentation](./packages/cli/README.md) to learn more.

### Testplane MCP

Testplane MCP is a [Model Context Protocol server](https://modelcontextprotocol.io/quickstart/user) for Testplane, which enables LLMs to "see" and interact with any web app.
Testplane MCP is a [Model Context Protocol server](https://modelcontextprotocol.io/quickstart/user) for Testplane, which has the same capabilities as Testplane CLI and allows LLMs to "see" and interact with any web app.

Read [full documentation](./packages/mcp/README.md) to learn more.
66 changes: 66 additions & 0 deletions packages/cli/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="docs/images/logo-dark.svg" width="300">
<source media="(prefers-color-scheme: light)" srcset="docs/images/logo-light.svg" width="300">
<img alt="Testplane CLI logo" src="docs/images/logo-light.svg" width="300">
</picture>
</p>

<p align="center">
<a href="https://www.npmjs.com/package/@testplane/cli"><img src="https://img.shields.io/npm/d18m/@testplane/cli.svg" alt="Total Downloads"></a>
<a href="https://testplane.io/docs/v8/ai/toolkit/testplane-cli/"><img src="https://img.shields.io/badge/Docs-Website-6c47ff" alt="Documentation"></a>
<a href="https://www.npmjs.com/package/@testplane/cli"><img src="https://img.shields.io/npm/v/@testplane/cli.svg" alt="Latest Release"></a>
<a href="https://github.com/gemini-testing/testplane-mcp/blob/master/LICENSE"><img src="https://img.shields.io/npm/l/@testplane/cli.svg" alt="License"></a>
<a href="https://t.me/testplane"><img src="https://img.shields.io/badge/community-chat-blue?logo=telegram" alt="Community Chat"></a>
</p>

Testplane CLI is a command line interface for inspecting and controlling a browser from your terminal. It makes possible to perform any browser interactions, inspect HTML Reports and Time Travel snapshots, use REPL mode to debug failing tests and more.

Read the [full Testplane CLI documentation](https://testplane.io/docs/v8/ai/toolkit/testplane-cli/).

### Installation

Install globally:

```bash
npm install -g @testplane/cli
```

Or run it without installing:

```bash
npx @testplane/cli@latest --help
```

### Examples

Open a page and capture a DOM snapshot:

```bash
testplane-cli navigate https://example.com
testplane-cli snapshot
```

Interact with the current page:

```bash
testplane-cli click --role button --name "Submit"
testplane-cli type "#email" --value user@example.com
```

Run custom Testplane code against the active browser session:

```bash
testplane-cli run-code "await browser.getUrl()"
testplane-cli run-code --file ./scripts/check-page.js
```

### Capabilities

Testplane CLI runs a reusable local daemon for each project, so commands can share the same browser session across terminal invocations.

- Various browser interactions: navigate pages, click and type into elements, manage tabs, read console output, take screenshots, and inspect DOM or visual state.
- HTML reporter integration: open reports and inspect captured time travel snapshots.
- REPL mode integration for interactive browser exploration from the terminal.
- Save and restore browser state to handle authenticated flows.
- Run arbitrary Testplane code when built-in commands are not enough.
1 change: 1 addition & 0 deletions packages/cli/docs/images/logo-dark.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading