passwords-csv-browser-auth
Safely source website credentials from the local ignored passwords.csv export for browser automation without printing or committing secrets.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Safely source website credentials from the local ignored passwords.csv export for browser automation without printing or committing secrets.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Never run Docker containers as root. Enforce USER directive in Dockerfiles and user: in compose files. Database images are the only exception.
Handle packages migrating between pnpm workspaces. Clean stale root copies, update workspace configs, fix broken workspace:* references.
Recover lost source files from pi session history when files were deleted but never committed to git.
Improve the Hormuz clock model through new signal classes, schema changes, uncertainty modeling, and better rendering or branch logic
Revise fork-tax protocols so they assume concurrent agents by default in shared workspaces, forbid destructive repo-wide cleanup of unrelated dirt, and require path-scoped staging plus explicit blocker recording.
Persist the full working state into git (commit + tag + push + manifest artifacts) as a deterministic handoff snapshot. Use when the user requests Π / fork tax / full dump.
| name | passwords-csv-browser-auth |
| description | Safely source website credentials from the local ignored passwords.csv export for browser automation without printing or committing secrets. |
| metadata | {"owner":"local","version":1} |
Use the local ignored passwords.csv export to authenticate browser automation tasks safely, without leaking credentials into chat output, tracked files, receipts, or screenshots.
./passwords.csv or ~/Documents/passwords.csv.passwords.csv is missing, malformed, or has no unambiguous match.passwords.csv.Observed local header shape:
urlusernamepasswordhttpRealmformActionOriginguidtimeCreatedtimeLastUsedtimePasswordChangedTreat username and password as secrets. Never print them in final responses.
./passwords.csv~/Documents/passwords.csvformActionOrigin origin matchurlurltimeLastUsed) when present.Example pattern:
eval "$(${PYTHON:-python3} - <<'PY'
import csv, shlex
from pathlib import Path
from urllib.parse import urlparse
TARGET = 'https://github.com/settings/applications/new'
CANDIDATES = [Path('passwords.csv'), Path.home() / 'Documents' / 'passwords.csv']
def host(value: str) -> str:
try:
return (urlparse(value).hostname or '').lower()
except Exception:
return ''
target_host = host(TARGET)
for csv_path in CANDIDATES:
if not csv_path.exists():
continue
with csv_path.open(newline='', encoding='utf-8-sig') as handle:
rows = list(csv.DictReader(handle))
matches = [row for row in rows if host(row.get('formActionOrigin', '')) == target_host or host(row.get('url', '')) == target_host]
if matches:
row = matches[0]
print(f"LOGIN_USER={shlex.quote(row['username'])}")
print(f"LOGIN_PASS={shlex.quote(row['password'])}")
break
else:
raise SystemExit('No matching credential row found')
PY
)"
agent-browser skill workflow.unset LOGIN_USER LOGIN_PASS when done.~/.pi/agent/skills/agent-browser/SKILL.mdorgs/open-hax/proxx/scripts/bulk-oauth-import.ts