Grok 4.5 7天试用全流程保姆级教程:开通、关闭自动续费与接入本地工具指南

 

近期 Grok 4.5 的关注度持续走高,后台每天都有朋友询问:如何开通试用?为什么注册后看不到入口?绑卡会不会自动扣费?怎样接入自己的开发工具?我自己折腾了两天,踩过几个坑,终于把从注册到接入本地工具的完整流程跑通了。今天整理一份手把手教程,全部基于 7 月 13 日亲测有效的步骤,照着做基本不会出错。
 

先说明:本文仅供个人学习参考,请遵守官方服务条款,账号凭证仅限本人使用,不要分享或转售。涉及绑卡的步骤,务必仔细核对账单状态,避免误扣费。
 

图像 1


01 Grok 4.5 值不值得折腾?

这次 Grok 4.5 由 xAI 与 Cursor 深度联手打造,7 月 8 日先在 Cursor 官宣,9 日全渠道上线,主打代码能力、Agent 能力,长上下文表现也很出色。我这两天实际体验下来,感觉确实不错:编码顺手,响应速度快,搭建 Agent 工作流、修 bug、处理大项目文档都挺稳,作为新旗舰模型,值得一试。
 


目前官方提供 SuperGrok 7 天免费试用,绑卡验证后即可使用 Grok 4.5 全部能力。但坑也不少:

并非注册账号就有试用入口,很多人注册完什么都看不到;试用到期默认自动续费,忘记关闭容易被扣钱;想接入本地开发工具,却不知道如何导出凭证。

今天这篇文章就把这些问题全部解决,从注册到接入一条龙讲清楚。
 

02 先避坑:不是注册了就有 7 天试用

很多人第一步就卡在这里:邮箱注册完,登录进去只有免费额度,完全找不到 SuperGrok 试用入口。我最初也踩了这个坑,反复试了好几次才搞明白:能否出现试用入口,主要与三个条件有关:邮箱、浏览器环境、网络环境,缺一不可。

先解释什么叫“有试用资格”:登录 grok.com 后,首页或右下角能看到「SuperGrok 7 天试用 / Free trial」,点进去能看到绑卡页面和试用到期时间,这才算有资格。如果只有普通免费额度,就按下面的方法排查。


1. 邮箱:优先选这两个,成功率最高

我实测下来:

Gmail / Outlook 邮箱:最稳,成功率最高,优先使用;QQ / 163 / 域名邮箱:环境干净时也可能成功,但不稳定。

记住:邮箱只是影响因素之一,只换邮箱不换浏览器和网络,大概率还是出不来入口。建议准备一个全新的 Gmail / Outlook,一个邮箱只注册一个号,别反复注册,密码设复杂些(数字 + 大小写 + 符号),后面 CLI 授权不容易踩坑。


2. 浏览器环境:干净程度比你想的重要

这是很多人忽略的关键点,Grok 对浏览器痕迹特别敏感。我用平时登过其他 Grok 号的浏览器注册,死活看不到试用入口;清了三遍缓存开无痕,一次就出来了。

分享一个亲测有效的操作:

用 Chrome / Edge / Firefox 都行,优先选无痕 / 隐私模式;如果这个浏览器之前登过 Grok,一定要彻底清缓存:按 Ctrl+Shift+Delete,时间范围选「所有时间」;勾选 Cookie、缓存、站点数据,全部清除;关掉浏览器重开,重复清 3 次以上;再开无痕窗口访问 grok.com 注册。

原理很简单:后台会识别本地的登录痕迹、历史 Cookie,脏环境就算用新邮箱,也可能不被判定为新用户,试用入口就不会出现。


3. 网络环境:最关键的一步

这一点不用多说,大家都懂,重点提醒三个事项:

保证能稳定打开 grok.com 和支付页面,网络不要来回切换,不稳定很容易验证失败;不要短时间高频注册!这是最多人失败的原因——连续注册好几个号触发风控,后面换什么邮箱都没用;失败了别硬怼,先清缓存、换环境,歇一会再试,越急越容易被风控。
 


注册全流程(照着做就行)

稳定网络环境下,开干净浏览器的无痕窗口,打开 https://grok.com/;点右上角注册,选邮箱注册,用 Gmail / Outlook 收验证码;填姓名、密码,完成注册;回到首页,检查有没有 SuperGrok 7 天试用的入口。
 


我这边最稳的组合是:Outlook / Gmail 邮箱 + 干净 Chrome 无痕 + 稳定网络 + 不高频注册,基本一次就能看到入口。


03 绑卡开通 7 天试用,手把手走

看到试用入口后,点进去就到支付验证页面了。我这边显示可以选 SGD 或者 USD 支付,按页面提示选适合的币种,填卡片信息即可。提醒一句:这里是官方支付页,涉及真实绑卡和自动续费规则,仔细看清条款再提交。
 


提交后过个人机验证,网络不好时验证可能多弹几次,属于正常现象。验证完成跳转到成功页面,就说明绑卡开通成功了。可以去设置里查看订阅状态和额度,确认试用生效。
 


04 开通后立刻做!关闭自动续费防误扣

划重点:开通试用第一件事,就是去关闭自动续订!关闭之后,试用期内仍可正常使用,到期自动停止,不会偷偷扣费,特别省心。


步骤拆解如下:

先把页面切成中文,找到「取消订阅」按钮点进去;弹窗选「取消 SuperGrok」,再点「继续取消」;确认后会跳到 Stripe 账单页,再点一次取消;随便选个取消理由,点右下角取消,再确认一次「取消订阅」;看到取消成功的提示,就回到 Grok 的订阅管理页核对。

最后看到订阅状态显示到期时间,没有自动续费标识,就搞定了。比如我这边显示到期时间是 7 月 21 号,说明 7 天试用期正常,且不会自动续费,放心用就行。
 


05 进阶玩法:把 Grok 接到本地开发工具里

如果只在网页使用,总觉得不够方便。我把它接到了常用的编程助手和网关里,本地工具直接就能调用,体验提升很多。核心思路是用 Grok CLI 授权,导出凭证转成 CPA 格式,再导入个人网关,走 OpenAI 兼容接口调用。全程都是本人账号操作,凭证千万不要外传。


第一步:安装 Grok CLI 并授权

Windows 用户直接打开 PowerShell,执行以下命令安装:

irm https://x.ai/cli/install.ps1 | iex

安装完成后,启动授权流程,浏览器会自动弹出确认页,点「继续」,用刚开通试用的账号登录,点「允许」给本机 CLI 授权即可。

授权完成后,在终端输入 grok,显示已登录就说明成功了。


第二步:提取 auth.json 并转 CPA 格式

授权成功后,本地会生成凭证文件,路径一般是:

C:\Users\你的用户名\.grok\auth.json


这是原始凭证,妥善保存,不要给别人看。

这个文件不能直接使用,需要转成 CPA 格式。我写了一个 Python 转换脚本,可以直接拿去用。新建一个 auth_json_to_cpa.py 文件,把下面的代码粘贴进去:

#!/usr/bin/env python3
from __future__ import annotations
import argparse
import base64
import json
import sys
from pathlib import Path
from typing import Any
DEFAULT_INPUT = Path.home() / ".grok" / "auth.json"
DEFAULT_OUTPUT = Path("cpa_auths")
def b64url_decode(data: str) -> bytes:
    pad = "=" * (-len(data) % 4)
    return base64.urlsafe_b64decode(data + pad)
def decode_jwt_payload(token: str) -> dict[str, Any]:
    parts = token.split(".")
    if len(parts) < 2:
        raise ValueError("invalid jwt: missing payload")
    raw = b64url_decode(parts[1])
    return json.loads(raw.decode("utf-8"))
def convert_auth_json(
    input_path: Path,
    output_dir: Path,
    *,
    dry_run: bool = False,
    overwrite: bool = True,
    include_headers: bool = True,
) -> list[dict[str, Any]]:
    data = json.loads(input_path.read_text(encoding="utf-8"))
    if not isinstance(data, dict) or not data:
        raise ValueError("auth.json is empty or not an object")
    output_dir.mkdir(parents=True, exist_ok=True)
    results: list[dict[str, Any]] = []
    for key, item in data.items():
        if not isinstance(item, dict):
            results.append({"ok": False, "key": key, "error": "item is not object"})
            continue
        access_token = item.get("access") or item.get("access_token")
        refresh_token = item.get("refresh") or item.get("refresh_token")
        if not access_token or not refresh_token:
            results.append(
                {
                    "ok": False,
                    "key": key,
                    "error": "missing access/refresh token",
                }
            )
            continue
        try:
            payload = decode_jwt_payload(str(access_token))
            email = payload.get("email") or payload.get("preferred_username") or "unknown"
            sub = payload.get("sub") or key
            safe_email = "".join(c if c.isalnum() or c in "._-+@" else "_" for c in str(email))
            out_name = f"xai-{safe_email}.json"
            out_path = output_dir / out_name
            cpa_obj: dict[str, Any] = {
                "type": "xai",
                "access_token": access_token,
                "refresh_token": refresh_token,
                "email": email,
                "sub": sub,
                "expired": payload.get("exp"),
            }
            if include_headers:
                cpa_obj["headers"] = {
                    "User-Agent": "grok-cli",
                }
            if not dry_run:
                if out_path.exists() and not overwrite:
                    results.append(
                        {
                            "ok": False,
                            "key": key,
                            "email": email,
                            "error": f"exists: {out_path}",
                        }
                    )
                    continue
                out_path.write_text(
                    json.dumps(cpa_obj, ensure_ascii=False, indent=2),
                    encoding="utf-8",
                )
            results.append(
                {
                    "ok": True,
                    "email": email,
                    "sub": sub,
                    "path": str(out_path),
                    "expired": payload.get("exp"),
                    "dry_run": dry_run,
                }
            )
        except Exception as e:
            results.append({"ok": False, "key": key, "error": str(e)})
    return results
def parse_args(argv: list[str] | None = None) -> argparse.Namespace:
    p = argparse.ArgumentParser(
        description="Convert Grok CLI auth.json to CPA xai-*.json auth files",
    )
    p.add_argument(
        "-i",
        "--input",
        type=Path,
        default=DEFAULT_INPUT,
        help=f"source auth.json (default: {DEFAULT_INPUT})",
    )
    p.add_argument(
        "-o",
        "--output",
        type=Path,
        default=DEFAULT_OUTPUT,
        help=f"output directory (default: {DEFAULT_OUTPUT})",
    )
    p.add_argument(
        "--dry-run",
        action="store_true",
        help="parse and print result only, do not write files",
    )
    p.add_argument(
        "--no-overwrite",
        action="store_true",
        help="skip existing output files",
    )
    p.add_argument(
        "--no-headers",
        action="store_true",
        help="omit client headers block (minimal CPA shape)",
    )
    return p.parse_args(argv)
def main(argv: list[str] | None = None) -> int:
    args = parse_args(argv)
    input_path = args.input.expanduser().resolve()
    output_dir = args.output.expanduser().resolve()
    if not input_path.is_file():
        print(f"[error] input not found: {input_path}", file=sys.stderr)
        return 2
    print(f"[info] input : {input_path}")
    print(f"[info] output: {output_dir}")
    if args.dry_run:
        print("[info] dry-run mode")
    results = convert_auth_json(
        input_path,
        output_dir,
        dry_run=args.dry_run,
        overwrite=not args.no_overwrite,
        include_headers=not args.no_headers,
    )
    ok_n = sum(1 for r in results if r.get("ok"))
    fail_n = len(results) - ok_n
    for r in results:
        if r.get("ok"):
            print(
                f"[ok] email={r.get('email')} sub={r.get('sub')} "
                f"expired={r.get('expired')} -> {r.get('path')}"
            )
        else:
            print(
                f"[fail] key={r.get('key')} email={r.get('email')} error={r.get('error')}",
                file=sys.stderr,
            )
    print(f"[done] total={len(results)} ok={ok_n} fail={fail_n}")
    return 0 if fail_n == 0 and ok_n > 0 else 1
if __name__ == "__main__":
    raise SystemExit(main())

保存完执行:

python auth_json_to_cpa.py

终端显示 [ok] 就转换成功了,生成的文件在 cpa_auths 文件夹里,文件名一般是 xai-你的邮箱.json。


第三步:导入 CPA,接本地工具

打开你自己用的 CPA / 网关系统,找到认证文件上传入口,把刚生成的 JSON 导进去即可。导入成功后,网关会提供 OpenAI 兼容接口,常用开发工具基本都能接:

CherryStudio:新增 API 服务,填网关地址和密钥,模型选 Grok 就能用;SUB2API / New API:添加渠道,协议选 OpenAI 兼容,填网关 Base URL 和 Key;Codex / Claude Code:改模型配置里的接口地址为你的网关地址即可。

核心逻辑都一样:个人网关转成 OpenAI 兼容格式,工具侧填地址和密钥,就能本地调用 Grok 4.5。