[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-92390":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":15,"stars30d":16,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":17,"rankGlobal":10,"rankLanguage":10,"license":10,"archived":18,"fork":18,"defaultBranch":19,"hasWiki":18,"hasPages":20,"topics":21,"createdAt":10,"pushedAt":10,"updatedAt":30,"readmeContent":31,"aiSummary":32,"trendingCount":15,"starSnapshotCount":15,"syncStatus":33,"lastSyncTime":34,"discoverSource":35},92390,"CSNative","eust-w\u002FCSNative","eust-w","Claude Science 支持 多个模多模型供应商路由 自定义模型","https:\u002F\u002Feust-w.github.io\u002FCSNative\u002F",null,"Go",105,1,54,0,51,43,false,"main",true,[22,23,24,25,26,27,28,29],"ai-tools","claude-science","go","local-first","macos","provider-router","runtime-control","wails","2026-07-22 04:02:06","# CS Native\n\n\u003Cp align=\"center\">\n  \u003Cstrong>README\u003C\u002Fstrong>\u003Cbr \u002F>\n  \u003Ca href=\"README.md\">🇨🇳 中文\u003C\u002Fa> ·\n  \u003Ca href=\"docs\u002Freadme\u002FREADME.en.md\">🇺🇸 English\u003C\u002Fa> ·\n  \u003Ca href=\"docs\u002Freadme\u002FREADME.ko.md\">🇰🇷 한국어\u003C\u002Fa> ·\n  \u003Ca href=\"docs\u002Freadme\u002FREADME.ar.md\">🇸🇦 العربية\u003C\u002Fa> ·\n  \u003Ca href=\"docs\u002Freadme\u002FREADME.de.md\">🇩🇪 Deutsch\u003C\u002Fa> ·\n  \u003Ca href=\"docs\u002Freadme\u002FREADME.fr.md\">🇫🇷 Français\u003C\u002Fa> ·\n  \u003Ca href=\"docs\u002Freadme\u002FREADME.la.md\">🇻🇦 Latina\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Feust-w\u002FCSNative\u002Factions\u002Fworkflows\u002Frelease.yml\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Feust-w\u002FCSNative\u002Factions\u002Fworkflows\u002Frelease.yml\u002Fbadge.svg\" alt=\"Release workflow\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Feust-w\u002FCSNative\u002Factions\u002Fworkflows\u002Fpages.yml\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Feust-w\u002FCSNative\u002Factions\u002Fworkflows\u002Fpages.yml\u002Fbadge.svg\" alt=\"Pages workflow\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Feust-w\u002FCSNative\u002Freleases\u002Flatest\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Feust-w\u002FCSNative?label=release\" alt=\"Latest release\" \u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"build\u002Fappicon.png\" alt=\"CS Native icon\" width=\"112\" \u002F>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cstrong>CS Native 是面向 Claude Science 的本地 provider \u002F runtime control plane。\u003C\u002Fstrong>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  管理模型供应商、凭证、模型映射、代理、沙箱、fresh nonce 公网入口、日志和诊断，同时保留官方 Claude Science 独立入口。\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Feust-w.github.io\u002FCSNative\u002F\">产品主页\u003C\u002Fa> ·\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Feust-w\u002FCSNative\u002Freleases\u002Flatest\">下载最新版\u003C\u002Fa> ·\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Feust-w\u002FCSNative\u002Fpkgs\u002Fcontainer\u002Fcsnative-app\">GHCR Package\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"docs\u002Fassets\u002Freadme\u002Fcsn-flow.gif\" alt=\"CS Native 页面流程动图\" width=\"860\" \u002F>\n\u003C\u002Fp>\n\n## 产品定位\n\nCS Native 不是单一的 DeepSeek \u002F Qwen 切换器，也不是直接改写 Claude Science 真实登录状态的工具。它做的是本地运行控制：\n\n- 第三方模型模式：在隔离目录里运行 Claude Science，把模型请求转发到你配置的 provider。\n- 官方 Claude 模式：不注入环境变量，不托管官方登录，只打开真实 Claude Science。\n- 本地控制面板：把 provider、API key、base URL、模型映射、端口、公网入口、日志和自检放在一个桌面应用里管理。\n\n## 核心能力\n\n| 能力 | 说明 |\n| --- | --- |\n| Provider Profile | 每个 provider 都有独立的 `id`、显示名称、adapter、base URL、API key、默认模型、模型列表和 Science 模型映射。 |\n| 凭证与模型集中管理 | API key、base URL、默认模型、Opus \u002F Sonnet \u002F Haiku 映射都在 **模型与凭证** 页面配置，不再拆散到多个页面。 |\n| 多 provider 预设 | 内置 DeepSeek、阿里云 DashScope \u002F Qwen、OpenAI-compatible、Anthropic-compatible、OpenRouter、Moonshot \u002F Kimi、SiliconFlow、Ollama。 |\n| 自定义兼容端点 | 可以新增自己的 OpenAI-compatible 或 Anthropic-compatible provider，适合私有网关、本地模型服务或聚合平台。 |\n| Adapter 路由 | 内置 `anthropic_messages` 和 `openai_chat_completions` 两类 adapter，负责请求构造、响应转换、流式输出和错误归一。 |\n| 启动编排 | 一键启动本地代理、虚拟 OAuth、Claude Science 沙箱和 fresh nonce 入口，并在启动页显示端口、上游和运行状态。 |\n| 沙箱运行 | 第三方模型模式只写入 `~\u002F.csnative`，使用独立 HOME，不触碰真实 Claude Science 凭证目录。 |\n| fresh nonce 公网入口 | 根路径生成 fresh nonce，其他路径转发到沙箱 Science，适合接入自己的公网域名或反向代理。 |\n| 日志与自检 | 日志页读取真实本地日志；关于页提供 Doctor 自检、反馈、更新和版本信息。 |\n| 多语言界面 | 桌面应用和 GitHub Pages 支持中文、英文、韩语、阿拉伯语、德语、法语、拉丁文，阿拉伯语使用 RTL 排版。 |\n| 自动发布 | 推送 `v*` tag 后自动测试、`go vet`、Wails 构建、上传 Release 资产，并发布 GHCR package。 |\n\n## 运行流程\n\n```mermaid\nflowchart LR\n  A[\"模型与凭证\u003Cbr\u002F>Provider profile\"] --> B[\"启动页\u003Cbr\u002F>选择可用 provider\"]\n  B --> C[\"本地代理\u003Cbr\u002F>127.0.0.1:18991\"]\n  C --> D[\"虚拟 OAuth\u003Cbr\u002F>写入隔离目录\"]\n  D --> E[\"沙箱 Claude Science\u003Cbr\u002F>127.0.0.1:8990\"]\n  E --> F[\"fresh nonce 入口\u003Cbr\u002F>127.0.0.1:8992\"]\n  B --> G[\"官方 Claude 模式\u003Cbr\u002F>打开真实 Claude Science\"]\n```\n\n第三方模型模式的主链路是：\n\n```text\nProvider -> 本地代理 -> 虚拟 OAuth -> 沙箱 Science -> fresh URL\n```\n\n## 界面与功能\n\n### 启动\n\n启动页只展示已经启用并保存 key 的 provider。选择 provider 后，可以一键启动或全部停止，并实时查看代理端口、沙箱端口、当前上游和公网入口状态。\n\n![启动页](docs\u002Fassets\u002Freadme\u002Fhero-start.png)\n\n主要功能：\n\n- 在 **第三方模型** 与 **官方 Claude** 两种模式之间切换。\n- 从已配置 provider 中选择当前启动上游。\n- 显示 provider 验证状态、adapter、默认模型和 base URL 摘要。\n- 一键启动本地代理、虚拟 OAuth、沙箱 Science 和 fresh nonce 入口。\n- 官方 Claude 模式只打开真实 Claude Science，不改写第三方配置。\n\n### 模型与凭证\n\n模型与凭证页是 provider 控制中心。左侧是 provider 列表，右侧是当前 provider 的完整配置表单。\n\n![模型与凭证](docs\u002Fassets\u002Freadme\u002Fprovider-management.png)\n\n主要功能：\n\n- 新增、复制、删除 provider。\n- 编辑 provider ID、显示名称、adapter、base URL、API key 和默认模型。\n- 管理 Opus、Sonnet、Haiku 三类 Claude Science 模型族到上游模型的映射。\n- 保存、验证 provider，并设置启动默认 provider。\n- 区分 **缺 key**、**未验证**、**已验证** 等状态，启动页只使用可启动 provider。\n- 内置 provider 可改配置；自定义 provider 可接任何兼容端点。\n\n### 网络与公网入口\n\n网络页只负责运行网络设置，不混入 provider 或 key。\n\n![网络页](docs\u002Fassets\u002Freadme\u002Fnetwork-public-entry.png)\n\n主要功能：\n\n- 配置本地代理端口、沙箱端口、fresh nonce public entry 端口。\n- 设置公网域名，用于生成可打开的 fresh URL。\n- 明确公网路由设计：`\u002F` 走 fresh nonce helper，其他路径转发沙箱 Science。\n- 提供入口预览、复制和打开动作。\n\n### 日志\n\n日志页读取 `~\u002F.csnative\u002Flogs\u002Fcsnative.log`，不是静态占位文本。\n\n![日志页](docs\u002Fassets\u002Freadme\u002Fruntime-logs.png)\n\n主要功能：\n\n- 刷新运行日志。\n- 打开日志目录。\n- 清空本地日志。\n- 查看启动、停止、provider 验证、网络保存、自检等动作记录。\n\n### 关于与诊断\n\n关于页放产品信息、Doctor 自检、反馈、更新和版本信息。日志和关于分开，避免把工具入口和运行日志混在一起。\n\n![关于页](docs\u002Fassets\u002Freadme\u002Fabout-diagnostics.png)\n\n主要功能：\n\n- 查看产品、版本、品牌信息。\n- 打开当前浏览器面板。\n- 运行 Doctor 检查配置和环境。\n- 打开反馈和最新 Release。\n\n## 基本用法\n\n1. 打开 **模型与凭证**。\n2. 选择一个内置 provider，或点击 **新增** 创建自定义 provider。\n3. 填写 `base URL`、`API key`、`adapter`、默认模型和 Science 模型映射。\n4. 点击 **保存**，再点击 **验证**。\n5. 回到 **启动**，选择已启用且有 key 的 provider。\n6. 点击 **一键开始**。\n7. 使用启动页显示的 fresh nonce URL 打开沙箱 Science。\n8. 如需使用真实 Claude Science，切换到 **官方 Claude** 模式。\n\n## 下载与发布\n\n产品主页：[https:\u002F\u002Feust-w.github.io\u002FCSNative\u002F](https:\u002F\u002Feust-w.github.io\u002FCSNative\u002F)\n\n最新版本在 [GitHub Releases](https:\u002F\u002Fgithub.com\u002Feust-w\u002FCSNative\u002Freleases\u002Flatest) 下载：\n\n| 系统 \u002F 架构 | 下载资产 | 内容 |\n| --- | --- | --- |\n| macOS Apple Silicon | `CSNative-v*-darwin-arm64.zip` | 压缩后的 macOS `.app` |\n| macOS Intel | `CSNative-v*-darwin-amd64.zip` | 压缩后的 macOS `.app` |\n| Windows x64 | `CSNative-v*-windows-amd64.zip` | Windows 可执行文件包 |\n| Linux x64 | `CSNative-v*-linux-amd64.tar.gz` | Linux 可执行文件包 |\n| 全平台 | `checksums.txt` | SHA-256 校验文件 |\n\nRelease 自动流程：\n\n```text\ntag v* -> go test -> go vet -> Wails build -> GitHub Release assets -> GHCR package\n```\n\n## 内置 provider\n\n| Provider | Adapter | 默认用途 |\n| --- | --- | --- |\n| DeepSeek | `anthropic_messages` | Anthropic-compatible 上游 |\n| 阿里云 DashScope \u002F Qwen | `openai_chat_completions` | DashScope OpenAI-compatible chat completions |\n| OpenAI-compatible | `openai_chat_completions` | 通用 OpenAI 兼容网关 |\n| Anthropic-compatible | `anthropic_messages` | 通用 Anthropic Messages 兼容网关 |\n| OpenRouter | `openai_chat_completions` | 聚合模型入口 |\n| Moonshot \u002F Kimi | `openai_chat_completions` | Kimi \u002F Moonshot 兼容入口 |\n| SiliconFlow | `openai_chat_completions` | SiliconFlow 兼容入口 |\n| Ollama | `openai_chat_completions` | 本地模型服务，默认 `127.0.0.1:11434` |\n\n所有预设都是可编辑模板。模型列表不会自动同步供应商市场，实际可用模型以 provider 控制台为准。\n\n## 配置与安全边界\n\n| 项目 | 路径 \u002F 行为 |\n| --- | --- |\n| 配置目录 | `~\u002F.csnative` |\n| 配置文件 | `~\u002F.csnative\u002Fconfig.json` |\n| Provider key | 存在本地配置文件，权限 `0600` |\n| 沙箱 HOME | `~\u002F.csnative\u002Fsandbox\u002Fhome` |\n| 本地日志 | `~\u002F.csnative\u002Flogs\u002Fcsnative.log` |\n| 真实 Claude Science 凭证目录 | 不写入 |\n| 真实 OAuth token | 不复制到沙箱 |\n| 官方 Claude 模式 | 不注入第三方 `ANTHROPIC_*` 环境变量 |\n\n默认端口：\n\n| 服务 | 地址 |\n| --- | --- |\n| 本地代理 | `127.0.0.1:18991` |\n| Science 沙箱 | `127.0.0.1:8990` |\n| fresh nonce 公网入口 | `127.0.0.1:8992` |\n\n公网域名建议：\n\n| 外部路径 | 本地目标 | 用途 |\n| --- | --- | --- |\n| `\u002F` | `127.0.0.1:8992` | 生成 fresh nonce |\n| `\u002F*` | `127.0.0.1:8990` | 转发到 Science 沙箱 |\n\n## 多语言\n\n| 语言 | README | 应用 \u002F 宣传页语言代码 |\n| --- | --- | --- |\n| 🇨🇳 中文 | [README.md](README.md) | `zh-CN` |\n| 🇺🇸 English | [README.en.md](docs\u002Freadme\u002FREADME.en.md) | `en` |\n| 🇰🇷 한국어 | [README.ko.md](docs\u002Freadme\u002FREADME.ko.md) | `ko` |\n| 🇸🇦 العربية | [README.ar.md](docs\u002Freadme\u002FREADME.ar.md) | `ar` |\n| 🇩🇪 Deutsch | [README.de.md](docs\u002Freadme\u002FREADME.de.md) | `de` |\n| 🇫🇷 Français | [README.fr.md](docs\u002Freadme\u002FREADME.fr.md) | `fr` |\n| 🇻🇦 Latina | [README.la.md](docs\u002Freadme\u002FREADME.la.md) | `la` |\n\n桌面应用的语言入口在侧栏底部，GitHub Pages 宣传页的语言入口在右上角。语言选择会保存在本地，阿拉伯语会切换为 RTL 排版。\n\n## 从源码运行\n\n### 前提\n\n- macOS\n- 已安装 Claude Science\n- 已安装 Go\n- 已安装 Wails CLI\n- 至少一个第三方 provider API key\n\n### 构建与测试\n\n```bash\ngo test .\u002F...\ngo vet .\u002F...\ngo build .\u002Fcmd\u002Fcsnative\nwails build\n```\n\n构建完成后，应用包位于：\n\n```text\nbuild\u002Fbin\u002FCSNative.app\n```\n\n命令行入口：\n\n```bash\ngo run .\u002Fcmd\u002Fcsnative\n```\n\n## 目录结构\n\n```text\ncmd\u002Fcsnative\u002F                 命令行入口\ninternal\u002Fapp\u002F                 Wails app API、配置、启动、日志和自检\ninternal\u002Fconfig\u002F              provider profile 与本地配置读写\ninternal\u002Fproxy\u002F               Anthropic\u002FOpenAI adapter 与代理逻辑\ninternal\u002Foauth\u002F               虚拟 OAuth 写入与护栏\ninternal\u002Fscience\u002F             Claude Science 沙箱进程和 public entry\ninternal\u002Fdesktop\u002Ffrontend\u002F    设置面板静态前端\ndocs\u002F                         GitHub Pages 与 README 资产\ndocs\u002Freadme\u002F                  多语言 README\ndocs\u002Fassets\u002Freadme\u002F           README 截图和动图\ndocs\u002Fbrand.md                 品牌说明\nbuild\u002Fappicon.png             生产图标源文件\n```\n\n## 开发检查\n\n常用验证命令：\n\n```bash\nnode --check internal\u002Fdesktop\u002Ffrontend\u002Fdist\u002Fmain.js\ngo test .\u002F...\ngo vet .\u002F...\ngo build .\u002Fcmd\u002Fcsnative\nwails build -clean\n```\n\n如果改了页面交互，建议同时用浏览器打开静态前端检查：\n\n```bash\ncd internal\u002Fdesktop\u002Ffrontend\u002Fdist\npython3 -m http.server 4179 --bind 127.0.0.1\n```\n\n然后访问：\n\n```text\nhttp:\u002F\u002F127.0.0.1:4179\u002F\n```\n\n## 品牌\n\nCS Native 使用 `CSN` 作为应用识别标记，并保留 `eust-w` 品牌方向。产品定位见 [docs\u002Fbrand.md](docs\u002Fbrand.md)。\n\n![移动端启动页](docs\u002Fassets\u002Freadme\u002Fmobile-start.png)\n\n## Star History\n\n\u003Ca href=\"https:\u002F\u002Fwww.star-history.com\u002F?repos=eust-w%2FCSNative&type=date&legend=top-left\">\n \u003Cpicture>\n   \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fchart?repos=eust-w\u002FCSNative&type=date&theme=dark&legend=top-left\" \u002F>\n   \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fchart?repos=eust-w\u002FCSNative&type=date&legend=top-left\" \u002F>\n   \u003Cimg alt=\"Star History Chart\" src=\"https:\u002F\u002Fapi.star-history.com\u002Fchart?repos=eust-w\u002FCSNative&type=date&legend=top-left\" \u002F>\n \u003C\u002Fpicture>\n\u003C\u002Fa>\n","CS Native 是一个面向 Claude Science 的本地模型路由与运行控制平台，用于在桌面端统一管理多个 AI 模型供应商（如 Anthropic、OpenAI 兼容、Qwen、DeepSeek 等）的凭证、API 端点、模型映射及沙箱环境。它通过内置适配器（anthropic_messages \u002F openai_chat_completions）实现请求\u002F响应协议转换，支持多 provider 预设、自定义兼容端点、fresh nonce 公网入口和隔离沙箱运行，同时保留官方 Claude Science 的独立登录与使用路径。适用于需要在不干扰原生体验前提下灵活切换本地或第三方大模型服务的开发者、研究人员及企业内测场景。",2,"2026-07-08 04:30:15","CREATED_QUERY"]