RepoTrust

tj-smith47/shelly-cli

馃 Cobra CLI tool for Shelly IoT devices.

https://github.com/tj-smith47/shelly-cli 路 commit 593a9e2bfbb9 路 scored 2026-11-13 路 scoring prov-4+qual-2+sec-2

RepoTrust ai badge RepoTrust quality badge RepoTrust security badge

Dispute this score or request a re-score Full report JSON

Scores

Pillar Score Signal Confidence Coverage
AI provenance (estimated AI-generated share) 98 explicit 95% 100%
Code quality 90 strong 90% 100%
Security 64 weak 85% 100%

AI provenance

Explicit AI attribution on 98% of first-party code added; an estimated 98% including velocity signals.

AI tool Attributed commits Lines added
Claude Code 525 620,473

Current source lines last changed by AI-attributed commits: 173,017 of 178,407.

Findings per 1,000 lines AI-attributed Other Ratio
Quality 0.058 0.0 n/a
Security 0.139 0.0 n/a
Month Lines added Attributed to AI
2025-12 449,522 97%
2026-01 114,610 100%
2026-02 23,948 100%
2026-03 36 100%
2026-06 19,138 92%
2026-09 298 100%
2026-10 23,614 100%
2026-11 2,585 100%

Evidence

AI provenance describes how code was produced; it is not a quality judgment. Unless attribution is explicit, these are signals consistent with AI generation, not proof. Squash/rebase workflows, imported code, and rewritten history reduce accuracy.

Code quality

Code quality is strong: test-to-source ratio 1.78, CI runs tests; 2% of function code in complex or long functions; 12% duplicated lines. Weakest area: duplication.

Area Score
Complexity (lizard) 95
Duplication 48
Code smells (Opengrep) 99
Tests and CI 100
Documentation 100
Type safety n/a
Process (Scorecard review/maintenance) n/a

Most complex functions:

Security

Security posture is weak: 0 possible secret(s) in the tree, 1 only in history; 16 known vulnerabilities in 6 dependencies; 14 high-severity SAST findings; 72 high-severity workflow issues. Weakest area: ci actions.

Area Score
Secrets (gitleaks, tree + history) 59
Static analysis (Opengrep) 97
Vulnerable dependencies (OSV) 68
CI workflows (zizmor) 0
Posture (policy, updates, signing, lockfiles) 100
OpenSSF Scorecard n/a

Top findings

Severity Finding Location
high opengrep/javascript.lang.security.detect-insecure-websocket: Insecure WebSocket Detected. WebSocket Secure (wss) should be used for all WebSocket connections. [confidence low] docs/man/shelly-debug-websocket.1:20
high opengrep/go.lang.security.audit.dangerous-exec-command: Detected non-static command inside Command. Audit the input to 'exec.Command'. If unverified user data can reach this call site, this is a code injection vulnerability. A malicious actor can inject a malicious script to execute arbitrary code. [confidence low] internal/cmd/config/edit/edit.go:80
high opengrep/javascript.lang.security.detect-insecure-websocket: Insecure WebSocket Detected. WebSocket Secure (wss) should be used for all WebSocket connections. [confidence low] internal/cmd/debug/websocket/websocket.go:46
high opengrep/javascript.lang.security.detect-insecure-websocket: Insecure WebSocket Detected. WebSocket Secure (wss) should be used for all WebSocket connections. [confidence low] internal/cmd/debug/websocket/websocket.go:97
high opengrep/go.lang.security.audit.dangerous-exec-command: Detected non-static command inside Command. Audit the input to 'exec.Command'. If unverified user data can reach this call site, this is a code injection vulnerability. A malicious actor can inject a malicious script to execute arbitrary code. [confidence low] internal/config/aliases.go:212
high opengrep/go.lang.security.audit.dangerous-exec-command: Detected non-static command inside Command. Audit the input to 'exec.Command'. If unverified user data can reach this call site, this is a code injection vulnerability. A malicious actor can inject a malicious script to execute arbitrary code. [confidence low] internal/plugins/executor.go:30
high opengrep/go.lang.security.audit.dangerous-exec-command: Detected non-static command inside Command. Audit the input to 'exec.Command'. If unverified user data can reach this call site, this is a code injection vulnerability. A malicious actor can inject a malicious script to execute arbitrary code. [confidence low] internal/plugins/executor.go:50
high opengrep/go.lang.security.audit.dangerous-exec-command: Detected non-static command inside Command. Audit the input to 'exec.Command'. If unverified user data can reach this call site, this is a code injection vulnerability. A malicious actor can inject a malicious script to execute arbitrary code. [confidence low] internal/plugins/hooks.go:188
high opengrep/go.lang.security.audit.dangerous-exec-command: Detected non-static command inside Command. Audit the input to 'exec.Command'. If unverified user data can reach this call site, this is a code injection vulnerability. A malicious actor can inject a malicious script to execute arbitrary code. [confidence low] internal/plugins/loader.go:256
high opengrep/go.lang.security.audit.dangerous-exec-command: Detected non-static command inside Command. Audit the input to 'exec.Command'. If unverified user data can reach this call site, this is a code injection vulnerability. A malicious actor can inject a malicious script to execute arbitrary code. [confidence low] internal/shelly/alert.go:341
high opengrep/javascript.lang.security.detect-insecure-websocket: Insecure WebSocket Detected. WebSocket Secure (wss) should be used for all WebSocket connections. [confidence low] internal/shelly/automation/events.go:145
high opengrep/javascript.lang.security.detect-insecure-websocket: Insecure WebSocket Detected. WebSocket Secure (wss) should be used for all WebSocket connections. [confidence low] internal/shelly/monitoring/snapshot.go:174
high opengrep/javascript.lang.security.detect-insecure-websocket: Insecure WebSocket Detected. WebSocket Secure (wss) should be used for all WebSocket connections. [confidence low] internal/testutil/wsdevice.go:22
high opengrep/go.lang.security.audit.dangerous-exec-command: Detected non-static command inside Command. Audit the input to 'exec.Command'. If unverified user data can reach this call site, this is a code injection vulnerability. A malicious actor can inject a malicious script to execute arbitrary code. [confidence low] internal/tui/components/scripts/editor.go:608
high osv/GHSA-r5fr-rjxr-66jc: [email protected] (npm) is affected by GHSA-r5fr-rjxr-66jc docs/site/package-lock.json
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/auto-tag.yml:27
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/auto-tag.yml:32
high zizmor/excessive-permissions: overly broad permissions [confidence high] .github/workflows/ci.yml:11
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:28
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:31
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:37
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:50
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:53
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:59
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:76

Static signals only: the scorer never runs the project's code. Secret findings are pattern matches that were not verified, and secret values are never stored.

Distribution signals

Signals consistent with a repository that exists to distribute a download. They are heuristics, not a verdict; release files were not downloaded or inspected.

Repository profile

Language Lines
Go 492,534
Shell 3,270
PowerShell 270
JavaScript 68

Embed a badge

Maintainers can show these in a README. Badges update when the repository is re-scored.

[![RepoTrust ai](https://repotrust.synapticcyber.com/badge/github.com/tj-smith47/shelly-cli/ai.svg)](https://repotrust.synapticcyber.com/r/github.com/tj-smith47/shelly-cli/)
[![RepoTrust quality](https://repotrust.synapticcyber.com/badge/github.com/tj-smith47/shelly-cli/quality.svg)](https://repotrust.synapticcyber.com/r/github.com/tj-smith47/shelly-cli/)
[![RepoTrust security](https://repotrust.synapticcyber.com/badge/github.com/tj-smith47/shelly-cli/security.svg)](https://repotrust.synapticcyber.com/r/github.com/tj-smith47/shelly-cli/)