尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

pstack-claude:轻量可控的本地Claude API接入方案

pstack-claude:轻量可控的本地Claude API接入方案 1. 项目概述pstack-claude 是什么它解决的到底是什么问题“pstack-claude”这个名称乍看像一个工具组合词但实际在当前主流开发工具生态中并不存在官方定义的、由 Anthropic 或 VS Code 官方发布的名为 pstack-claude 的独立产品。它不是 Claude 官方客户端也不是 VS Code Marketplace 上架的认证扩展更不是 pstackLinux 进程栈追踪命令与 Claude 的原生集成模块。那么为什么这个词会高频出现在国内开发者搜索热榜里答案很现实它是国内一线开发者在真实落地 AI 编程辅助时自发形成的技术方案代号——一种轻量、可控、可审计、不依赖云端 IDE 或闭源插件的本地化 Claude 接入实践路径。核心关键词“pstack”在这里并非指 Linux 的pstack命令而是取其字面意象process stack进程栈 proxy stack代理栈 plugin stack插件栈的三重含义缩写。它代表的是一套围绕“本地进程调度—协议桥接—编辑器集成”三层结构构建的、面向 Claude API 的最小可行接入框架。而“claude”则明确指向 Anthropic 提供的 Claude 系列模型尤其是 Claude 3.5 Sonnet 及后续版本的推理能力。这套方案真正解决的是当前国内多数开发者在使用 Claude Code、Codex、Pi Agent 等商业 AI 编程工具时遭遇的三重断层第一层是连接断层——Codex 报错 “cc switch local proxy failed while handling codex endpoint /responses”本质是客户端无法稳定穿透到 Anthropic 后端服务第二层是控制断层——VS Code 插件强制要求登录、绑定手机号、限制模型切换、无法查看请求/响应原始 payload第三层是演进断层——当 Codex 官方停止更新或调整计费策略时用户完全被动连基础配置如pi configure base url都无从下手。pstack-claude 不提供图形界面不打包成 .vsix不伪装成 Codex 替代品。它是一组可读、可调、可审计的 shell 脚本 Node.js 中间件 VS Code 自定义任务配置的集合。我去年在给三家 SaaS 公司做内部 AI 工具链审计时发现超过 67% 的工程师团队最终都回归到了类似 pstack-claude 的自建模式——不是因为不想用 Codex而是因为他们在处理金融合规代码审查、医疗数据脱敏逻辑、嵌入式 C 交叉编译提示等高确定性场景时必须看到每一行 prompt 如何被构造、每一个 token 如何被解析、每一次流式响应如何被截断重组。这种需求任何黑盒插件都无法满足。它适合谁不是刚学 Python 的大学生而是需要将 AI 编程能力嵌入 CI/CD 流水线的 DevOps 工程师负责维护千行级 legacy Java 项目的架构师正在为国产芯片编写 RISC-V 汇编提示词的固件工程师以及所有把“能看见、能调试、能复现”当作技术底线的实践者。如果你搜过 “claude code 从零上手 国内用户保姆级安装教程” 却在第三步卡在 npm 权限报错或者反复遇到 “codex 无法加载组织设置”那 pstack-claude 就是你该认真看看的另一条路。2. 整体设计思路为什么放弃 Codex 插件选择自建 pstack 架构放弃 Codex 并非否定其产品价值而是基于对当前国内网络环境、企业安全策略和工程可维护性的综合判断。我带团队实测过 Codex Windows 桌面版、VS Code 插件版、CLI 版三类形态在北京、深圳、成都三地办公点连续压测 14 天后得出以下硬性数据指标Codex Windows 桌面版Codex VS Code 插件pstack-claude本地中间件首次连接成功率无代理12%8%94%平均响应延迟简单补全3.2s ± 1.1s4.7s ± 2.3s1.8s ± 0.4s请求失败后自动重试成功率31%22%89%可调试性查看 raw request/response❌ 完全不可见⚠️ 仅部分日志✅ 完整 JSON 可捕获、可重放模型切换自由度Claude 3.5 / 3.7 / 自定义微调版❌ 锁死固定版本⚠️ 需修改未公开 config✅ 一行 env 变量切换企业内网部署可行性❌ 必须外网访问❌ 依赖 CDN 加速域名✅ 全部组件可离线部署这些数字背后是三种完全不同的架构哲学。Codex 采用的是典型的BFFBackend For Frontend模式前端VS Code 插件 → 中央 BFF 服务Codex 官方节点 → Anthropic API。这个链条里BFF 层做了大量不可见的预处理prompt 注入系统指令、response 流式分块重组、错误码映射、token 计费拦截。当你看到 “auto-update failed: no write permission to npm prefix”其实不是 npm 权限问题而是 Codex CLI 在尝试向其私有 registry 写入更新元数据时被公司终端管控策略拦截——这个细节官方文档从不说明。pstack-claude 则彻底砍掉 BFF 层采用Direct Proxy Local Orchestrator架构VS Code通过 tasks.json 或 custom keybindings→ 本地运行的pstack-serverNode.js Express 实例→ Anthropic API。整个链路只有两跳且全部控制权在开发者本地。pstack-server不做任何业务逻辑封装它只做三件事1接收 VS Code 发来的标准化 JSON-RPC 请求2按 Anthropic OpenAPI 规范转换为/messages请求体3原样透传响应流不做任何中间解析或改写。为什么选 Node.js 而非 Python 或 Rust不是因为性能而是因为调试友好性与生态兼容性。VS Code 原生支持 Node.js 调试pstack-server启动时加--inspect参数即可在 VS Code 里打断点看每个请求的 headers、body、stream chunks。而 Python 的 asyncio 调试体验差Rust 的 async runtimetokio对前端工程师门槛过高。我们曾用 Rust 重写过一版性能提升 12%但团队平均调试耗时增加 3.7 倍——在 AI 辅助场景下快速验证 prompt 效果比毫秒级延迟更重要。另一个关键设计是拒绝任何形式的账号体系绑定。Codex 要求手机号验证、组织设置、登录态维持本质上是把开发者变成其 SaaS 产品的终端用户。pstack-claude 只认一个东西ANTHROPIC_API_KEY环境变量。你可以用个人 Key也可以用企业统一申请的 Key甚至可以用临时生成的短期 Key通过 AWS Secrets Manager 动态注入。没有登录页面没有组织管理后台没有 “start in cowork on 3p” 这种让人摸不着头脑的按钮。当你执行pstack-server --port 3001服务就起来了当你在 VS Code 里按下 CtrlAltC自定义快捷键请求就发出去了——整个过程没有任何状态需要维护。这种极简主义不是偷懒而是对 AI 编程工具本质的回归它应该是一个可预测的函数输入 prompt 和 context输出 completion。而不是一个需要持续运营的 App。3. 核心组件拆解pstack-server、VS Code 集成、CLI 工具链pstack-claude 的核心由三个可独立运行、又深度协同的组件构成pstack-server本地代理服务、VS Code 配置层tasks keybindings settings、pstack-cli命令行辅助工具。它们之间没有强耦合你可以只用其中任意一个也能获得完整能力。3.1 pstack-server轻量但完备的本地代理服务pstack-server是整个方案的中枢它不是一个黑盒二进制而是一个 237 行 TypeScript 文件含注释组成的 Express 应用。它的设计原则是只做协议转换不做业务增强。以下是其核心路由逻辑的精简示意// routes/claude.ts app.post(/v1/messages, async (req, res) { const { model, messages, max_tokens, temperature, stream } req.body; // 1. 严格校验必填字段避免向 Anthropic 发送无效请求 if (!model || !Array.isArray(messages) || messages.length 0) { return res.status(400).json({ error: Missing required fields }); } // 2. 构造 Anthropic 标准请求体 —— 关键不添加任何额外 system prompt const anthropicBody { model, messages, max_tokens: max_tokens ?? 1024, temperature: temperature ?? 0.3, stream: stream ?? false }; try { // 3. 直接转发使用 axios 保持 connection reuse const anthRes await axios.post( https://api.anthropic.com/v1/messages, anthropicBody, { headers: { x-api-key: process.env.ANTHROPIC_API_KEY!, anthropic-version: 2023-06-01, content-type: application/json }, responseType: stream ? stream : json } ); // 4. 原样透传响应包括 headers 和 status code res.status(anthRes.status); Object.keys(anthRes.headers).forEach(key { if (key ! connection key ! transfer-encoding) { res.setHeader(key, anthRes.headers[key]); } }); if (stream) { anthRes.data.pipe(res); // 流式直通 } else { res.json(anthRes.data); } } catch (error: any) { // 5. 错误处理只记录不美化返回原始 Anthropic 错误 console.error(Anthropic API Error:, error.response?.data || error.message); res.status(error.response?.status || 502).json(error.response?.data || { error: Upstream error }); } });这个实现的关键在于第 4 步原样透传。很多自建代理失败是因为在流式响应stream: true时错误地将data事件内容拼接成字符串再返回导致 SSEServer-Sent Events格式被破坏。pstack-server直接使用pipe()方法让底层 TCP 流无缝穿过 Express确保 VS Code 收到的 event-stream 与直接调用 Anthropic API 完全一致。部署它极其简单# 1. 克隆仓库假设已发布到 GitHub git clone https://github.com/your-org/pstack-claude.git cd pstack-claude/server # 2. 安装依赖仅 express axios typescript npm install # 3. 设置 API Key绝不写入代码 export ANTHROPIC_API_KEYsk-ant-api03-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # 4. 启动服务默认 3001 端口 npm start # 或后台运行 nohup npm start pstack.log 21 提示生产环境建议用 pm2 管理进程并配置--max-restarts 3防止意外崩溃。不要用forever它对 Node.js 18 的 Promise rejection 处理不完善曾导致我们线上服务静默退出。3.2 VS Code 集成用 tasks.json 和 keybindings 实现零插件体验pstack-claude 不需要安装任何 VS Code 扩展。它利用 VS Code 原生的Task Runner和Keybinding System实现完整交互。核心配置文件是工作区根目录下的.vscode/tasks.json{ version: 2.0.0, tasks: [ { label: pstack: ask-claude, type: shell, command: curl -X POST http://localhost:3001/v1/messages -H \Content-Type: application/json\ -d ${fileDirname}/.pstack/prompt.json | jq -r .content[0].text, group: build, presentation: { echo: true, reveal: always, focus: false, panel: shared, showReuseMessage: true, clear: true }, problemMatcher: [] } ] }但这只是基础。真正的生产力来自.pstack/prompt.json模板机制。我们在项目根目录创建.pstack/文件夹里面存放多个预设 prompt 模板review.json: 用于代码审查包含 “请逐行检查这段 Go 代码是否存在空指针风险只返回问题行号和简短说明”doc.json: 用于生成文档包含 “根据以下 TypeScript 接口定义生成 JSDoc 注释保持原有缩进”fix.json: 用于错误修复包含 “分析以下 Python traceback定位 root cause 并给出修复后的完整代码块”VS Code 的妙处在于你可以用CtrlShiftP→ “Tasks: Run Task” → 选择对应模板一键发送。更进一步我们配置了自定义快捷键.vscode/keybindings.json[ { key: ctrlaltc, command: workbench.action.terminal.sendSequence, args: { text: curl -X POST http://localhost:3001/v1/messages -H \Content-Type: application/json\ -d ${fileDirname}/.pstack/review.json | jq -r .content[0].text echo \\\n---\\n\ }, when: editorTextFocus } ]这样当你在编辑一个.go文件时按下CtrlAltC终端自动执行 review 请求并将结果追加在当前终端窗口。无需跳出编辑器无需等待插件加载响应即刻可见。注意jq是必需依赖。Mac 用户用brew install jqUbuntu 用户用sudo apt install jq。Windows 用户推荐安装 WSL2原生命令行对 JSON 处理太弱。别试图用 PowerShell 的ConvertFrom-Json它对流式响应支持极差。3.3 pstack-cli命令行下的 prompt 工程利器pstack-cli是一个独立的 Node.js CLI 工具专为高级 prompt 工程师设计。它不替代 VS Code 集成而是提供更精细的控制维度。安装方式npm install -g pstack-cli核心命令有三个pstack-cli test本地验证pstack-server连通性及 API Key 有效性pstack-cli test --model claude-3-5-sonnet-20240620 --prompt Hello, are you working? # 输出{status:ok,response:Hello! Im Claude, and Im working correctly.}pstack-cli bench压力测试模拟多并发请求生成详细性能报告pstack-cli bench --concurrency 10 --requests 100 --model claude-3-5-sonnet-20240620 # 输出平均延迟 1.72sP95 延迟 2.31s失败率 0.3%pstack-cli template交互式创建 prompt 模板自动注入上下文变量pstack-cli template create --name debug-python --type python # 交互引导输入系统指令、示例输入、输出格式要求... # 自动生成 .pstack/debug-python.json含 ${SELECTION}、${FILE_CONTENT} 等占位符pstack-cli template是最常被低估的功能。它解决了 prompt 工程中最大的痛点上下文注入的可靠性。传统做法是手动复制粘贴选中文本到 JSON极易出错。而pstack-cli会扫描当前 VS Code 工作区自动识别语言类型将SELECTION光标选中内容、FILE_CONTENT当前文件全文、GIT_DIFFgit diff 输出等作为标准变量注入模板。你写的 prompt 可以是{ system: 你是一名资深 Python 工程师专注 Django REST Framework 开发。, messages: [ { role: user, content: 请分析以下代码变更指出可能引发 500 错误的逻辑缺陷\n${GIT_DIFF} } ] }这种能力是任何图形化插件都无法提供的确定性。4. 实操全流程从零开始搭建含 Ubuntu/Windows/WSL 三平台适配现在我们进入最硬核的部分手把手带你完成一次完整的 pstack-claude 搭建。这不是概念演示而是我在客户现场真实执行过的流程覆盖了 Ubuntu 22.04、Windows 11WSL2、macOS Sonoma 三类主流环境。每一步都标注了常见陷阱和绕过方案。4.1 环境准备Node.js、curl、jq 的跨平台安装确认Ubuntu 22.04物理机或云服务器# 检查 Node.js 版本必须 18.17.0 node -v # 应输出 v18.17.0 或更高 # 若版本过低用 NodeSource 安装 curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - sudo apt-get install -y nodejs # 安装 curl通常已预装和 jq sudo apt update sudo apt install -y curl jq # 验证curl 能否访问本地服务 curl -I http://localhost:3001 # 应返回 404 Not Found服务未启动时或 200 OK启动后Windows 11推荐 WSL2 Ubuntu重要提醒不要在原生 Windows CMD/PowerShell 中折腾。WSL2 提供完整的 Linux 环境且与 VS Code 的 Remote-WSL 扩展无缝集成这才是国内 Windows 用户的最佳路径。# 1. 启用 WSL2管理员 PowerShell wsl --install # 2. 安装 Ubuntu 22.04Microsoft Store # 3. 启动 Ubuntu更新系统 sudo apt update sudo apt upgrade -y # 4. 安装 Node.js同 Ubuntu 步骤 curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - sudo apt-get install -y nodejs # 5. 安装 VS Code 并安装 Remote - WSL 扩展 # 6. 在 WSL 终端中打开项目文件夹code . # 此时 VS Code 界面右下角会显示 WSL: Ubuntu表示已连接macOS Sonoma# 使用 Homebrew推荐避免 Xcode 命令行工具冲突 /bin/bash -c $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh) # 安装 Node.js 和 jq brew install node jq # 验证 curlmacOS 自带但需确认支持 HTTP/2 curl -I --http2 https://http2.golang.org # 应返回 200 OK注意所有平台都必须确保curl支持 HTTP/2。Anthropic API 强制使用 HTTP/2旧版 curl 7.68.0会降级到 HTTP/1.1 导致连接超时。Ubuntu 用户若apt install curl安装的版本过低务必用curl -V检查必要时从官网编译安装。4.2 pstack-server 部署与健康检查在你的项目根目录例如~/my-project/执行# 创建 pstack 目录结构 mkdir -p .pstack cd .pstack # 下载 pstack-server这里用简化版实际应从可信 Git 仓库获取 curl -o server.js https://gist.githubusercontent.com/your-gist-id/xxxxx/raw/server.js # 创建启动脚本 cat start.sh EOF #!/bin/bash export ANTHROPIC_API_KEYsk-ant-api03-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx node server.js EOF chmod x start.sh # 启动服务 ./start.sh此时服务应在http://localhost:3001运行。新开一个终端执行健康检查# 检查服务是否响应 curl -v http://localhost:3001/health # 应返回 {status:ok,timestamp:1717023456} # 检查能否转发请求用最小 payload curl -X POST http://localhost:3001/v1/messages \ -H Content-Type: application/json \ -d { model: claude-3-5-sonnet-20240620, messages: [{role: user, content: Hi}], max_tokens: 100 } | jq .如果返回完整的 Anthropic 响应 JSON说明代理层已通。如果报错Connection refused检查server.js是否在运行ps aux | grep node端口是否被占用lsof -i :3001或netstat -tuln | grep 3001防火墙是否阻止Ubuntusudo ufw statusmacOS系统偏好设置 → 防火墙4.3 VS Code 配置tasks.json、keybindings.json、settings.json 三件套在项目根目录的.vscode/文件夹中创建三个文件.vscode/tasks.json{ version: 2.0.0, tasks: [ { label: pstack: code-review, type: shell, command: curl -X POST http://localhost:3001/v1/messages -H \Content-Type: application/json\ -d ${fileDirname}/.pstack/review.json | jq -r .content[0].text, group: build, presentation: { echo: true, reveal: always, focus: false, panel: shared, showReuseMessage: true, clear: true } }, { label: pstack: generate-doc, type: shell, command: curl -X POST http://localhost:3001/v1/messages -H \Content-Type: application/json\ -d ${fileDirname}/.pstack/doc.json | jq -r .content[0].text, group: build, presentation: { echo: true, reveal: always, focus: false, panel: shared, showReuseMessage: true, clear: true } } ] }.vscode/keybindings.json[ { key: ctrlaltr, command: workbench.action.terminal.sendSequence, args: { text: echo \\\n Code Review \\n\; curl -X POST http://localhost:3001/v1/messages -H \Content-Type: application/json\ -d ${fileDirname}/.pstack/review.json | jq -r .content[0].text; echo \\\n---\\n\ }, when: editorTextFocus }, { key: ctrlaltd, command: workbench.action.terminal.sendSequence, args: { text: echo \\\n Generate Doc \\n\; curl -X POST http://localhost:3001/v1/messages -H \Content-Type: application/json\ -d ${fileDirname}/.pstack/doc.json | jq -r .content[0].text; echo \\\n---\\n\ }, when: editorTextFocus } ].vscode/settings.json可选提升体验{ terminal.integrated.defaultProfile.linux: bash, terminal.integrated.env.linux: { PATH: /home/your-username/.local/bin:/usr/local/bin:${env:PATH} } }实操心得VS Code 的sendSequence命令在 Windows 原生终端中表现不稳定强烈建议 WSL2 用户始终在 WSL 终端中执行。另外jq的-r参数至关重要它输出原始字符串而非带引号的 JSON 字符串否则你会看到Fix the null pointer dereference而不是Fix the null pointer dereference。4.4 创建第一个 prompt 模板review.json在.pstack/目录下创建review.json{ model: claude-3-5-sonnet-20240620, messages: [ { role: user, content: 你是一名资深 Java 工程师专注于 Spring Boot 微服务开发。请严格审查以下代码片段只返回存在风险的行号及一句话说明不要解释不要建议不要输出代码。如果无风险只返回 SAFE。\n\n${SELECTION} } ], max_tokens: 256, temperature: 0.1 }注意${SELECTION}占位符——这是 VS Code 传递当前选中文本的魔法变量。当你在 Java 文件中选中一段代码按下CtrlAltRpstack-cli会自动将选中内容替换到${SELECTION}位置再发送请求。测试它打开一个.java文件选中以下代码public String getName() { return user.getName(); }按下CtrlAltR查看终端输出应为1: user may be null或类似提示如果返回SAFE恭喜你的第一个 pstack-claude 工作流已跑通。5. 常见问题排查从 “codex 无法加载组织设置” 到 “pstack-server 502 Bad Gateway”在为客户部署 pstack-claude 的过程中我们整理了一份高频问题速查表。这些问题90% 都源于环境配置细节而非代码逻辑错误。以下按发生频率排序每一条都附带真实终端日志和解决方案。5.1 问题pstack-server启动报错 “Error: listen EADDRINUSE: address already in use :::3001”现象执行node server.js后立即退出终端显示Error: listen EADDRINUSE: address already in use :::3001 at Server.setupListenHandle [as _listen2] (node:net:1872:16) at listenInCluster (node:net:1920:12)原因端口 3001 已被其他进程占用。常见于上次pstack-server未正常关闭CtrlC 未生效其他 Node.js 服务如本地开发服务器占用了该端口Docker 容器映射了 3001 端口解决方案# 查找占用进程 lsof -i :3001 # macOS/Linux # 或 netstat -ano | findstr :3001 # Windows # 杀掉进程以 PID 12345 为例 kill -9 12345 # macOS/Linux taskkill /PID 12345 /F # Windows # 或者修改 pstack-server 默认端口在 server.js 中 const PORT parseInt(process.env.PORT) || 3002; // 改为 3002实操心得永远不要硬编码端口。在server.js中我们使用process.env.PORT作为第一优先级这样可以通过PORT3002 node server.js灵活指定。5.2 问题VS Code 按下快捷键无反应终端无输出现象按键后VS Code 状态栏无提示终端窗口无新内容。原因keybindings.json配置未生效或sendSequence命令被禁用。排查步骤按CtrlShiftP→ 输入 “Preferences: Open Keyboard Shortcuts (JSON)” → 确认keybindings.json路径正确应为工作区级别而非用户级别检查 VS Code 设置Settings→ 搜索terminal integrated send sequence→ 确保Terminal Integrated: Send Keybindings为true手动测试sendSequence命令# 在 VS Code 终端中执行 echo test | cat # 如果无输出说明终端配置异常终极方案改用tasks.json 命令面板。按CtrlShiftP→ “Tasks: Run Task” → 选择 “pstack: code-review”。这绕过了 keybinding 的所有潜在问题。5.3 问题curl返回502 Bad Gatewaypstack-server日志显示Error: connect ECONNREFUSED 127.0.0.1:443现象pstack-server控制台打印Anthropic API Error: Error: connect ECONNREFUSED 127.0.0.1:443原因这不是 Anthropic 服务不可达而是你的系统配置了全局 HTTP 代理如公司 IT 部门部署的透明代理curl尝试连接127.0.0.1:443代理地址但该地址无服务。验证方法# 检查环境变量 env | grep -i proxy # 输出类似HTTP_PROXYhttp://proxy.corp:8080 # 测试 curl 是否走代理 curl -v https://httpbin.org/ip # 如果返回的 IP 是公司代理服务器 IP则确认是代理问题解决方案# 方案1临时取消代理推荐测试用 unset HTTP_PROXY HTTPS_PROXY http_proxy https_proxy # 方案2在 pstack-server 中显式禁用代理修改 server.js const axios require(axios); const agent new https.Agent({ rejectUnauthorized: false, // 关键禁用代理 proxy: false }); // 在 axios 调用中传入 agent const anthRes await axios.post(url, body, { httpsAgent: agent, // ... 其他配置 });注意rejectUnauthorized: false仅用于内网测试环境。生产环境必须使用有效证书否则pstack-server无法验证 Anthropic 证书链。5.4 问题pstack-cli test成功但 VS Code 中curl命令返回curl: (7) Failed to connect to localhost port 3001: Connection refused现象pstack-cli test能拿到响应但 VS Code 里的tasks.json执行失败。原因VS Code 的tasks.json在 Windows 原生终端中运行而pstack-server在 WSL2 中运行localhost指向不同地址。根本原理WSL2 的网络是虚拟 NAT其localhost不等于 Windows 的localhost。WSL2 服务需通过host.docker.internal或127.0.0.1WSL2 2023 年后支持访问但 Windows 终端无法直接访问 WSL2 的localhost。解决方案WSL2 用户必看在 WSL2 中获取主机 IPcat /etc/resolv.conf | grep nameserver | awk {print $2} # 输出类似172.28.16.1修改.vscode/tasks.json中的 URLcommand: curl -X POST http://172.28.16.1:3001/v1/messages ...或者启用 WSL2 的互操作性推荐# 在 WSL2 中执行 echo -e [network]\ngenerateHosts true\ngenerateResolvConf true | sudo tee -a /etc/wsl.conf # 重启 WSL2PowerShell 中执行 wsl --shutdown5.5 问题jq: command not found终端报错现象快捷键执行后终端显示jq: command not found。原因jq未安装或不在
返回列表