Grades are a hygiene check, not a security guarantee.

Codex, Plugin

toolshed

Curated Claude Code plugins by Knitli.

Compatibility: Not stated.

Grade C

One Medium finding. Read the findings before installing.

Graded by PlugVetRubric v2

Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.

Rescanned at commit 11007cb4acb3.

SECRETS_PATH_CREDENTIAL

Why this grade

  • SECRETS_PATH_CREDENTIAL Medium

    Mentions a credential store path (~/.ssh, id_rsa, .npmrc, .aws/credentials, credentials.json, .netrc).

    packages/event-gateway/docs/native-bridge/admission-workerd.py, line 181 'agent': 'pilot', 'nodeId': self.node_id, 'nodeGeneration': 1, 'credentialsFile': 'credentials.json'}))

Any High, or two or more Medium findings, give D. One Medium gives C. Low findings or a security Note give B. Each code names a finding behind the letter.

Grades are a hygiene check of the source at the commit shown, on the date checked, not a security audit or a guarantee. The free directory grades are automated. Before release, a PlugVet engineer reviews every paid report and any grade we hold back, including all F grades, against the source code and the evidence we quote.

What was checked

Plain notes from the hygiene checks.

  • Permissions

    Concern

    can delete files.

    PERMISSION_DELETE_FILES

    packages/event-gateway/docs/native-bridge/admission-workerd.py, line 93

    process = subprocess.Popen(command, **options) # nosec B603 - Verified executables; no shell or inherited loader variables.

    packages/event-gateway/docs/native-bridge/coupled-workerd.py, line 556

    broker = subprocess.Popen([NODE, str(BROKER)], stdout=subprocess.PIPE, stderr=log, text=True, # nosec B603

    packages/event-gateway/docs/native-bridge/durable-restart-v3-qualify.py, line 201

    second = subprocess.Popen(args, cwd=root, stdin=slave, stdout=slave, stderr=slave, # nosec B603

    Show more

    packages/event-gateway/docs/native-bridge/native-release-launcher-smoke.py, line 84

    process = subprocess.Popen( # nosec B603 - argv uses verified Python, isolated imports and a digest-qualified candidate.

    packages/event-gateway/docs/native-bridge/three-session-workerd.py, line 908

    process = subprocess.Popen( # nosec B603 - explicit verified Node, fixed broker, closed fixture environment.

    packages/event-gateway/docs/native-bridge/three-session-workerd.py, line 971

    result = subprocess.run( # nosec B603 - fixed system ps executable and fixed output-only arguments.

    packages/event-gateway/docs/native-bridge/three-session-workerd.py, line 1128

    git_probe = subprocess.run( # nosec B603 - fixed read-only git command and validated checkout path.

    packages/event-gateway/docs/native-bridge/three-session-workerd.py, line 2813

    shutil.rmtree(ctx.state_root)

    packages/event-gateway/docs/native-bridge/terminal-completion-spike/reproduce.py, line 69

    r = subprocess.run( # noqa: B603 # nosec B603 - Trusted explicit executable, fixed argv, no shell.

    packages/event-gateway/scripts/install_paired_client.py, line 305

    shutil.rmtree(destination.name, dir_fd=parent)

    packages/event-gateway/scripts/observe_codex_bridge.py, line 433

    shutil.rmtree(home)

    packages/event-gateway/scripts/qualify_claude_socket.py, line 1252

    shutil.rmtree(root)

  • Install and update

    Pass

    No install-time script found, and dependencies are pinned or absent.

  • Network

    Concern

    can reach a host that is not written as a fixed address. can reach invalid.invalid. The description does not name that host.

    NETWORK_NO_FIXED_HOST NETWORK_UNNAMED_HOST

    packages/event-gateway/docs/native-bridge/admission-workerd-worker.ts, line 24

    export default {async fetch(request:Request, env:Env) {

    packages/event-gateway/docs/native-bridge/coupled-workerd-worker.ts, line 55

    MESH:{async fetch(){throw new Error('fixture_no_mesh');}}}, {nodeId:x.nodeId,meshIp:'100.96.0.1',meshPort:8789},transport.envelope);

    packages/event-gateway/docs/native-bridge/coupled-workerd-worker.ts, line 70

    export default { async fetch(request:Request,env:FixtureEnv) {

    Show more

    packages/event-gateway/docs/reviewer-bridge/concrete-https/test_wire_parser.mjs, line 31

    const request = http.request({ ...options, protocol: 'http:', agent }, callback);

    packages/event-gateway/docs/reviewer-bridge/docker-sdk-integration-spike/private-fixture/fixture.mjs, line 59

    assert.throws(() => globalThis.fetch('https://invalid.invalid'), /fetch refused/);

    packages/event-gateway/docs/reviewer-bridge/sdk-process-protocol-spike/fixture.mjs, line 39

    assert.throws(() => globalThis.fetch('https://invalid.invalid'), /offline fetch guard/);

    packages/event-gateway/docs/reviewer-bridge/sdk-process-protocol-spike/fixture.mjs, line 55

    const socket = net.connect({ host: '127.0.0.1', port: 9 });

    docs/superpowers/plans/2026-09-03-openapi-mcp-runtime.md, line 928

    const response = await fetch(`${flow.callback}?state=wrong&code=super-secret-code`);

  • Secrets

    Concern

    reads a credential or environment file.

    SECRETS_ENV_READ SECRETS_PATH_CREDENTIAL

    packages/event-gateway/docs/native-bridge/coupled-workerd-worker.ts, line 34

    super(ctx,{...env,MESSAGE_AUTHORITY:authority as unknown as CoordinatorEnv['MESSAGE_AUTHORITY'],DELIVERY_QUEUE:queue as unknown as CoordinatorEnv['DELIVERY_QUEUE']});

    packages/event-gateway/scripts/install_paired_client.py, line 322

    token = os.environ.get('GITHUB_TOKEN')

    packages/event-gateway/docs/native-bridge/admission-workerd.py, line 181

    'agent': 'pilot', 'nodeId': self.node_id, 'nodeGeneration': 1, 'credentialsFile': 'credentials.json'}))

    Show more

    packages/event-gateway/docs/native-bridge/admission-workerd.py, line 183

    credentials = root / 'credentials.json'

    packages/event-gateway/docs/native-bridge/three-session-workerd.py, line 2059

    private_json(ctx.state / "credentials.json", {"accessToken": FIXTURE_ACCESS,

    packages/event-gateway/docs/native-bridge/three-session-workerd.py, line 2063

    "nodeId": ctx.node_id, "nodeGeneration": 1, "credentialsFile": "credentials.json",

  • Agent instructions

    Pass

    No instruction to ignore earlier instructions or to hide a step.

  • Obfuscation

    Concern

    contains an encoded blob in a file that should be readable.

    OBFUSCATION_ENCODED_BLOB

    packages/event-gateway/docs/muse-ingress/msp.schema.json, line 1

    {

    packages/event-gateway/docs/native-bridge/core-turn-idle-native.patch, line 1

    diff --git a/app-server-protocol/schema/json/codex_app_server_protocol.schemas.json b/app-server-protocol/schema/json/codex_app_server_protocol.schemas.json

    packages/event-gateway/docs/native-bridge/durable-restart-implementation.patch, line 1

    diff --git a/codex-rs/app-server-protocol/schema/json/codex_app_server_protocol.schemas.json b/codex-rs/app-server-protocol/schema/json/codex_app_server_protocol.schemas.json

    Show more

    packages/event-gateway/docs/native-bridge/durable-restart-v3-implementation.patch, line 1

    diff --git a/codex-rs/app-server-protocol/schema/json/codex_app_server_protocol.schemas.json b/codex-rs/app-server-protocol/schema/json/codex_app_server_protocol.schemas.json

    packages/event-gateway/docs/native-bridge/input-recorded-codex-v0.160.0.patch, line 1

    diff --git a/codex-rs/app-server-protocol/schema/json/codex_app_server_protocol.schemas.json b/codex-rs/app-server-protocol/schema/json/codex_app_server_protocol.schemas.json

    packages/event-gateway/docs/native-bridge/native-binding-codex-v0.160.0.patch, line 1

    diff --git a/codex-rs/app-server-protocol/schema/json/codex_app_server_protocol.schemas.json b/codex-rs/app-server-protocol/schema/json/codex_app_server_protocol.schemas.json

    packages/event-gateway/docs/native-bridge/native-core-idle-v1-implementation.patch, line 1

    diff --git a/codex-rs/app-server-protocol/schema/json/codex_app_server_protocol.schemas.json b/codex-rs/app-server-protocol/schema/json/codex_app_server_protocol.schemas.json

    packages/event-gateway/docs/native-bridge/native-metadata-v1-implementation.patch, line 1

    diff --git a/codex-rs/app-server-protocol/schema/json/codex_app_server_protocol.schemas.json b/codex-rs/app-server-protocol/schema/json/codex_app_server_protocol.schemas.json

    fnox.toml, line 11

    CODACY_API_KEY= { provider = "age", value = "fnox-age-batch-v1:YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMWkxsblQ4algvakxZem11UlFwWTFuZW9TM0hwNzUrUEhFRXcvMVkxNTFBClRPU2V2bzZDMDNMc

    packages/event-gateway/contracts/event-control-v1/fixtures.json, line 1934

    "recordKey": "0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

    packages/event-gateway/contracts/event-control-v1/fixtures.json, line 1945

    "recordKey": "1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

    packages/event-gateway/contracts/event-control-v1/fixtures.json, line 2431

    "body": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

    packages/event-gateway/contracts/messaging-v2/messaging-v2-wire.json, line 8

    "utf8Hex": "7b22736368656d6156657273696f6e223a322c226576656e744964223a2230313865326337302d376336612d376130312d383030302d303030303030303030303031222c22736f75726365223a226d6573736167

    packages/event-gateway/contracts/messaging-v2/messaging-v2-wire.json, line 17

    "utf8Hex": "7b22736368656d6156657273696f6e223a322c226576656e744964223a2230313865326337302d376336612d376130312d383030302d303030303030303030303031222c2264656c69766572794964223a22646c

    packages/event-gateway/contracts/messaging-v2/messaging-v2-wire.json, line 26

    "utf8Hex": "7b22736368656d6156657273696f6e223a322c226576656e744964223a2230313865326337302d376336612d376130312d383030302d303030303030303030303031222c2264656c69766572794964223a22646c

    packages/event-gateway/contracts/messaging-v2/messaging-v2-wire.json, line 35

    "utf8Hex": "7b22736368656d6156657273696f6e223a322c226576656e744964223a2230313865326337302d376336612d376130312d383030302d303030303030303030303031222c22736f75726365223a226d6573736167

  • Licence

    Pass

    A licence file is present (LICENSE).

  • Maintainer activity

    Pass

    The latest commit is within the last 365 days.

Note

Hygiene check of commit 11007cb4acb3. can delete files. can reach a host that is not written as a fixed address. can reach invalid.invalid. The description does not name that host. reads a credential or environment file. contains an encoded blob in a file that should be readable.

Date and source

Date checked:

View source

github.com

Commit graded: 11007cb4acb32f8a03db031299fb1da9e4946ce6

This link goes to the original host. PlugVet does not host or check what you download from there, and installing it is your own decision and risk.

Read how this letter is chosen