Best for
- Use when GPT-model agents are returning API errors or when cliproxy is down.
eltmon/overdeck/sync-sources/skills/cliproxy/SKILL.md
Check and restart the CLIProxy sidecar (port 8317). CLIProxy bridges ChatGPT subscription OAuth tokens to an Anthropic-compatible /v1/messages endpoint so Overdeck agents can use GPT models without an OpenAI API key. Use when GPT-model agents are returning API errors or when cliproxy is down.
Decision brief
CLIProxy is a background sidecar that proxies Anthropic-compatible API calls to GPT models via ChatGPT subscription OAuth tokens. Overdeck agents talk to it via ANTHROPICBASEURL=http://127.0.0.1:8317.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Declared | Source record | Install path and trigger |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/eltmon/overdeck --skill "sync-sources/skills/cliproxy"Inspect the Agent Skill "cliproxy" from https://github.com/eltmon/overdeck/blob/b6d7106f7044de1a243a38b3f2d43b5bbe9b0aaf/sync-sources/skills/cliproxy/SKILL.md at commit b6d7106f7044de1a243a38b3f2d43b5bbe9b0aaf. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
kill -0 $(cat /.overdeck/cliproxy/cliproxy.pid 2/dev/null) 2/dev/null && echo "alive" || echo "dead" bash
Review the “Quick Status Check” section in the pinned source before continuing.
Review the “Is it running?” section in the pinned source before continuing.
cat /.overdeck/cliproxy/cliproxy.pid 2/dev/null
Review the “Restart CLIProxy” section in the pinned source before continuing.
Permission review
The documentation asks the agent to run terminal commands or scripts.
node -e "require('./src/lib/cliproxy.js').bridgeCodexAuthToCliproxyAsync().then(console.log)"Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 88/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 14 | Source | Repository attention, not individual Skill quality |
| Compatibility | 1 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
CLIProxy is a background sidecar that proxies Anthropic-compatible API calls to GPT
models via ChatGPT subscription OAuth tokens. Overdeck agents talk to it via
ANTHROPIC_BASE_URL=http://127.0.0.1:8317.
# Is it running?
ss -tlnp | grep 8317
# Check PID file
cat ~/.overdeck/cliproxy/cliproxy.pid 2>/dev/null
# Verify process is alive
kill -0 $(cat ~/.overdeck/cliproxy/cliproxy.pid 2>/dev/null) 2>/dev/null && echo "alive" || echo "dead"
# Kill any existing instance
lsof -ti:8317 2>/dev/null | xargs -r kill 2>/dev/null || true
rm -f ~/.overdeck/cliproxy/cliproxy.pid
# Start fresh
nohup ~/.overdeck/bin/cliproxy -config ~/.overdeck/cliproxy/config.yaml \
>> ~/.overdeck/cliproxy/cliproxy.log 2>&1 &
echo $! > ~/.overdeck/cliproxy/cliproxy.pid
# Confirm it's up (give it 2 seconds)
sleep 2 && ss -tlnp | grep 8317
# Last 30 lines of cliproxy log
tail -30 ~/.overdeck/cliproxy/cliproxy.log
# Watch live
tail -f ~/.overdeck/cliproxy/cliproxy.log
| Path | Purpose |
|---|---|
~/.overdeck/bin/cliproxy | Binary (v6.9.24, built from eltmon/cliproxy fork) |
~/.overdeck/cliproxy/config.yaml | Server config (host, port, auth-dir, api-keys) |
~/.overdeck/cliproxy/auth/codex-primary.json | Codex OAuth credentials (bridged from ~/.codex/auth.json) |
~/.overdeck/cliproxy/cliproxy.pid | PID file written on manual start |
~/.overdeck/cliproxy/cliproxy.log | Append-only log |
Config contents:
host: "127.0.0.1"
port: 8317
auth-dir: "~/.overdeck/cliproxy/auth"
api-keys:
- "overdeck-local-cliproxy-key"
debug: false
Overdeck's startCliproxy() in src/lib/cliproxy.ts handles:
~/.overdeck/cliproxy/config.yaml~/.codex/auth.json → auth/codex-primary.jsonCLIProxy is normally started automatically by pan up. If it crashed or was never
started, use the restart snippet above.
If 502 errors are appearing in the log, the Codex OAuth token may be expired. CLIProxy has an auto-refresh loop, but if it fails:
# Check if auth file exists and has tokens
cat ~/.codex/auth.json | python3 -c "import sys,json; d=json.load(sys.stdin); print('access_token:', bool(d.get('tokens',{}).get('access_token')))"
# Re-bridge auth (re-runs the mapping from ~/.codex/auth.json)
# This is done automatically by pan up — or run pan install to re-authenticate
The Overdeck dashboard can trigger interactive Codex re-authentication when
ChatGPT subscription tokens expire. This avoids requiring the user to run
codex login manually in a terminal.
GET /api/settings/codex-auth every 2 min.
Status can be valid, expired, burned, missing, or unknown.POST /api/settings/codex-reauth (idempotent — returns an
existing live session if one is already running).reauth-<uuid>
running codex login (or codex login --device-auth when headless), sets an
HttpOnly pan_codex_reauth cookie for /ws/terminal, and the frontend opens
/terminal/<sessionName> so the user can complete OAuth in a live terminal panel.POST /api/settings/codex-reauth/status with the
session name and status token every 3 s. The session is considered complete when
the tmux pane exits.bridgeCodexAuthToCliproxyAsync()
to rewrite ~/.overdeck/cliproxy/auth/codex-primary.json from the fresh
~/.codex/auth.json, then returns the updated auth status.POST /api/agents once auth becomes valid./ws/terminal; they are required for reauth-* WebSockets.| Method | Path | Purpose |
|---|---|---|
GET | /api/settings/codex-auth | Current auth status (valid/expired/etc.) |
POST | /api/settings/codex-reauth | Spawn (or reuse) a re-auth tmux session and set the terminal cookie |
POST | /api/settings/codex-reauth/status | Poll for completion with { session, token } |
If the dashboard re-auth flow fails, fall back to terminal login:
# Interactive login
codex login
# Headless / device-auth flow
codex login --device-auth
# Re-bridge into cliproxy format
node -e "require('./src/lib/cliproxy.js').bridgeCodexAuthToCliproxyAsync().then(console.log)"
src/lib/cliproxy.ts — full lifecycle implementation in Overdeck/pan:health — overall Overdeck health check/pan:up — start Overdeck (also starts cliproxy)Alternatives
xiaolai/nlpm
Universal NL programming conventions — SKILL.md open spec (agentskills.io), AGENTS.md as canonical universal memory file, vague-quantifier list, prompt engineering layers, naming conventions, the override system. Tool-specific schemas live in nlpm:conventions-claude / nlpm:conventions-codex / nlpm:conventions-antigravity.
PramodDutta/qaskills
Generate optimized test combinations using pairwise (all-pairs) testing algorithms to achieve maximum coverage with minimum test cases across multiple input parameters
PramodDutta/qaskills
Gate RAG pipelines in CI with versioned golden eval sets, per-metric thresholds, baseline drift detection, and a build that fails when retrieval or answer quality regresses.
PramodDutta/qaskills
Generate comprehensive test cases from state machine models covering all states, transitions, guard conditions, and invalid transition attempts for workflow-heavy features