# coder **Repository Path**: scauwjh/coder ## Basic Information - **Project Name**: coder - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-07 - **Last Updated**: 2026-04-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # coder `coder` 是一个基于 Bun + TypeScript + React Ink 的终端 AI 编码助手项目。 当前仓库的实际定位不是“只读研究镜像”,而是一个已经完成本地化改造、可直接构建、打包、运行的 `coder` CLI 仓库。项目命令名、发布目录名和归档产物名统一保持为 `coder`。 ## 当前状态 - CLI 命令名:`coder` - 配置目录:`~/.coder/` - 主配置文件:`~/.coder/settings.json` - 构建运行时:Bun - 终端 UI:React + Ink 当前这套 `coder` 以本地兼容 provider 配置为主,不再把官方登录、OAuth、托管连接器、Remote Control 当作默认可用路径。 ## provider 机制 当前内置示例 provider: - `tabcode` - `volc` - `vllm` 其中: - `volcengine` 作为旧名称仍兼容,但对外统一使用 `volc` - 支持通过 `settings.json` 中的 `modelProvider` / `modelProviders` 配置 provider - 支持在 `modelProviders` 中自定义任意 provider 名称(非空字符串) - 支持启动参数 `--provider ` 快速切换到任意已配置 provider ## 快速开始 ### 1. 一键部署到 `~/.local/bin` ```bash ./scripts/install-local.sh ``` 也可以通过 Bun 脚本入口执行: ```bash bun run install:local ``` 这个脚本会串行完成: - 若系统缺少 `bun`,自动安装到 `~/.bun/bin/bun`(依赖 `bash` 与 `curl`/`wget`) - `bun install` - `bun run package:ci` - 链接 `~/.local/bin/coder` - 检查 `~/.coder/settings.json` - 输出验证结果 ### 2. 安装依赖 ```bash bun install ``` ### 3. 构建 ```bash bun run build ``` ### 4. 本机打包 ```bash bun run package bun run archive ``` ### 5. 直接运行开发版 ```bash bun run src/entrypoints/cli.tsx ``` 或运行已构建产物: ```bash bun dist/cli.js --help ``` ## 常用命令 ```bash bun run build bun run package bun run archive bun run package:ci bun run typecheck ``` 命令说明: - `build`:构建 `dist/cli.js` - `package`:生成当前平台发布目录 - `archive`:将当前平台发布目录打包为归档文件 - `package:ci`:串行执行 `build + package + archive` - `typecheck`:执行 TypeScript 类型检查 ## 发布产物 `bun run package` 会生成当前平台的发布目录,例如: - `release/coder-darwin-arm64/` - `release/coder-linux-x64/` - `release/coder-win32-x64/` 目录内通常包含: - `bin/coder` - `bin/coder.cmd` - `dist/cli.js` - `vendor/ripgrep` - `runtime/` - `node_modules/sharp` 等运行时资源 `bun run archive` 会继续生成: - `release/coder--darwin-arm64.tar.gz` - `release/coder--linux-x64.tar.gz` - `release/coder--win32-x64.zip` - `release/.sha256` - `release/checksums.txt` ## 配置说明 主配置文件位置: ```bash ~/.coder/settings.json ``` 一个最小可用示例: ```json { "modelProvider": "tabcode", "modelProviders": { "tabcode": { "baseUrl": "https://your-tabcode-gateway.example.com/openai", "wireApi": "responses", "apiKey": "your-api-key", "model": "gpt-5.4", "model_context_window": 400000, "model_auto_compact_token_limit": 350000 }, "volc": { "baseUrl": "https://your-volc-endpoint.example.com", "wireApi": "chat.completions", "apiKey": "your-api-key", "model": "doubao-seed-2.0-pro" }, "vllm": { "baseUrl": "http://127.0.0.1:8000", "wireApi": "chat.completions", "apiKey": "EMPTY", "model": "Qwen/Qwen3.5-122B-A10B-GPTQ-Int4" } } } ``` 字段说明: - `modelProvider`:当前默认 provider - `modelProviders..baseUrl`:该 provider 的 API 地址 - `wireApi`:协议类型,当前支持: - `anthropic` - `responses` - `chat.completions` - `apiKey` / `authToken`:凭据 - `customHeaders`:附加请求头 - `model`:默认模型名 - `model_context_window` / `modelContextWindow`:可选,覆盖该 provider 的上下文窗口大小 - `model_auto_compact_token_limit` / `modelAutoCompactTokenLimit`:可选,覆盖该 provider 的自动压缩触发阈值 vLLM 接口建议: - 对当前 `Qwen3.5 + vLLM` 自动工具调用场景,优先使用 `chat.completions`。 - 2026-04-22 本地实测中,`/v1/responses` 虽然已暴露,但在 `tool_choice=auto` 下会出现工具参数类型被字符串化,或直接连接重置;同一实例的 `/v1/chat/completions` 返回的 `tool_calls` 参数类型正常。 - `responses` 更适合严格受控、单轮验证式调用;若要尝试,建议配合严格 schema 约束单独验证。 ## provider 切换 ### 用配置切换 ```json { "modelProvider": "my-gateway" } ``` ### 用命令行临时切换 ```bash coder --provider tabcode coder --provider volc coder --provider vllm coder --provider my-gateway ``` 也可以在非交互模式下直接测试: ```bash bun dist/cli.js -p --bare --dangerously-skip-permissions --provider tabcode --output-format json "只回复OK" bun dist/cli.js -p --bare --dangerously-skip-permissions --provider volc --output-format json "只回复OK" bun dist/cli.js -p --bare --dangerously-skip-permissions --provider vllm --output-format json "只回复OK" bun dist/cli.js -p --bare --dangerously-skip-permissions --provider my-gateway --output-format json "只回复OK" ``` 也可以用内置校验脚本验证当前 provider 配置是否可被解析: ```bash bun run verify:provider bun run verify:provider -- --provider my-gateway ``` ## 安装到系统命令 Unix-like 系统可将发布包中的启动器链接到 PATH: ```bash ln -sfn /absolute/path/to/release/coder-darwin-arm64/bin/coder /usr/local/bin/coder hash -r coder --version ``` 如果你不想写入 `/usr/local/bin`,也可以把启动器放到用户级目录,例如: ```bash mkdir -p ~/.local/bin ln -sfn /absolute/path/to/release/coder-darwin-arm64/bin/coder ~/.local/bin/coder ``` ## 当前能力边界 当前仓库已经做过一轮较彻底的“去官方默认链路”收口,结论如下: - 默认模型访问以本地 `settings.json` 配置的兼容 provider 为主 - 官方登录、OAuth、Remote Control、托管连接器等高可见入口已被禁用或收口 - 启动阶段不再通过高可见入口引导官方 marketplace 自动安装 - 项目仍保留部分历史实现代码,但默认用户路径已经改为本地 provider 模式 这意味着: - 你应该优先检查 `~/.coder/settings.json` - 遇到模型调用失败时,优先排查 provider 地址、凭据、协议类型和返回体兼容性 - 不应再假设程序会自动回落到官方 Anthropic 登录链路 ## CI 与发布 当前仓库默认提供本地构建与本地打包能力。常规发布思路是: 1. 在目标平台执行 `bun install` 2. 执行 `bun run package:ci` 3. 校验 `release/` 下发布目录、归档文件和 checksum 4. 按你的远端仓库策略补充 CI 或手动上传产物 当前项目更推荐“目标平台构建目标平台包”,而不是在单机上伪造跨平台原生资源。 ## 文档索引 更多细节可查看仓库内文档: - [安装与使用手册](docs/2026-04-06-coder安装与使用手册.md) - [发布操作手册](docs/2026-04-06-coder发布操作手册.md) - [安装与使用手册](docs/2026-04-06-coder安装与使用手册.md) - [发布操作手册](docs/2026-04-06-coder发布操作手册.md) ## 说明 本 README 以当前仓库实际可运行状态为准。如果后续 provider、打包链路或默认安全边界继续调整,应同步更新本文件,而不是继续沿用旧的 `claude-code` 镜像说明。