@plune-ai/cli 0.33.0 → 0.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -0
- package/dist/cli.cjs +1165 -119
- package/dist/mcp-tools.cjs +932 -0
- package/dist/mcp-tools.d.cts +894 -0
- package/dist/mcp-tools.d.ts +894 -0
- package/dist/mcp-tools.js +895 -0
- package/package.json +8 -2
package/README.md
CHANGED
|
@@ -121,6 +121,7 @@ the last resort, used only when `PLUNE_TOKEN` is set nowhere else. Nothing write
|
|
|
121
121
|
| `plune init` | Scaffold `plune.yaml`, a sample dataset, and `.env.example`. Flags: `--yes` (non-interactive), `--force`. |
|
|
122
122
|
| `plune login` | Save a [Plune platform](https://plune.ai/platform) API token so `sync` and `ingest` can reach it. The token is **checked against the API before it is saved**, so a wrong one fails here rather than two commands later. Get one at `https://beta.plune.ai` → Account → API tokens. Flags: `--token <token>` (omit to paste it or pipe it via stdin), `--skip-verify` (save without checking, for offline setup). In CI, skip this step: every platform command reads `PLUNE_TOKEN` from the environment first, and the saved login only when it is not set. |
|
|
123
123
|
| `plune logout` | Remove the saved token. |
|
|
124
|
+
| `plune mcp serve` | Serve the Plune tools to an AI agent (Claude Code, Codex, any MCP client) over **MCP stdio**. See [Plune tools for AI agents](#plune-tools-for-ai-agents-plune-mcp). Flags: `--project <id>` (default `PLUNE_PROJECT`), `--read-only` (offer only the read tools). |
|
|
124
125
|
| `plune sync` | Upload the latest local run to the platform. Flags: `--file <path>` to send a specific run JSON, `--fail-on-failures` to read the run's summary back once after the upload and exit with [the gate](#a-release-gate---fail-on-failures)'s code. Each upload carries an `Idempotency-Key` (SHA-256 of the body), so sending the same run again returns the same run rather than creating a second one. Against a platform with `POST /v1/jobs` the upload is also reported as a job (kind `sync`, counting the run's rows) that ends completed, or failed with the error text if the sync fails; an older platform without the route is not told, and a job report never fails the sync: when the sync goes through, one the platform did not take is said in one line on stderr. |
|
|
125
126
|
| `plune run import <file \| folder>` | Turn a **JUnit XML** or **Playwright JSON** report, a **k6 summary** or **Lighthouse JSON** report, a **folder of JUnit XML files** (Maven Surefire's `target/surefire-reports`, Gradle's `build/test-results/test`), or an **Allure `allure-results` folder**, into a run in Plune. Needs no provider key — nothing is generated. Flags: `--format junit\|playwright-json\|allure\|k6\|lighthouse` (detected when omitted: a folder with a `*-result.json` is Allure, any other folder is read as the JUnit `*.xml` files in it), `--name <text>` to call the run something other than the [folder-based default](#what-the-run-is-called), `--min-score <category>=<0-100>` (repeatable) for the score a [Lighthouse](#a-k6-summary-or-a-lighthouse-report) category needs to pass, `--key <externalKey>` to land several reports in one run (with `PLUNE_SHARED_RUN=1` — see below), `--create` to offer unmatched tests to the review queue, `--fail-on-missing-attachments` to exit 1 when a file a JUnit report names with `[[ATTACHMENT\|path]]`, or an Allure result names as a `source`, is not there (the results are sent either way), `--upload-concurrency <n>` for files uploaded at once ([1 to 32, default 16](#many-screenshots-upload-concurrency-and-retries)), `--fail-on-failures` to exit with [the gate](#a-release-gate---fail-on-failures)'s code on the summary the platform froze when this import finished the run. |
|
|
126
127
|
| `plune run start` | Open a platform run — or join the one already carrying `--key` — and print its id. Flags: `--key <externalKey>` (generated when absent), `--name <text>` to call the run something other than the [default](#what-the-run-is-called), `--json` for one machine-readable line. |
|
|
@@ -622,6 +623,32 @@ and is never printed or logged. `PLUNE_API_URL` points `sync`, `pull` and `push`
|
|
|
622
623
|
useful for a self-hosted backend. The Markdown format `pull` writes and `push` reads is documented at
|
|
623
624
|
[docs.plune.ai/platform/cases/markdown](https://docs.plune.ai/platform/cases/markdown/).
|
|
624
625
|
|
|
626
|
+
### Plune tools for AI agents: `plune mcp`
|
|
627
|
+
|
|
628
|
+
`plune mcp serve` gives an agent the same Plune your token reaches — the review queue, cases,
|
|
629
|
+
missions, questions, strategy, reports — as MCP tools over stdio. The agent sees at most 20 tools at
|
|
630
|
+
once; the rest it finds with `plune_discover_tools`. Every write tool takes `dry_run`, batches stop at
|
|
631
|
+
100 items, and the agent is held to the platform's agent rules: a proposed case lands in the review
|
|
632
|
+
queue, a bulk decision needs a confirm, and nothing is deleted through MCP.
|
|
633
|
+
|
|
634
|
+
Claude Code:
|
|
635
|
+
|
|
636
|
+
```bash
|
|
637
|
+
claude mcp add plune -- npx -y @plune-ai/cli mcp serve
|
|
638
|
+
```
|
|
639
|
+
|
|
640
|
+
Codex (`~/.codex/config.toml`):
|
|
641
|
+
|
|
642
|
+
```toml
|
|
643
|
+
[mcp_servers.plune]
|
|
644
|
+
command = "npx"
|
|
645
|
+
args = ["-y", "@plune-ai/cli", "mcp", "serve"]
|
|
646
|
+
```
|
|
647
|
+
|
|
648
|
+
The server reads the token the way every platform command does: `PLUNE_TOKEN` from the environment
|
|
649
|
+
(set it in the client's `env` block), else the login `plune login` saved. A read token, or
|
|
650
|
+
`--read-only`, offers only the read tools.
|
|
651
|
+
|
|
625
652
|
## Programmatic API
|
|
626
653
|
|
|
627
654
|
The same engine that powers `plune run` is exported for use from your own code. Unlike the
|