Chanjing Credentials Guard

v1.0.7

Guide users to configure local Chanjing credentials safely via local commands only, and validate local token status when needed.

1· 240·1 current·1 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for binkes/chanjing-credentials-guard.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Chanjing Credentials Guard" (binkes/chanjing-credentials-guard) from ClawHub.
Skill page: https://clawhub.ai/binkes/chanjing-credentials-guard
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install chanjing-credentials-guard

ClawHub CLI

Package manager switcher

npx clawhub@latest install chanjing-credentials-guard
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description, SKILL.md, manifest, and the three Python scripts all focus on local credential guidance: opening a login page, prompting the user to run local commands, reading/writing ~/.chanjing/credentials.json, and calling the Chanjing token API. There are no unrelated credentials, extra cloud permissions, or surprising binaries requested. (Minor metadata mismatch: registry version 1.0.7 vs manifest version 0.1.0 — likely a release metadata inconsistency, not a functional issue.)
Instruction Scope
Runtime instructions limit actions to local guidance: open login page, show commands, run local scripts to read/write credentials, and call Chanjing's token endpoint when refreshing tokens. The SKILL.md explicitly forbids asking for secrets in chat and the scripts implement only the described local file operations and API call. No instructions reference unrelated system files or exfiltrate data to non-Chanjing endpoints.
Install Mechanism
Instruction-only with bundled Python scripts; no install spec and no remote archive downloads. Lowest-risk install profile.
Credentials
No required environment variables; optional env vars (CHANJING_OPENAPI_CREDENTIALS_DIR, CHANJING_OPENAPI_BASE_URL) are directly relevant and are honored by the scripts (they also accept legacy names for compatibility). The skill persists access_token to disk as documented — this is expected for a token-refresh helper and is declared in manifest.credentials.
Persistence & Privilege
agentPolicy.alwaysSkill is false and the skill does not request elevated or cross-skill privileges. It may open the user's browser and run included Python scripts (allowed in manifest). It writes only to the declared credentials directory. Autonomous invocation is allowed by default but is not combined with any broad or surprising privileges here.
Assessment
This skill appears coherent and does what it says: it helps you open the Chanjing login page, instructs you to run local commands, stores AK/SK and an access token in ~/.chanjing/credentials.json (or a directory you set via CHANJING_OPENAPI_CREDENTIALS_DIR), and refreshes tokens by POSTing to open-api.chanjing.cc. Before installing/using: (1) confirm you trust the Chanjing endpoints (open-api.chanjing.cc and www.chanjing.cc), (2) be aware the token and keys are persisted on disk (file permissions are set to be restrictive where possible), so protect that filesystem location and rotate keys if exposed, (3) note that the base API URL can be changed by CHANJING_OPENAPI_BASE_URL — only set that to a trusted host, and (4) the registry metadata version vs manifest version differs (minor inconsistency worth noticing). The skill explicitly instructs not to request secrets in chat, which aligns with good practice.

Like a lobster shell, security has layers — review code before you run it.

latestvk976yfxpnpphc7k8db4tvvwpzd83pbfe
240downloads
1stars
8versions
Updated 1mo ago
v1.0.7
MIT-0

Chanjing Credentials Guard

功能说明

仅通过本地命令引导用户配置/校验蝉镜 AK/SKToken,打开登录页;不在对话中索取密钥。可配合其它 Chanjing 技能使用。

运行依赖

  • python3scripts/chanjing_config.pyscripts/open_login_page.pyscripts/chanjing_get_token.py

环境变量与机器可读声明

  • 环境变量键名与说明:manifest.yamlenvironment 段)及本文
  • 变量、写盘路径与权限:manifest.yaml

使用命令

  • ClawHub(slug 以注册表为准):clawhub run chanjing-credentials-guard
  • 本仓库python skills/chanjing-credentials-guard/scripts/chanjing_config.py --status

When to Run

  1. When user asks to configure/get Chanjing keys (AK/SK): use this skill to guide local setup.
  2. When credentials are missing/invalid before a Chanjing API call: use this skill to recover local config.

This skill is a local credential guide, not a cross-skill runtime dependency.

Execution Flow

1. Check if local AK/SK exists
   └─ No  → Run open_login_page.py (open login in browser) → Ask user to run local config command
   └─ Yes → Continue

2. Check if local Token exists and is not expired
   └─ No  → Call API to request/refresh Token → Save
   └─ Yes → Continue

3. Prompt user to continue target action

Credential Storage (AK/SK read from config file)

AK/SK and Token are read from the same config file. Path and format follow the script scripts/chanjing_config.py in this skill.

  • Path: ~/.chanjing/credentials.json(目录由 CHANJING_OPENAPI_CREDENTIALS_DIR 覆盖,兼容 CHANJING_CONFIG_DIR
  • Format:
{
  "app_id": "Your Access Key",
  "secret_key": "Your Secret Key",
  "access_token": "Optional, auto-generated",
  "expire_in": 1721289220
}

expire_in is a Unix timestamp. Token is valid for about 24 hours; refresh 5 minutes before expiry.

When AK/SK Is Missing

When local app_id or secret_key is missing:

  1. Open login page: Run the open_login_page.py script to open the Chanjing sign-in page in the default browser (https://www.chanjing.cc/openapi/login).
  2. Require local setup command after the user obtains keys:
    • Show command only; user runs it locally in terminal.
  3. Do not request secrets in chat:
    • Never ask user to paste AK/SK in conversation.
    • Never echo or store AK/SK in chat summaries.
  4. After setting:
    • Ask user to run status check and then proceed to target action.

Commands to set AK/SK (use either):

python scripts/chanjing_config.py --ak <your_app_id> --sk <your_secret_key>
python skills/chanjing-credentials-guard/scripts/chanjing_config.py --ak <your_app_id> --sk <your_secret_key>

To open the login page manually: python skills/chanjing-credentials-guard/scripts/open_login_page.py

Guide When User Wants to Generate Keys

When the user clearly wants to generate chanjing keys, get keys, or configure AK/SK, follow this flow:

Step 1: Check if already configured

Check if local AK/SK already exists (read ~/.chanjing/credentials.json for non-empty app_id and secret_key, or run python skills/chanjing-credentials-guard/scripts/chanjing_config.py --status).

Step 2: Branch on result

  • If already configured: ask whether user wants to overwrite local config.

    • If yes, run guide steps.
    • If no, stop.
  • If not configured: Run the “Guide steps” below directly.

Guide steps (when not configured or user confirmed re-apply)

  1. Run open_login_page.py to open the Chanjing login page in the default browser.
  2. Explain the page flow clearly:
    • New users are registered automatically and the current page will display App ID and Secret Key with copy buttons.
    • Existing users may be redirected to the console; tell them to open the left-side API 密钥 page to view or reset keys.
  3. Ask user to run local command to configure AK/SK:
    python skills/chanjing-credentials-guard/scripts/chanjing_config.py --ak <your_app_id> --sk <your_secret_key>
    
  4. Secret handling rule:
    • Do not ask user to paste AK/SK in chat.
    • If user shares secret in chat anyway, remind them to rotate keys and continue with local-command-only flow.
  5. After setting:
    • Run status check: python skills/chanjing-credentials-guard/scripts/chanjing_config.py --status
    • Then proceed to target Chanjing action.

Token API (see chanjing-openapi.yaml)

POST https://open-api.chanjing.cc/open/v1/access_token
Content-Type: application/json

Request body:

{
  "app_id": "{{app_id}}",
  "secret_key": "{{secret_key}}"
}

Response (success code: 0):

{
  "code": 0,
  "msg": "success",
  "data": {
    "access_token": "xxx",
    "expire_in": 1721289220
  }
}
  • expire_in: Unix timestamp for token expiry
  • If code !== 0, AK/SK is invalid or the request failed

Validation Logic

  1. AK/SK: Read from config (path/format above, per chanjing_config.py); ensure app_id and secret_key are non-empty.
  2. Token: Ensure access_token exists and expire_in > current_time + 300 (refresh 5 minutes early).
  3. Token refresh: Call the API above and write returned access_token and expire_in back to the file.

Shortcut: Run python skills/chanjing-credentials-guard/scripts/chanjing_get_token.py; on success it prints access_token, on failure it prints guidance.

Security Boundary

  • This skill only handles local credential guidance.
  • It does not require install hooks or elevated/system-wide privileges.
  • It should not automatically execute unrelated skills.
  • It should not accept AK/SK via chat content.

Shell Config

ScriptDescription
open_login_page.pyOpens the Chanjing login page and explains how new/existing users obtain AK/SK
chanjing_config.pySet or view AK/SK and Token status
chanjing_get_token.pyPrint a valid access_token to stdout (or guidance on failure)
# Open login page (also runs automatically when AK/SK is missing)
python skills/chanjing-credentials-guard/scripts/open_login_page.py

# Set AK/SK manually
python skills/chanjing-credentials-guard/scripts/chanjing_config.py --ak <app_id> --sk <secret_key>

# View status
python skills/chanjing-credentials-guard/scripts/chanjing_config.py --status

With Other Skills

  • Other Chanjing skills may use the same local config path/format, but should keep their own runtime auth logic.
  • Guard can be used as an optional setup helper when users explicitly ask for credential guidance.

Reference

  • reference.md: API and storage format details
  • chanjing-openapi.yaml: /access_token, dto.OpenAccessTokenReq, dto.OpenAccessTokenResp

Comments

Loading comments...