RepoTrust

kaitranntt/ccs

Switch between Claude accounts, Gemini, Copilot, OpenRouter (300+ models) via CLIProxyAPI OAuth proxy. Visual dashboard, remote proxy support, WebSearch fallback. Zero-config to production-ready.

https://github.com/kaitranntt/ccs · commit cd2e02288675 · scored 2026-11-14 · 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) 7 explicit 95% 100%
Code quality 70 adequate 90% 100%
Security 34 poor 85% 100%

AI provenance

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

AI tool Attributed commits Lines added
OpenAI Codex 150 10,529
Claude Code 111 34,087
Cursor agent 1 15
GitHub Copilot coding agent 1 1

Current source lines last changed by AI-attributed commits: 15,525 of 276,070.

Findings per 1,000 lines AI-attributed Other Ratio
Quality 0.064 0.764 0.08x
Security 0.902 1.09 0.83x
Month Lines added Attributed to AI
2025-12 121,393 0%
2026-01 33,573 9%
2026-02 84,166 1%
2026-03 82,922 1%
2026-04 134,011 12%
2026-05 54,507 15%
2026-06 54,170 6%
2026-07 13,204 25%
2026-08 8,934 14%
2026-09 2,972 6%
2026-10 5,391 17%
2026-11 7,069 0%

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 adequate: test-to-source ratio 0.65, no CI test run detected; 27% of function code in complex or long functions; 8% duplicated lines. Weakest area: complexity.

Area Score
Complexity (lizard) 44
Duplication 64
Code smells (Opengrep) 79
Tests and CI 70
Documentation 100
Type safety 100
Process (Scorecard review/maintenance) n/a

Most complex functions:

Security

Security posture is poor: 207 known vulnerabilities in 52 dependencies; 59 high-severity SAST findings; 68 high-severity workflow issues. Weakest area: ci actions.

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

Top findings

Severity Finding Location
critical osv/GHSA-2w6w-674q-4c4q: [email protected] (npm) is affected by GHSA-2w6w-674q-4c4q bun.lock
critical osv/GHSA-8r5x-fm3f-whwj: [email protected] (npm) is affected by GHSA-8r5x-fm3f-whwj bun.lock
critical osv/GHSA-p8wg-vrv2-v86f: [email protected] (npm) is affected by GHSA-p8wg-vrv2-v86f bun.lock
critical osv/GHSA-jqcg-44mw-7w3h: [email protected] (npm) is affected by GHSA-jqcg-44mw-7w3h bun.lock
critical osv/GHSA-23hp-3jrh-7fpw: [email protected] (npm) is affected by GHSA-23hp-3jrh-7fpw bun.lock
critical osv/GHSA-5xrq-8626-4rwp: [email protected] (npm) is affected by GHSA-5xrq-8626-4rwp ui/bun.lock
high opengrep/dockerfile.security.missing-user-entrypoint: By not specifying a USER, a program in the container may run as 'root'. This is a security hazard. If an attacker can control a process running as root, they may have control over the container. Ensure that the last USER in a Dockerfile is a USER other than 'root'. [confidence medium] docker/Dockerfile:87
high opengrep/dockerfile.security.missing-user: By not specifying a USER, a program in the container may run as 'root'. This is a security hazard. If an attacker can control a process running as root, they may have control over the container. Ensure that the last USER in a Dockerfile is a USER other than 'root'. [confidence medium] docker/Dockerfile:89
high opengrep/javascript.lang.security.audit.spawn-shell-true: Found '$SPAWN' with '{shell: process.platform === 'win32'}'. This is dangerous because this call will spawn the command using a shell process. Doing so propagates current shell settings and variables, which makes it much easier for a malicious actor to execute commands. Use '{shell: false}' instead. [confidence low] scripts/run-test-bucket.js:222
high opengrep/javascript.lang.security.audit.spawn-shell-true: Found '$SPAWN' with '{shell: process.platform === 'win32'}'. This is dangerous because this call will spawn the command using a shell process. Doing so propagates current shell settings and variables, which makes it much easier for a malicious actor to execute commands. Use '{shell: false}' instead. [confidence low] scripts/run-test-bucket.js:232
high opengrep/javascript.lang.security.audit.spawn-shell-true: Found '$SPAWN' with '{shell: getWindowsEscapedCommandShell()}'. This is dangerous because this call will spawn the command using a shell process. Doing so propagates current shell settings and variables, which makes it much easier for a malicious actor to execute commands. Use '{shell: false}' inste [confidence low] src/auth/commands/create-command.ts:266
high opengrep/javascript.lang.security.detect-child-process: Detected calls to child_process from a function argument port. This could lead to a command injection if the input is user controllable. Try to avoid calls to child_process, and if it is needed ensure user input is correctly sanitized or sandboxed. [confidence low] src/cliproxy/auth/environment-detector.ts:66
high opengrep/javascript.lang.security.detect-child-process: Detected calls to child_process from a function argument port. This could lead to a command injection if the input is user controllable. Try to avoid calls to child_process, and if it is needed ensure user input is correctly sanitized or sandboxed. [confidence low] src/cliproxy/auth/environment-detector.ts:75
high opengrep/javascript.lang.security.detect-child-process: Detected calls to child_process from a function argument port. This could lead to a command injection if the input is user controllable. Try to avoid calls to child_process, and if it is needed ensure user input is correctly sanitized or sandboxed. [confidence low] src/cliproxy/auth/environment-detector.ts:82
high opengrep/javascript.lang.security.detect-child-process: Detected calls to child_process from a function argument port. This could lead to a command injection if the input is user controllable. Try to avoid calls to child_process, and if it is needed ensure user input is correctly sanitized or sandboxed. [confidence low] src/cliproxy/auth/environment-detector.ts:88
high opengrep/javascript.lang.security.detect-child-process: Detected calls to child_process from a function argument verbose. This could lead to a command injection if the input is user controllable. Try to avoid calls to child_process, and if it is needed ensure user input is correctly sanitized or sandboxed. [confidence low] src/cliproxy/auth/kiro-import.ts:44
high opengrep/javascript.lang.security.detect-child-process: Detected calls to child_process from a function argument binaryPath. This could lead to a command injection if the input is user controllable. Try to avoid calls to child_process, and if it is needed ensure user input is correctly sanitized or sandboxed. [confidence low] src/cliproxy/auth/oauth-cli-capabilities.ts:82
high opengrep/javascript.lang.security.detect-child-process: Detected calls to child_process from a function argument options. This could lead to a command injection if the input is user controllable. Try to avoid calls to child_process, and if it is needed ensure user input is correctly sanitized or sandboxed. [confidence low] src/cliproxy/auth/oauth-process.ts:746
high opengrep/javascript.lang.security.audit.spawn-shell-true: Found '$SPAWN' with '{shell: getWindowsEscapedCommandShell()}'. This is dangerous because this call will spawn the command using a shell process. Doing so propagates current shell settings and variables, which makes it much easier for a malicious actor to execute commands. Use '{shell: false}' inste [confidence low] src/cliproxy/executor/claude-launcher.ts:175
high opengrep/javascript.lang.security.detect-child-process: Detected calls to child_process from a function argument context. This could lead to a command injection if the input is user controllable. Try to avoid calls to child_process, and if it is needed ensure user input is correctly sanitized or sandboxed. [confidence low] src/cliproxy/executor/claude-launcher.ts:175
high opengrep/javascript.lang.security.detect-child-process: Detected calls to child_process from a function argument context. This could lead to a command injection if the input is user controllable. Try to avoid calls to child_process, and if it is needed ensure user input is correctly sanitized or sandboxed. [confidence low] src/cliproxy/executor/claude-launcher.ts:182
high opengrep/javascript.lang.security.detect-child-process: Detected calls to child_process from a function argument binaryPath. This could lead to a command injection if the input is user controllable. Try to avoid calls to child_process, and if it is needed ensure user input is correctly sanitized or sandboxed. [confidence low] src/cliproxy/executor/lifecycle-manager.ts:75
high opengrep/javascript.lang.security.detect-child-process: Detected calls to child_process from a function argument deps. This could lead to a command injection if the input is user controllable. Try to avoid calls to child_process, and if it is needed ensure user input is correctly sanitized or sandboxed. [confidence low] src/cliproxy/service-manager.ts:266
high opengrep/javascript.lang.security.detect-child-process: Detected calls to child_process from a function argument verbose. This could lead to a command injection if the input is user controllable. Try to avoid calls to child_process, and if it is needed ensure user input is correctly sanitized or sandboxed. [confidence low] src/cliproxy/service-manager.ts:266
high opengrep/javascript.lang.security.audit.spawn-shell-true: Found '$SPAWN' with '{shell: true}'. This is dangerous because this call will spawn the command using a shell process. Doing so propagates current shell settings and variables, which makes it much easier for a malicious actor to execute commands. Use '{shell: false}' instead. [confidence low] src/commands/update-command.ts:318

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.

Repository profile

Language Lines
TypeScript 407,879
JavaScript 31,629
Swift 7,483
Shell 4,791
PowerShell 2,783

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/kaitranntt/ccs/ai.svg)](https://repotrust.synapticcyber.com/r/github.com/kaitranntt/ccs/)
[![RepoTrust quality](https://repotrust.synapticcyber.com/badge/github.com/kaitranntt/ccs/quality.svg)](https://repotrust.synapticcyber.com/r/github.com/kaitranntt/ccs/)
[![RepoTrust security](https://repotrust.synapticcyber.com/badge/github.com/kaitranntt/ccs/security.svg)](https://repotrust.synapticcyber.com/r/github.com/kaitranntt/ccs/)