Codex, Plugin
Auth Codex Plugin
Auth codex plugin for opencode with local dashboard, force mode, and etc.
Compatibility: Codex.
Grade C
One Medium finding. Read the findings before installing.
Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.
Rescanned at commit 75048950262f, unchanged since the check below.
SECRETS_PATH_CREDENTIAL
Why this grade
- SECRETS_PATH_CREDENTIAL Medium
Mentions a credential store path (~/.ssh, id_rsa, .npmrc, .aws/credentials, credentials.json, .netrc).
auto-login/auto_login.py, line 47
CREDENTIALS_FILE = SCRIPT_DIR / "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
src/store.ts, line 477
fs.unlinkSync(file)
src/store.ts, line 484
fs.unlinkSync(tmp)
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.
NETWORK_NO_FIXED_HOST
auto-login/auto_login.py, line 184
with urllib.request.urlopen(req, timeout=30, context=ssl._create_unverified_context()) as resp:
auto-login/auto_login.py, line 194
with urllib.request.urlopen(req, timeout=10, context=ssl._create_unverified_context()) as resp:
ops/opencode-vps/scripts/patch-opencode-web.sh, line 31
curl -fsSL -u "${AUTH_USER}:${AUTH_PASS}" "${UPSTREAM_URL}/" -o "$tmp_html"
Show more
ops/opencode-vps/scripts/patch-opencode-web.sh, line 50
curl -fsSL -u "${AUTH_USER}:${AUTH_PASS}" "${UPSTREAM_URL}${index_path}" -o "$out_path"
src/auth-sync.ts, line 13
const res = await fetch(`${OPENAI_ISSUER}/userinfo`, {
src/auth.ts, line 170
const tokenRes = await fetch(TOKEN_URL, {
src/auth.ts, line 197
const userRes = await fetch(`${OPENAI_ISSUER}/userinfo`, {
src/auth.ts, line 283
const tokenRes = await fetch(TOKEN_URL, {
Secrets
Concern
reads a credential or environment file.
SECRETS_ENV_READ SECRETS_PATH_CREDENTIAL SECRETS_PATH_DOTENV
auto-login/auto_login.py, line 47
CREDENTIALS_FILE = SCRIPT_DIR / "credentials.json"
auto-login/auto_login.py, line 1234
print("[ERROR] No accounts in credentials.json")
src/index.ts, line 365
const ntfyToken = (process.env.OPENCODE_MULTI_AUTH_NOTIFY_NTFY_TOKEN || '').trim()
Show more
src/rotation.ts, line 228
const raw = process.env.OPENCODE_MULTI_AUTH_TOKEN_FAILURE_COOLDOWN_MS
src/web.ts, line 35
const DEFAULT_AUTO_LOGIN_CREDENTIALS_FILE = path.join(os.homedir(), '.config', 'opencode-multi-auth', 'credentials.json')
src/web.ts, line 2556
return { ...result, error: 'credentials.json not found' }
src/web.ts, line 2580
return { ...result, error: 'No accounts in credentials.json' }
src/web.ts, line 2589
return { ...result, error: `Failed to parse credentials.json: ${err}` }
.env.example, line 2
# Copy this to .env and fill real values:
.env.example, line 3
# cp .env.example .env
Agent instructions
Pass
No instruction to ignore earlier instructions or to hide a step.
Obfuscation
Pass
No encoded or minified payload found.
Licence
Note
no licence file found.
LICENCE_MISSING
No file path was stored.
no licence file found.
Maintainer activity
Pass
The latest commit is within the last 365 days.
Note
Hygiene check of commit 75048950262f. can delete files. can reach a host that is not written as a fixed address. reads a credential or environment file. no licence file found.
Date and source
Date checked:
github.com
Commit graded: 75048950262f70c6fb60e99aa47e520c6c5908b9
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.