Orchidea Code
AI 编程平台(CLI / Web / ACP)
Orchidea Code 是对话式 AI 编码 Agent 平台,用自然语言驱动「生成代码、修 Bug、代码审查、补测试」的编码闭环。
2026-11 能力更新(v0.29.0)
- CLI relay 命令:把既有 upstream proxy(
/relay/*透传、host 白名单、可选 Bearer token)正式接出入口 - 显式失败:目标取位置参数或
ORCHIDEA_RELAY_TARGET,缺目标直接报错,不静默起空转服务 - 配套:relay 单测与 Memdir Hub 客户端补齐
Quick Start
Ready to try Orchidea Code? Getting started is simple:
npm install -g @orchidea/code
orchidea
We respect the API KEY environment variable for all providers. If you don’t have an API Key, enter /login, select a provider, open the website, and enter the API Key.
Then enter /model to select a model of that provider.
Then you can start to use Orchidea Code, describe what you want to do in the command line, review proposed changes and approve tools calls.
# Examples of what you can do:
"Add error handling to the user authentication function"
"Refactor this component to use TypeScript"
"Create unit tests for the payment service"
"Optimize this database query"
Features
Orchidea Code 是一个可扩展的对话式编码 Agent,核心能力层按模块化组织(详见 src/):
- 对话式编码 Agent:在命令行中用自然语言描述目标,Agent 负责生成代码、修复缺陷、代码审查、补充测试,并对每次工具调用给出 diff 供你审批。
- Agent 编排与任务拆分(
src/agent/):多 Agent 管理与路由(agentManager/routing)、任务执行器(executor),内置 Debug / Plan 等内置 Agent,支持子任务(Task)拆分与并行执行。 - 丰富的工具系统(
src/tools/):数十种内置工具,覆盖 Bash 命令、文件读写(read/write/edit)、搜索(grep/glob/ls)、网络抓取(fetch)、Web 搜索(webSearch)、TODO 管理、任务与团队协作(task/team/swarm)、定时任务(cron)、LSP、MCP、Skill、语音(voice)、代码仓 Worktree、计算机操作(computerUse)等。 - 会话管理与恢复(
src/session.ts/sessionRegistry/history):会话持久化、历史记录与恢复,支持交互式与静默(非交互)两种模式。 - 记忆目录 Memdir(
src/memdir/):基于目录的记忆系统,支持记忆扫描(memoryScan)、记忆老化(memoryAge)与团队记忆路径(teamMemPaths)。 - MCP 全栈支持(
src/mcp.ts/src/services/mcp/):作为 MCP 客户端接入外部工具服务器(含远程 MCP 鉴权),也提供 MCP server 入口(src/entrypoints/mcp.ts)对外暴露能力。 - 插件机制(
src/plugin.ts/src/plugins/):可扩展插件体系,内置 checkpoint、同步、遥测、上下文截断等插件,支持在运行期加载与卸载。 - Server 模式(
src/server/):orchidea server启动本地 HTTP(/api)+ WebSocket(/ws)服务,提供 Headless 消息发送与 Work Queue 任务队列(详见 docs/server-api.md)。 - SDK 与协议(
src/sdk.ts):编程式 SDK 供其他应用(如桌面端、网页端)嵌入调用,与@orchidea/protocol配合实现统一的请求/响应/事件消息封装。 - 多模型 Provider(
src/provider/):基于 AI SDK 集成 Anthropic、Google、OpenAI、OpenAI-compatible 与 OpenRouter 等 Provider,支持模型映射与模型选择(/model)。 - 丰富的内置命令(
src/commands/):cfg(JSON/YAML 配置工具)、prompt(Prompt 模板物化)、plan、vim、mcp、diff、copy、cost、fast、tag、btw、ide、commit、doctor、install、skill、session、workspace、update、version等。 - ACP 支持(
src/commands/acp/):Agent Client Protocol 客户端,可接入支持 ACP 的主机。 - 终端内交互 UI:基于 Ink(React for terminals)的界面,内置 Markdown 渲染、Diff 查看、审批弹窗、队列显示与状态栏。
- Vim 模式(
src/commands/vim//src/hooks/useVimInput.ts):终端输入支持 Vim 键位。 - 语音交互(
src/services/voice.ts/src/tools/voice.ts):语音输入与语音工具。 - 循环任务与定时调度(
src/utils/cronScheduler.ts/src/tools/cron.ts/src/skills/bundled/loop.ts):定时执行与循环任务。 - 安全加固(
src/security/):文件系统访问控制(filesystem.ts)与敏感信息脱敏(redaction.ts),配合策略限制(policyLimits)收敛工具权限。 - 自动升级(
src/utils/autoUpdater.ts/src/upgrade.ts):版本检查与自动升级。 - 其他能力:代码索引(
codeIndexing)、会话压缩(compact/compression)、成本追踪(cost-tracker/usage)、VCR 录制回放(services/vcr)、Node 宿主桥接(nodeBridge)、上游代理(upstreamproxy)等。
Configuration
模型与 API Key
- 所有 Provider 均尊重
API_KEY环境变量;也可在 CLI 中运行/login选择 Provider、打开网页获取并填写 API Key,再运行/model选择模型。 .env.sample提供端到端测试使用的模型变量E2E_MODEL。
Server 模式环境变量
orchidea server(本地 API + WebSocket 服务)支持以下环境变量(完整说明见 docs/server-api.md):
| 环境变量 | 说明 |
|---|---|
ORCHIDEA_SERVER_TOKEN | 鉴权 Token。未设置时不校验鉴权;设置后所有 /api/* 接口需携带 Authorization: Bearer <token> 或 x-orchidea-token,WebSocket 需通过 /ws?token=<token> 连接 |
ORCHIDEA_ALLOWED_CWD_PREFIXES | cwd 白名单,用 , 或 ; 分隔的前缀列表;设置后 cwd 必须以任一前缀开头,否则返回 403 |
ORCHIDEA_SERVER_STATE_DIR | Server 状态存储目录 |
ORCHIDEA_HEADLESS_MAX_EVENTS | Headless 响应事件上限 |
ORCHIDEA_WORKER_CONCURRENCY | Work Queue 并发 Worker 数 |
ORCHIDEA_WORK_MAX_EVENTS_PER_JOB | 单个 Job 的最大事件数 |
ORCHIDEA_WORK_JOB_TTL_MS | Job 存活时间(毫秒) |
ORCHIDEA_WORK_CLEANUP_INTERVAL_MS | Job 清理间隔(毫秒) |
ORCHIDEA_STRICT_API_VALIDATION | 启用请求 payload 字段白名单检查 |
ORCHIDEA_MAX_MESSAGE_CHARS | 消息最大字符数 |
ORCHIDEA_MAX_APPROVED_TOOLS | 一次性自动审批工具数上限 |
ORCHIDEA_MAX_NETWORK_HOSTS | 网络安全配置中的 Host 数量上限 |
ORCHIDEA_VALIDATION_DETAILS | 返回更详细的 Schema 校验错误信息 |
Repository Components
This repository contains multiple related projects. The recommended layout is:
orchidea-code/: Core service (coding agent CLI/SDK and the core runtime)orchidea-code-desktop/: Main AI code editor (desktop)orchidea-code-browser/: AI code editor (web)orchidea-archive/: Knowledge base management service (backend)orchidea-desktop/: Knowledge base management client
Extra Commands
orchidea cfg: JSON/YAML config utilities (expand/minimize/compare).orchidea prompt materialize: Materialize prompt templates into JSONL rows.orchidea server: Runs the local API + WebSocket server (/api+/ws). IfORCHIDEA_SERVER_TOKENis set, WebSocket supports/ws?token=<token>.
Contributing
Contributions are welcome! Please read the CONTRIBUTING.md file for guidelines on setting up the development environment, running tests, and submitting pull requests.