ChatCRS
ChatCRS 是 ChatArch 的 CRS 管理 CLI。外部管理面优先使用 CRS HTTP/Admin API;service 域是 server-local surface,只在 CRS 服务器本机 shell 里操作本机 CRS checkout / Node runtime / crs executable。
Images 验收、debug runtime、Nginx/edge、release/cutover 等花哨/任务型能力不作为当前包内命令暴露;这些属于代理站维护、专项验收或运维 runbook,后续需要时单独设计。
安装与开发
python -m pip install -e '.[dev,docs]'
chatcrs --help
chatcrs --version
python -m pytest -q
python -m mkdocs build --strict
python -m build
完整文档使用 MkDocs,本地预览:
python -m mkdocs serve
线上文档:https://arch.gh.wzhecnu.cn/ChatCRS/
CLI 树
chatcrs # CRS HTTP/API helpers plus server-local service commands for ChatArch.
├── --help # Show this help message.
├── --version # Show the installed package version.
├── --tree # Print the registered command tree.
├── health [--base-url <BASE-URL>] [--json-output] # Verify the CRS /health endpoint.
├── admin # Remote CRS administrator operations via HTTPS Admin API.
│ ├── login [--profile <PROFILE>] [--base-url <BASE-URL>] [--api-key <API-KEY>] [--username <USERNAME>] [--password <PASSWORD>] [--admin-token <ADMIN-TOKEN>] [--timeout <TIMEOUT>] [--save-token] [--json-output] # Verify CRS admin login without printing the session token.
│ ├── token # Manage cached CRS admin session tokens in the ChatArch token store.
│ │ ├── status [--profile <PROFILE>] [--base-url <BASE-URL>] [--api-key <API-KEY>] [--username <USERNAME>] [--password <PASSWORD>] [--admin-token <ADMIN-TOKEN>] [--timeout <TIMEOUT>] [--json-output] # Show cached CRS admin token metadata without printing the token.
│ │ ├── refresh [--profile <PROFILE>] [--base-url <BASE-URL>] [--api-key <API-KEY>] [--username <USERNAME>] [--password <PASSWORD>] [--admin-token <ADMIN-TOKEN>] [--timeout <TIMEOUT>] [--json-output] # Login and save a fresh CRS admin session token.
│ │ └── clear [--profile <PROFILE>] [--base-url <BASE-URL>] [--api-key <API-KEY>] [--username <USERNAME>] [--password <PASSWORD>] [--admin-token <ADMIN-TOKEN>] [--timeout <TIMEOUT>] [--execute] [--json-output] # Clear the cached CRS admin session token.
│ ├── accounts # Inspect or refresh remote CRS account state via HTTP Admin API.
│ │ ├── usage [--profile <PROFILE>] [--base-url <BASE-URL>] [--api-key <API-KEY>] [--username <USERNAME>] [--password <PASSWORD>] [--admin-token <ADMIN-TOKEN>] [--timeout <TIMEOUT>] [--json-output] # List OpenAI/Codex account usage and scheduling metadata.
│ │ └── refresh-status <ACCOUNT-ID> [--profile <PROFILE>] [--base-url <BASE-URL>] [--api-key <API-KEY>] [--username <USERNAME>] [--password <PASSWORD>] [--admin-token <ADMIN-TOKEN>] [--timeout <TIMEOUT>] [--execute] [--json-output] # Reset a CRS OpenAI account status after transient failures.
│ └── keys # Inspect remote CRS API keys with admin privileges.
│ ├── list [--profile <PROFILE>] [--base-url <BASE-URL>] [--api-key <API-KEY>] [--username <USERNAME>] [--password <PASSWORD>] [--admin-token <ADMIN-TOKEN>] [--timeout <TIMEOUT>] [--include-stats] [--time-range <TIME-RANGE>] [--json-output] # List CRS API key metadata, optionally including usage stats.
│ └── show <KEY-ID> [--profile <PROFILE>] [--base-url <BASE-URL>] [--api-key <API-KEY>] [--username <USERNAME>] [--password <PASSWORD>] [--admin-token <ADMIN-TOKEN>] [--timeout <TIMEOUT>] [--include-stats/--no-include-stats] [--time-range <TIME-RANGE>] [--json-output] # Show one CRS API key by id or name.
├── key # CRS API-key-only operations that do not require admin login.
│ └── info [--profile <PROFILE>] [--base-url <BASE-URL>] [--api-key <API-KEY>] [--timeout <TIMEOUT>] [--path <INFO-PATH>] [--json-output] # Query CRS key-info using only a CRS API key.
├── codex # Direct OpenAI Codex account token and usage helpers.
│ ├── token # Manage cached OpenAI Codex OAuth tokens in the ChatArch token store.
│ │ ├── status [--profile <PROFILE>] [--json-output] # Show cached Codex OAuth token metadata without printing tokens.
│ │ └── refresh [--profile <PROFILE>] [--refresh-token <REFRESH-TOKEN>] [--client-id <CLIENT-ID>] [--timeout <TIMEOUT>] [--save-token] [--json-output] # Refresh an OpenAI Codex access token without printing token values.
│ ├── account [--profile <PROFILE>] [--access-token <ACCESS-TOKEN>] [--refresh/--no-refresh] [--client-id <CLIENT-ID>] [--timeout <TIMEOUT>] [--json-output] # Read OpenAI Codex account metadata directly from OpenAI.
│ └── usage [--profile <PROFILE>] [--account-id <ACCOUNT-ID>] [--access-token <ACCESS-TOKEN>] [--refresh/--no-refresh] [--client-id <CLIENT-ID>] [--timeout <TIMEOUT>] [--json-output] # Read Codex usage and quota metadata directly from OpenAI.
└── service # Local CRS service lifecycle commands for the current server.
├── install [--app-dir <APP-DIR>] [--crs-command <CRS-COMMAND>] [--timeout <TIMEOUT>] [--execute] [--json-output] # Plan or execute local `crs install` on this server.
├── update [--app-dir <APP-DIR>] [--crs-command <CRS-COMMAND>] [--timeout <TIMEOUT>] [--execute] [--json-output] # Plan or execute local `crs update` on this server.
├── start [--app-dir <APP-DIR>] [--crs-command <CRS-COMMAND>] [--timeout <TIMEOUT>] [--execute] [--json-output] # Plan or execute local `crs start` on this server.
├── stop [--app-dir <APP-DIR>] [--crs-command <CRS-COMMAND>] [--timeout <TIMEOUT>] [--execute] [--json-output] # Plan or execute local `crs stop` on this server.
├── restart [--app-dir <APP-DIR>] [--crs-command <CRS-COMMAND>] [--timeout <TIMEOUT>] [--execute] [--json-output] # Plan or execute local `crs restart` on this server.
├── status [--app-dir <APP-DIR>] [--crs-command <CRS-COMMAND>] [--timeout <TIMEOUT>] [--json-output] # Execute local `crs status` on this server.
├── switch-branch <BRANCH> [--app-dir <APP-DIR>] [--crs-command <CRS-COMMAND>] [--timeout <TIMEOUT>] [--execute] [--json-output] # Plan or execute local `crs switch-branch <branch>` on this server.
└── update-pricing [--app-dir <APP-DIR>] [--crs-command <CRS-COMMAND>] [--timeout <TIMEOUT>] [--execute] [--json-output] # Plan or execute local `crs update-pricing` on this server.
运行 chatcrs --tree 可从实际 Click 注册表回读同一棵命令树。
HTTP/Admin 与 API key
chatcrs health --base-url https://crs.example.com --json-output
chatcrs admin login --profile admin --json-output
chatcrs admin login --profile admin --save-token --json-output
chatcrs admin token status --profile admin --json-output
chatcrs admin token refresh --profile admin --json-output
chatcrs admin token clear --profile admin --json-output
chatcrs admin token clear --profile admin --execute --json-output
chatcrs admin accounts usage --profile admin --json-output
chatcrs admin accounts refresh-status <account_id> --profile admin --json-output
chatcrs admin accounts refresh-status <account_id> --profile admin --execute --json-output
chatcrs admin keys list --profile admin --include-stats --json-output
chatcrs admin keys show <key_id_or_name> --profile admin --json-output
chatcrs key info --profile admin --json-output
chatcrs codex token status --profile default --json-output
chatcrs codex account --profile default --json-output
chatcrs codex usage --profile default --account-id <account_id> --json-output
Server-local service
这些命令应安装在目标 CRS 服务器上,并在该服务器本机执行:
chatcrs service status --app-dir /path/to/crs --json-output
chatcrs service update --app-dir /path/to/crs --json-output
chatcrs service update --app-dir /path/to/crs --execute --json-output
chatcrs service restart --app-dir /path/to/crs --execute --json-output
status 默认执行本机只读 crs status。其它 service mutation 默认 dry-run,需要 --execute 才执行。
配置
ChatCRS 使用一套 CRS ChatEnv profile;默认 profile 是 admin,也可以用 --profile 指定其它 profile。公开文档只描述字段类别,不写具体 secret 文件路径或 secret-bearing env key 名。
Canonical 字段类别:
HTTP base URL
caller API key
admin username
admin password
admin bearer/session token
Service-local 目标不进入第二套 ChatEnv namespace;用当前工作目录或 --app-dir / --crs-command 指定本机 checkout 和 executable。
敏感字段只应存在于 ChatEnv 或进程环境中,不进入命令行参数、文档、PR body 或日志输出。Profile 文件应使用 0600 权限。
生产安全
外部管理只能使用 HTTP/Admin API;没有 HTTP lifecycle 接口时,不用远端执行补洞。要么新增 CRS API/host-agent,要么在目标服务器本机运行 chatcrs service ...。
更多内容见:
docs/cli.mddocs/interfaces.mddocs/configuration.mddocs/production-maintenance.md
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file chatcrs-0.2.8.tar.gz.
File metadata
- Download URL: chatcrs-0.2.8.tar.gz
- Upload date:
- Size: 52.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2d8669c358a253d5559df9adbb1a4f0c35b79fdf059809a9b7154ed1c824220
|
|
| MD5 |
fbda6861e2575931d81bbe3a07b63d0d
|
|
| BLAKE2b-256 |
69148e9f985b5052cd1652738b83a1cceacd198b4834b7af2a7c16f220aed99a
|
Provenance
The following attestation bundles were made for chatcrs-0.2.8.tar.gz:
Publisher:
publish.yml on ChatArch/ChatCRS
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
chatcrs-0.2.8.tar.gz -
Subject digest:
b2d8669c358a253d5559df9adbb1a4f0c35b79fdf059809a9b7154ed1c824220 - Sigstore transparency entry: 2430417673
- Sigstore integration time:
-
Permalink:
ChatArch/ChatCRS@55a3e3f331153a7e3e408ccd9af8c182c411e10d -
Branch / Tag:
refs/tags/v0.2.8 - Owner: https://github.com/ChatArch
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@55a3e3f331153a7e3e408ccd9af8c182c411e10d -
Trigger Event:
push
-
Statement type:
File details
Details for the file chatcrs-0.2.8-py3-none-any.whl.
File metadata
- Download URL: chatcrs-0.2.8-py3-none-any.whl
- Upload date:
- Size: 24.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2ffea84de4a30bfa1a46ad4aeaf9fe46460df5ff5dd59582367b0f44d5e29c17
|
|
| MD5 |
63c099dee75a16ab65fbc079fa4a5e47
|
|
| BLAKE2b-256 |
8eabd3ed22d88c20860075e74f9d65c62438d2345345f66e5585fc530070c64a
|
Provenance
The following attestation bundles were made for chatcrs-0.2.8-py3-none-any.whl:
Publisher:
publish.yml on ChatArch/ChatCRS
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
chatcrs-0.2.8-py3-none-any.whl -
Subject digest:
2ffea84de4a30bfa1a46ad4aeaf9fe46460df5ff5dd59582367b0f44d5e29c17 - Sigstore transparency entry: 2430417771
- Sigstore integration time:
-
Permalink:
ChatArch/ChatCRS@55a3e3f331153a7e3e408ccd9af8c182c411e10d -
Branch / Tag:
refs/tags/v0.2.8 - Owner: https://github.com/ChatArch
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@55a3e3f331153a7e3e408ccd9af8c182c411e10d -
Trigger Event:
push
-
Statement type: