Plugin name
arcus
Short description
Records Copilot CLI sessions — prompts, tool calls, and file snapshots — to a local JSONL log via lifecycle hooks, so the work done in a session can be reviewed, mapped to a ticket, and turned into e2e test cases. Optionally syncs that history to Testsigma for teams that use it.
GitHub repository
testsigmahq/arcus-copilot-plugin
Plugin path inside the repository
No response
Ref to review
v1.0.0
Commit SHA to review
afa50cce728559c20904865a9acbdf569e09095a
Version
1.0.0
License identifier
MIT
Author name
Testsigma
Author URL
https://testsigma.com
Homepage URL
https://testsigma.com
Keywords
testsigma
arcus
test-automation
e2e-testing
session-capture
qa
Additional notes for reviewers
Commercial disclosure up front: I work at Testsigma. Per the guidance in
discussion #968, here is exactly what depends on a Testsigma account and what
does not, so you can judge the split rather than take my word for it.
There is a permanent $0 tier, not just a trial — Testsigma Test Management
has a "Free Forever" plan (up to 10 users; unlimited projects, test cases and
test runs; 10 GB storage; 60-day retention; no card, immediate access):
https://testsigma.com/pricing?product=test-management — note the
?product=test-management tab specifically; the default pricing pane shows only
the paid Web Testing plans. So this plugin is usable end to end without a paid
subscription, and the paid tiers add scale rather than unlocking the plugin.
What works with no account and no network: the capture layer. Lifecycle hooks
(sessionStart, userPromptSubmitted, pre/postToolUse, errorOccurred,
sessionEnd) write session_manifest.json + events.jsonl under the plugin
data dir. Ingest is auth-gated and off by default — until a user runs
/arcus:login, nothing is transmitted; unauthenticated sessions only write local
files. There is no signup prompt, nag, or telemetry on install.
What requires a Testsigma account (the free tier is sufficient): /arcus:push (sync to Agentic Test) and the project
Dependencies are deliberately thin, since I saw prior submissions declined for
opaque third-party code. The scripts are standard-library only — urllib, json,
hashlib, base64, pathlib, webbrowser, fcntl. keyring is the sole
optional extra and is imported inside a try/except with a graceful fallback
(scripts/auth/keystore.py:23), so nothing needs installing for the plugin to
run. No npm packages, no vendored binaries, no curl-to-shell.
Credential handling: a refresh token in the OS keychain plus a 0600 config
file in the plugin data dir. No .env, no plaintext secrets on disk. Access
tokens are refreshed lazily; account_id comes from JWT claims captured at login.
Layout: plugin at the repository root, manifest at
.github/plugin/plugin.json, commands in commands/, hooks in
hooks/hooks.json. Hosts (apiServer / authServer) are read from the plugin's
own committed .github/plugin/marketplace.json, so this listing needs no config
block.
I recognise session capture touches sensitive data, so I'd rather over-disclose:
if you'd prefer the ingest side gated differently, or the listing scoped to the
local-capture commands only, I'm happy to adjust.
Unrelated: the Open VSX entry testsigma/arcus is our separate Cursor
extension (testsigmahq/arcus-cursor-extension). This submission is the Copilot
CLI plugin.
Submission checklist
Plugin name
arcus
Short description
Records Copilot CLI sessions — prompts, tool calls, and file snapshots — to a local JSONL log via lifecycle hooks, so the work done in a session can be reviewed, mapped to a ticket, and turned into e2e test cases. Optionally syncs that history to Testsigma for teams that use it.
GitHub repository
testsigmahq/arcus-copilot-plugin
Plugin path inside the repository
No response
Ref to review
v1.0.0
Commit SHA to review
afa50cce728559c20904865a9acbdf569e09095a
Version
1.0.0
License identifier
MIT
Author name
Testsigma
Author URL
https://testsigma.com
Homepage URL
https://testsigma.com
Keywords
testsigma
arcus
test-automation
e2e-testing
session-capture
qa
Additional notes for reviewers
Commercial disclosure up front: I work at Testsigma. Per the guidance in
discussion #968, here is exactly what depends on a Testsigma account and what
does not, so you can judge the split rather than take my word for it.
There is a permanent $0 tier, not just a trial — Testsigma Test Management
has a "Free Forever" plan (up to 10 users; unlimited projects, test cases and
test runs; 10 GB storage; 60-day retention; no card, immediate access):
https://testsigma.com/pricing?product=test-management — note the
?product=test-managementtab specifically; the default pricing pane shows onlythe paid Web Testing plans. So this plugin is usable end to end without a paid
subscription, and the paid tiers add scale rather than unlocking the plugin.
What works with no account and no network: the capture layer. Lifecycle hooks
(
sessionStart,userPromptSubmitted,pre/postToolUse,errorOccurred,sessionEnd) writesession_manifest.json+events.jsonlunder the plugindata dir. Ingest is auth-gated and off by default — until a user runs
/arcus:login, nothing is transmitted; unauthenticated sessions only write localfiles. There is no signup prompt, nag, or telemetry on install.
What requires a Testsigma account (the free tier is sufficient):
/arcus:push(sync to Agentic Test) and the projectDependencies are deliberately thin, since I saw prior submissions declined for
opaque third-party code. The scripts are standard-library only —
urllib,json,hashlib,base64,pathlib,webbrowser,fcntl.keyringis the soleoptional extra and is imported inside a
try/exceptwith a graceful fallback(
scripts/auth/keystore.py:23), so nothing needs installing for the plugin torun. No npm packages, no vendored binaries, no curl-to-shell.
Credential handling: a refresh token in the OS keychain plus a
0600configfile in the plugin data dir. No
.env, no plaintext secrets on disk. Accesstokens are refreshed lazily;
account_idcomes from JWT claims captured at login.Layout: plugin at the repository root, manifest at
.github/plugin/plugin.json, commands incommands/, hooks inhooks/hooks.json. Hosts (apiServer/authServer) are read from the plugin'sown committed
.github/plugin/marketplace.json, so this listing needs noconfigblock.
I recognise session capture touches sensitive data, so I'd rather over-disclose:
if you'd prefer the ingest side gated differently, or the listing scoped to the
local-capture commands only, I'm happy to adjust.
Unrelated: the Open VSX entry
testsigma/arcusis our separate Cursorextension (
testsigmahq/arcus-cursor-extension). This submission is the CopilotCLI plugin.
Submission checklist