智能助手网
标签聚合 claude

/tag/claude

linux.do · 2026-04-18 20:41:40+08:00 · tech

前4个: 1.官网fiat24卡开,秒封 2.尼区5x,三天封 3.尼区Pro,隔天封 4.goole play买的5x,隔天封 一直封,一直爱试,手痒难耐。今天看见佬友帮忙用自写的反代代挂,就又心动开了一个5x试试水。 如果有希望使用claude反代的 可以找我 搞七捻三 自写的反代目前看来比较稳定 之前直接分享自己用的key被举报了 没心情分享免费opus4.7了 但是如果有佬自己的号希望反代用 可以找我免费托管,代理我来提供 因为代理是按流量计费的 5​ /GB 所以提供不了太多号 建议最多2个人分享一个号,更多人没测过 有可视化面板可以查使用情况 不用担心有你本人以外的人使用你的账号 记录一下时间线: 2026-04-18 16点:Google Play 购买 5x 2026-04-18 17点:开始反代… 2026-04-18 20点:第一次2api对话…正常 3 个帖子 - 3 位参与者 阅读完整话题

linux.do · 2026-04-18 20:40:28+08:00 · tech

any路由器因为跟claude code有一些参数适配的问题,所以我们可以在本地架设一个简单的网关,将参数在本地拦截,然后修改一下,再传给any大善人,就可以绕过这些参数适配的小问题了。 claudecode最新版本适用,不需要回退版本 这个本地网关做了什么 在本地监听 127.0.0.1:1998。 把 Claude Code 的请求转发到上游any的端口。 自动补认证头(Authorization / x-api-key)。 对 haiku 请求额外修正:补 context-1m-2025-08-07,并加 thinking.budget_tokens=1024。 把请求和响应写到 gateway_requests.jsonl 方便排错。 极简启动步骤 先开网关 export ANTHROPIC_BASE_URL=“any大善人地址” export ANTHROPIC_AUTH_TOKEN=“你的真实token” python3 /Users/Apple/Desktop/code/claude_gateway.py 新开一个终端再开 Claude Code ANTHROPIC_BASE_URL=“ http://127.0.0.1:1998 ” claude --enable-auto-mode 截图为证: 网关代码如下(vibe写的,很多冗余,大佬可以自行修改): #!/usr/bin/env python3 import base64 import json import os import threading from datetime import datetime, timezone from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer from urllib.error import HTTPError, URLError from urllib.parse import urlsplit, urlunsplit from urllib.request import Request, urlopen LISTEN_HOST = os.getenv("CLAUDE_GATEWAY_HOST", "127.0.0.1") LISTEN_PORT = int(os.getenv("CLAUDE_GATEWAY_PORT", "1998")) UPSTREAM_BASE_URL = os.getenv( "ANTHROPIC_BASE_URL", "https://a-ocnfniawgw.cn-shanghai.fcapp.run" ) UPSTREAM_AUTH_TOKEN = os.getenv("ANTHROPIC_AUTH_TOKEN", "") UPSTREAM_TIMEOUT = float(os.getenv("CLAUDE_GATEWAY_TIMEOUT", "120")) LOG_PATH = os.getenv( "CLAUDE_GATEWAY_LOG", os.path.join(os.path.dirname(__file__), "gateway_requests.jsonl") ) LOG_LOCK = threading.Lock() def utc_now_iso() -> str: return datetime.now(timezone.utc).isoformat() def ensure_log_parent_exists() -> None: parent = os.path.dirname(LOG_PATH) if parent: os.makedirs(parent, exist_ok=True) def decode_body_for_log(body: bytes) -> dict: if not body: return {"encoding": "utf-8", "text": ""} try: return {"encoding": "utf-8", "text": body.decode("utf-8")} except UnicodeDecodeError: return {"encoding": "base64", "text": base64.b64encode(body).decode("ascii")} def append_log(record: dict) -> None: ensure_log_parent_exists() line = json.dumps(record, ensure_ascii=False) with LOG_LOCK: with open(LOG_PATH, "a", encoding="utf-8") as f: f.write(line + "\n") def build_upstream_url(base_url: str, incoming_path: str) -> str: base = urlsplit(base_url) incoming = urlsplit(incoming_path) incoming_path_only = incoming.path or "/" base_path = base.path.rstrip("/") if base_path: merged_path = f"{base_path}{incoming_path_only}" else: merged_path = incoming_path_only return urlunsplit((base.scheme, base.netloc, merged_path, incoming.query, "")) def rewrite_request_headers(headers: dict, path: str) -> dict: rewritten = dict(headers) if UPSTREAM_AUTH_TOKEN: has_x_api_key = any(k.lower() == "x-api-key" for k in rewritten) has_authorization = any(k.lower() == "authorization" for k in rewritten) if not has_x_api_key: rewritten["x-api-key"] = UPSTREAM_AUTH_TOKEN if not has_authorization: rewritten["Authorization"] = f"Bearer {UPSTREAM_AUTH_TOKEN}" # 先做骨架,后续按 any 规则逐步覆写。 return rewritten def rewrite_request_body(body: bytes, headers: dict, path: str) -> bytes: if not body: return body content_type = "" for k, v in headers.items(): if k.lower() == "content-type": content_type = v break if "application/json" not in content_type.lower(): return body try: payload = json.loads(body.decode("utf-8")) except (UnicodeDecodeError, json.JSONDecodeError): return body model = str(payload.get("model", "")).lower() if not model.startswith("claude-haiku"): return body beta_key = None for k in headers.keys(): if k.lower() == "anthropic-beta": beta_key = k break raw_beta = headers.get(beta_key, "") if beta_key else "" beta_features = [item.strip() for item in raw_beta.split(",") if item.strip()] if "context-1m-2025-08-07" not in beta_features: beta_features.append("context-1m-2025-08-07") merged_beta = ",".join(beta_features) if beta_key: headers[beta_key] = merged_beta else: headers["anthropic-beta"] = merged_beta payload["thinking"] = {"type": "enabled", "budget_tokens": 1024} return json.dumps(payload, ensure_ascii=False, separators=(",", ":")).encode("utf-8") class ClaudeGatewayHandler(BaseHTTPRequestHandler): protocol_version = "HTTP/1.1" def do_GET(self): self._handle_proxy() def do_POST(self): self._handle_proxy() def do_PUT(self): self._handle_proxy() def do_PATCH(self): self._handle_proxy() def do_DELETE(self): self._handle_proxy() def do_OPTIONS(self): self._handle_proxy() def do_HEAD(self): self._handle_proxy() def log_message(self, fmt, *args): return def _read_request_body(self) -> bytes: content_length = int(self.headers.get("Content-Length", "0") or "0") if content_length <= 0: return b"" return self.rfile.read(content_length) def _copy_request_headers(self) -> dict: headers = {} for key, value in self.headers.items(): key_l = key.lower() if key_l in {"host", "content-length", "connection", "accept-encoding"}: continue headers[key] = value return headers def _send_response(self, status: int, headers: dict, body: bytes) -> None: self.send_response(status) ignored = {"transfer-encoding", "content-length", "connection"} for k, v in headers.items(): if k.lower() in ignored: continue self.send_header(k, v) self.send_header("Content-Length", str(len(body))) self.send_header("Connection", "close") self.end_headers() if self.command != "HEAD" and body: self.wfile.write(body) def _handle_proxy(self): req_body = self._read_request_body() req_headers = self._copy_request_headers() req_headers = rewrite_request_headers(req_headers, self.path) req_body = rewrite_request_body(req_body, req_headers, self.path) upstream_url = build_upstream_url(UPSTREAM_BASE_URL, self.path) request_log = { "timestamp": utc_now_iso(), "client_ip": self.client_address[0] if self.client_address else "", "method": self.command, "path": self.path, "upstream_url": upstream_url, "headers": dict(self.headers.items()), "body": decode_body_for_log(req_body), "body_length": len(req_body), } try: upstream_req = Request( url=upstream_url, data=req_body if req_body else None, headers=req_headers, method=self.command, ) with urlopen(upstream_req, timeout=UPSTREAM_TIMEOUT) as resp: resp_status = resp.getcode() resp_headers = dict(resp.headers.items()) resp_body = resp.read() request_log["response"] = { "status": resp_status, "headers": resp_headers, "body": decode_body_for_log(resp_body), "body_length": len(resp_body), } append_log(request_log) self._send_response(resp_status, resp_headers, resp_body) return except HTTPError as e: err_body = e.read() if hasattr(e, "read") else b"" err_headers = dict(e.headers.items()) if getattr(e, "headers", None) else {} request_log["response"] = { "status": e.code, "headers": err_headers, "body": decode_body_for_log(err_body), "body_length": len(err_body), } append_log(request_log) self._send_response(e.code, err_headers, err_body) return except (URLError, TimeoutError, Exception) as e: error_payload = { "error": "gateway_upstream_error", "message": str(e), } error_body = json.dumps(error_payload, ensure_ascii=False).encode("utf-8") request_log["response"] = { "status": 502, "headers": {"Content-Type": "application/json; charset=utf-8"}, "body": {"encoding": "utf-8", "text": error_body.decode("utf-8")}, "body_length": len(error_body), } append_log(request_log) self._send_response( 502, {"Content-Type": "application/json; charset=utf-8"}, error_body, ) def main(): server = ThreadingHTTPServer((LISTEN_HOST, LISTEN_PORT), ClaudeGatewayHandler) print(f"[gateway] listening on http://{LISTEN_HOST}:{LISTEN_PORT}") print(f"[gateway] upstream: {UPSTREAM_BASE_URL}") print(f"[gateway] auth token configured: {bool(UPSTREAM_AUTH_TOKEN)}") print(f"[gateway] log file: {LOG_PATH}") server.serve_forever() if __name__ == "__main__": main() 1 个帖子 - 1 位参与者 阅读完整话题

linux.do · 2026-04-18 20:36:15+08:00 · tech

我的问题:我无法在我的vps上用我的claudecode与codex 昨天我的claude与codex都能用,今天又崩了 我尝试把本地的能用的关键配置文件上传到里面,还是失败不能动,我怀疑是网络问题 vps是无界面的linux 我目前有2个GPT 一个team一个plus(官方) 两个中转站 any与jobema (分别调用claude与glm5.1模型) 我的科学工具 1.clash for linux 2.shellcrash 我能不能ping通youtube? export http_proxy="127.0.0.1:7890" 后,依旧不能,但是之前不能,可是codex还是能动 我的尝试方法 1.npx zcf 2.ccr 3.cc-switch 我想要什么? 我想要有个通用万能简单上手的,直接配置ai的 baseurl key model 就能用的,cli下的一个工具 opencode? 目前打算:卸载目前npx zcf,重新安装,重新配置 1 个帖子 - 1 位参与者 阅读完整话题

linux.do · 2026-04-18 19:39:02+08:00 · tech

电脑端我有Claude,Gemini和Perplexity,之前也用过GPT和Grok,算是都用过不少。 但手机端目前还没有靠谱方便的AI,求助一下… 手机端同步电脑的AI,每次要先开梯子、等连接,有时候场景又不方便,多端登还容易风控——总之不太方便。 目前手机上兜底用腾讯元宝,日常问点套餐资费、快递查询这类基础问题还凑合。但只要稍微有难度,就开始出问题——举个例子:做大物实验拍了照让它帮我处理数据、算重力加速度的不确定度,这种很基础的数据处理任务它都算不对。客观性和推理能力也差,很多话题直接指挥称赞。 所以想问问有没有什么好用的国产AI?kimi体验不错,但是听说付费效果也一般?MiniMax,Step,GLM怎么样?求助一下 btw: 需求就日常对话,简单问答,偶尔处理些数据,不要求什么代码,生成图片视频或者解决数学题超强,只是图个方便有用。 6 个帖子 - 6 位参与者 阅读完整话题

linux.do · 2026-04-18 19:07:30+08:00 · tech

前言 当AI工具用的起飞时,是不是也经常遇到这种尴尬:正写代码写起劲,突然弹出“额度已用尽,请 X 时间后再试”?其实,只要利用好官方的“定时任务”功能,巧妙重置计算时机,你每天的可用资源能直接翻倍。 本教程主要是给订阅官方套餐的用户,可以充分掌控自己账号的5小时刷新时机。 一、 核心逻辑:给 AI 定闹钟 不管是 Claude 还是 ChatGPT,它们的额度限制通常都是“滚动窗口”模式(比如 5 小时内限制 X 的 Token 额度)。 如果是常规使用,每天上午9点半开始用,结果不到12点就用光了额度,即使过完中午吃饭,下午仍然要等很久,看着刷新时间,陷入漫长的等待。 但通过定时任务,在特定的时间点触发一次微小的对话(比如让它打个招呼)。这本质上是在“占位”并提前触发计费周期的重置,让你在白天的黄金工作时段,始终拥有最新鲜、饱满的额度窗口。 按下面这个配置,每天能稳稳刷出 3 个 5 小时的满额度循环,让你每天8~12点,午休后13~17点,18~下班前 都可以使用满血5H额度。 二、 实操指南:手把手教你设置 Claude Code 定时任务设置方法: 通过网页设置定时任务(scheduled),即便你不在线、没打开电脑,它也会在云端自动执行,即可触发刷新机制。 访问地址: https://claude.ai/code/scheduled 操作: 创建定时任务,自然语言对话就可以设置,比如每天北京时间8、13、18点让它说你好。 频率: 建议早8点、中13、晚18各一次。 消耗: 使用最便宜的 Haiku 模型,几乎不占日常额度。 效果: 这样你到公司、吃完午饭、晚上加班,Claude 的 5 小时窗口都刚好完成了“热身”重置。 参考资料: Run prompts on a schedule - Claude Code Docs ChatGPT 定时任务设置方法: 通过网页设置定时任务(task),即便你不在线、没打开电脑,它也会在云端自动执行,即可触发刷新机制。 访问地址: https://chatgpt.com/tasks 操作: 创建定时任务,自然语言对话就可以设置,比如每天北京时间8、13、18点让它说你好。 频率: 建议早8点、中13、晚18各一次。 消耗: 使用最便宜的 GPT5.2 模型,几乎不占日常额度。 效果: 这样你到公司、吃完午饭、晚上加班,codex 的 5 小时窗口都刚好完成了“热身”重置。 参考资料: https://help.openai.com/en/articles/10291617-tasks-in-chatgpt 三、 进阶技巧:利用定时任务解放双手 利用定时任务,不仅可以掌控5h额度刷新时机,更可以构建自动化工作流,即便你不在线、没打开电脑,它也会在云端自动执行, 而且可以设置提醒通知,到点它会主动通知你。 比如说,晨报之类的 主动追踪: 让它每天下午 5 点提醒你写周报,并列出你当天在对话中提到的重点。 数据监控: 比如定时抓取某个网页的信息并汇总。 5 个帖子 - 3 位参与者 阅读完整话题

linux.do · 2026-04-18 18:07:57+08:00 · tech

各位佬好,最近在重度使用 AI 辅助写代码,对 Claude 的需求比较大,但一直被渠道和网络稳定性折磨。想请教一下大家目前市面上各类接入方案的实际情况。 我自己了解过并且试过一些渠道,体验都一言难尽: 官方账号反代(C号/池子反代): 这个最大的痛点就是极容易封号。稳定性完全看脸,经常写代码写到一半号没了,心智负担太重。 谷歌 Antigravity (Antig) 反代: 延迟极高,经常卡得死死的。而且给的额度非常少,稍微跑点复杂的逻辑或者上下文一长就不够用了,完全没法满足高频使用的需求。 最近看到市面上还有很多人在说 AWS 渠道 ,我个人的盲区比较大,想重点请教一下懂行的老哥: AWS 渠道到底是什么? 是指通过 AWS Bedrock 申请调用的官方 API 吗?还是别的什么操作? 稳定性和风控: 这个渠道的封号风险大不大?延迟表现如何? 其他方案求荐: 除了上述这些,大家目前在日常高并发/大上下文的开发场景下,还有什么相对稳定靠谱的获取 Claude 额度的路子? 提前感谢各位大佬解惑! 1 个帖子 - 1 位参与者 阅读完整话题

linux.do · 2026-04-18 17:45:24+08:00 · tech

之前的账号3h就没了,这次准备再新开一个,再次尝试一下! 目前准备: 静态LSP(美国加州) 住宅IP代理的指纹 浏览器 Claude账号注册用的是Gmail(新号)已养号3天 支付使用Visa虚拟卡 使用准备: 养号阶段——Web端对话 测试阶段——开通后先使用2天Web 使用阶段——没问题后,迁移至ClaudeCode(Linux服务器部署),同时我会删除原有的.claude文件夹(之前的残留) 这个帖子用来记录使用日志记录,欢迎各位佬友讨论! 1 个帖子 - 1 位参与者 阅读完整话题