forgecode

GitHub
6.5k 1.3k 简单 1 次阅读 今天Apache-2.0Agent语言模型开发框架插件
AI 解读 由 AI 自动生成,仅供参考

Forge 是一款专为开发者打造的 AI 增强型终端编程助手,旨在将大语言模型的智能深度融入日常开发工作流。它支持 Claude、GPT、Grok、Deepseek、Gemini 等超过 300 种主流 AI 模型,让开发者能够灵活选择最适合自己的智力伙伴。

在传统开发中,切换上下文去网页端与 AI 对话往往打断思路,而 Forge 直接运行在终端内,让你无需离开代码环境即可享受“结对编程”体验。它能帮你快速理解复杂的项目架构、规划新功能实现路径,甚至协助定位和修复 Bug。无论是梳理认证系统的逻辑流转,还是为 React 应用搭建深色模式组件,Forge 都能基于当前代码库提供精准建议并生成相应代码。

Forge 的独特之处在于其灵活的交互模式:既提供沉浸式的文本用户界面(TUI)进行多轮对话,也支持通过 ZSH 插件以冒号前缀(如:explain)快速调用特定技能,还能作为一次性命令直接执行。此外,它还具备语义搜索、Git 集成及多智能体协作能力,能像资深同事一样理解你的项目语境。

这款工具非常适合希望提升编码效率的软件工程师、全栈开发者及技术研究人员。如果你习惯在命令行工作,并希望让 AI 成为触手可及的实时搭档,Forge 将极大优化你的开发体验。

使用场景

某后端工程师正在紧急排查一个涉及多个微服务模块的复杂认证失败问题,需要在深夜快速定位代码逻辑漏洞并修复。

没有 forgecode 时

  • 上下文切换频繁:开发者需手动在 IDE、浏览器文档和终端之间反复跳转,分别查询不同文件的认证逻辑,注意力极易分散。
  • 全局理解成本高:面对分散在鉴权中间件、数据库模型及 API 网关中的代码,人工梳理调用链路耗时费力,容易遗漏关键依赖。
  • 修复试错周期长:提出假设后需手动编写测试用例验证,若方向错误则需回滚代码重新分析,严重拖慢排障进度。
  • 多模型对比困难:难以同时利用 Claude 的逻辑推理与 Deepseek 的代码生成优势,只能单一依赖某个在线聊天窗口,效率受限。

使用 forgecode 后

  • 终端内一站式闭环:直接在终端通过 : 前缀命令唤起 forgecode,它自动读取工作区文件,无需离开命令行即可完成从分析到修复的全流程。
  • 智能全库语义检索:forgecode 利用语义搜索自动关联鉴权模块与相关配置,瞬间生成清晰的认证流程图和潜在故障点分析。
  • 自主执行与验证:接受指令后,forgecode 直接生成修复补丁并运行本地测试命令,实时反馈结果,将“分析 - 编码 - 验证”压缩为分钟级操作。
  • 灵活切换最强模型:根据任务阶段随时切换模型(如用 Grok 做头脑风暴,用 O Series 做严谨调试),确保每个环节都获得最佳 AI 辅助。

forgecode 将原本割裂的开发工具链整合为智能代理,让开发者在终端内即可实现“思考即执行”的高效研发体验。

运行环境要求

操作系统
  • Linux
  • macOS
GPU

未说明

内存

未说明

依赖
notes该工具是一个终端开发环境代理,通过 curl 命令安装。主要依赖本地 shell 环境和网络连接以访问 AI 提供商(如 OpenAI, Anthropic)的 API。支持交互式 TUI 模式、单次 CLI 模式和 ZSH 插件模式。无需本地 GPU 或大型模型下载,计算任务由云端 LLM 完成。首次运行需配置 AI 提供商的 API 密钥。
python未说明
curl
sh
zsh (可选,用于插件模式)
forgecode hero image

快速开始

⚒️ Forge:AI增强型终端开发环境

一个将AI能力与您的开发环境无缝集成的全面编码助手

curl -fsSL https://forgecode.dev/cli | sh

CI状态 GitHub发布 Discord CLA助手

Code-Forge演示


目录

快速入门

要开始使用Forge,请运行以下命令:

curl -fsSL https://forgecode.dev/cli | sh

首次运行时,Forge会引导您通过交互式登录流程设置AI提供商的凭据。或者,您也可以提前配置提供商:

# 交互式配置提供商凭据
forge provider login

# 然后启动Forge
forge

就是这样!Forge现在已准备好协助您完成开发任务。

使用示例

Forge可以根据您的需求以不同方式使用。以下是一些常见的使用场景:

代码理解
> 能否解释一下这个代码库中的认证系统是如何工作的?

Forge会分析您的项目结构,识别与认证相关的文件,并提供详细的认证流程说明,包括各个组件之间的关系。

实现新功能
> 我需要为我们的React应用添加一个暗黑模式切换开关。我应该怎样入手呢?

Forge会根据您当前的代码库提出最佳方案,解释所需步骤,甚至为您搭建必要的组件和样式。

调试帮助
> 我遇到了这个错误:“TypeError: Cannot read property 'map' of undefined”。这可能是什么原因造成的?

Forge会分析该错误,根据您的代码提出潜在原因,并给出不同的解决方案来修复问题。

代码审查
> 请审查src/components/UserProfile.js中的代码,并提出改进建议。

Forge会分析这段代码,找出潜在问题,并从可读性、性能、安全性及可维护性等方面提出改进建议。

学习新技术
> 我想将GraphQL集成到这个Express应用中。你能告诉我如何开始吗?

Forge会结合您具体的项目结构,为您提供关于如何将GraphQL与Express集成的定制化教程。

数据库模式设计
> 我需要为一个包含用户、文章、评论和分类的博客设计数据库模式。

Forge会根据您项目现有的数据库技术,建议合适的表/集合设计、关系、索引和约束。

重构遗留代码
> 帮我将这个基于类的组件重构为使用React Hooks的形式。

Forge可以帮助您现代化代码库,指导您完成重构步骤,并在您确认后实施这些更改。

Git操作
> 我需要将分支‘feature/user-profile’合并到main分支,但存在冲突。

Forge可以指导您解决Git冲突,解释差异并建议最佳的协调方式。

为什么选择Forge?

Forge专为希望在保持对开发环境完全控制的同时,利用AI辅助提升工作效率的开发者而设计。

  • 零配置——只需添加API密钥即可开始使用
  • 无缝集成——直接在您常用的终端中工作
  • 多提供商支持——支持OpenAI、Anthropic等LLM提供商
  • 安全设计——受限的shell模式限制了文件系统的访问,防止意外更改
  • 开源——透明、可扩展且由社区驱动

Forge助您更快地编写代码、解决复杂问题以及学习新技术,同时无需离开终端。


Forge的工作原理:三种模式

Forge提供了三种不同的使用方式。提前了解这些区别将帮助您避免混淆。

交互模式(TUI)

不带任何参数运行 forge 会启动交互式终端界面,这是一个持久会话,您可以在其中输入提示,AI 会以对话循环的方式进行响应。这是执行多步骤工作的主要方式。

forge                              # 启动一个新的交互式会话
forge conversation resume <id>     # 在交互模式下恢复特定的已保存对话
forge --conversation-id <id>       # 同上:通过 ID 恢复对话
forge --agent <agent-id>           # 使用特定代理启动交互式会话
forge -C /path/to/project          # 在指定目录下启动
forge --sandbox experiment-name    # 创建一个隔离的 Git 工作树 + 分支,然后在此处启动

进入交互模式后,输入您的提示并按 Enter 键。Forge 会读取文件、生成补丁、运行命令,并在整个会话中保持上下文。

一次性 CLI 模式

传递 -p(或 --prompt)来运行单个提示并退出。Forge 完成工作后会返回到您的 shell。这对于脚本、输出管道或快速任务非常有用。

forge -p "解释 src/main.rs 的作用"
forge -p "在 lib.rs 中的 parse() 函数中添加错误处理"
echo "这是做什么的?" | forge    # 将输入作为提示传递
forge commit                         # 生成 AI 提交信息并提交(完成后退出)
forge commit --preview               # 生成提交信息,打印出来后退出
forge suggest "查找大型日志文件" # 将自然语言翻译为 Shell 命令,然后退出

注意: forge conversation resume <id> 会打开交互式 TUI。它不会只是打印一条消息就退出。如果您运行该命令后看到光标在等待输入,说明您已经进入了交互式会话。您可以输入提示,或者按 Ctrl+C 退出。

ZSH 插件模式(: 前缀)

使用 forge setup 安装一次 ZSH 插件后,您就可以直接在 shell 提示符下使用 : 命令,而无需每次都输入 forge。这是日常开发中最快速的模式:发送提示、切换对话、提交代码以及建议命令,全程无需离开 shell。

: 重构认证模块      # 向当前活跃的代理发送提示
:commit                         # AI 驱动的 Git 提交
:suggest "查找大型日志文件" # 将描述转换为 Shell 命令并插入到您的缓冲区
:conversation                   # 使用 fzf 预览浏览已保存的对话

有关所有命令和别名,请参阅下方的完整 ZSH 插件参考


ZSH 插件:: 前缀系统

当您安装 ZSH 插件(forge setup)后,您的 shell 提示符上就会出现 : 前缀命令系统。这是在正常开发过程中使用 Forge 的最快方式;您始终无需离开 shell。

工作原理:: 开头的行会在 shell 处理之前被截获,并路由到 Forge。其余内容则按正常方式执行。

: <prompt>         # 向当前活跃的代理发送提示
:sage <prompt>     # 向特定名称的代理发送提示(sage、muse、forge 或任何自定义代理)
:agent <name>      # 切换当前活跃的代理;如果未指定名称,则打开 fzf 选择器

代理

Forge 自带三个内置代理,每个代理都有不同的角色:

代理 别名 用途 修改文件吗?
forge (默认) 实现:构建功能、修复 bug 和运行测试
sage :ask 研究:绘制架构图、追踪数据流和阅读代码
muse :plan 规划:分析结构并将实现计划写入 plans/ 目录

发送提示

: 将认证模块重构为使用新的中间件
:sage 缓存层是如何工作的?    # sage = 只读研究代理
:muse 设计一个部署策略        # muse = 规划代理(写入 plans/ 目录)
:ask X 是如何工作的?                     # :sage 的别名
:plan 制定一个迁移计划             # :muse 的别名

代理上下文是持久化的。单独输入 :sage(没有提示文本)会将当前活跃的代理切换为 sage,后续的所有 : <prompt> 命令都会使用 sage 代理。

附加文件

在提示中输入 @,然后按 Tab 键进行模糊搜索并选择文件。路径会被插入为 @[filename],并作为上下文附加给 AI。

: 审查这段代码 @[src/auth.rs] @[tests/auth_test.rs]

对话管理

Forge 会保存每一次对话。您可以像切换目录一样在不同对话之间切换。

:new                      # 开始一个新的对话(保存当前对话以便于 :conversation - 使用)
:new <initial prompt>     # 开始一个新的对话并立即发送提示
:conversation             # 打开 fzf 选择器:浏览并切换对话,带有预览
:conversation <id>        # 直接通过 ID 切换到某个对话
:conversation -           # 在当前对话和上一个对话之间切换(类似于 cd -)
:clone                    # 分支当前对话(尝试不同的方向)
:clone <id>               # 通过 ID 克隆特定对话
:rename <name>            # 重命名当前对话
:conversation-rename      # 通过 fzf 选择器重命名对话
:retry                    # 重试上次的提示(当 AI 理解有误时很有用)
:copy                     # 将上次 AI 的回复复制到剪贴板,格式为 Markdown
:dump                     # 将对话导出为 JSON 格式
:dump html                # 将对话导出为格式化的 HTML
:compact                  # 手动压缩上下文,以释放 token 预算

Git 集成

:commit                   # AI 读取您的 diff,生成提交信息并立即提交
:commit <context>         # 同上,但可以传递额外的上下文::commit 修复 README 中的拼写错误
:commit-preview           # AI 生成提交信息,并将 "git commit -m '...'" 放入您的缓冲区
                          # 这样您可以在按下 Enter 键前先查看或编辑提交信息

Shell 命令工具

:suggest <description>    # 将自然语言翻译为 Shell 命令并放入您的缓冲区
:edit                     # 打开 $EDITOR 编写复杂的多行提示,然后发送

会话与配置

有些命令仅更改当前会话的设置,而另一些则会持久化到您的配置文件(~/forge/.forge.toml)。这两者是有区别的:

# 仅限会话(关闭终端时重置,不会保存到配置文件)
:model <model-id>              # 仅为此会话更改模型
:reasoning-effort <level>      # 设置推理力度:无/极低/低/中/高/极高/最大
:agent <id>                    # 为此会话切换活跃代理

# 持久化(保存到配置文件)
:config-model <model-id>       # 全局设置默认模型  (别名: :cm)
:config-provider               # 全局切换提供商    (别名: :provider, :p)
:config-reasoning-effort <lvl> # 全局设置默认推理力度 (别名: :cre)
:config-commit-model <id>      # 设置用于 :commit 的模型  (别名: :ccm)
:config-suggest-model <id>     # 设置用于 :suggest 的模型 (别名: :csm)
:config-reload                 # 将会话覆盖重置为全局配置 (别名: :cr)

# 查看与编辑配置
:info                          # 显示当前会话信息(模型、代理、对话 ID)
:config                        # 以 TOML 格式显示生效的解析后配置
:config-edit                   # 在 $EDITOR 中打开配置文件 (别名: :ce)
:tools                         # 列出当前代理可用的工具
:skill                         # 列出可用技能

技能

技能是 AI 可以作为工具调用的可复用工作流。Forge 预装了三种内置技能:

  • create-skill:搭建一个新的自定义技能
  • execute-plan:执行 plans/ 目录下的计划文件
  • github-pr-description:根据你的代码差异生成 PR 描述

使用 :skill 可以列出可用技能。AI 会在相关时自动调用这些技能,你也可以明确请求:: 使用 github-pr-description 技能生成 PR 描述

自定义技能 存在于带有 YAML 前言的 SKILL.md 文件中。优先级(最高优先)如下:

位置 路径 范围
项目本地 .forge/skills/<name>/SKILL.md 仅限该项目
全局 ~/forge/skills/<name>/SKILL.md 所有项目
内置 嵌入二进制文件中 始终可用

项目本地技能会覆盖全局技能,而全局技能又会覆盖内置技能。要搭建新技能,请输入:: 创建一个新技能

自定义代理行为

AGENTS.md 在你的项目根目录下创建此文件(或在 ~/forge/AGENTS.md 全局范围内),为所有代理提供持久化的指令,例如编码规范、提交信息风格以及需要避免的内容。Forge 会在每次对话开始时自动读取该文件。

自定义代理: 将带有 YAML 前言的 .md 文件放置在 .forge/agents/(项目级别)或 ~/forge/agents/(全局级别),以定义具有各自模型、工具和系统提示的额外代理。项目级别的代理会覆盖全局代理。位于 crates/forge_repo/src/agents/ 的内置代理文件是该格式的良好示例。

自定义命令: 将 YAML 文件放置在 .forge/commands/(项目级别)或 ~/forge/commands/(全局级别),以定义可通过 :commandname 调用的快捷命令。命令也可以直接在 forge.yamlcommands: 键下内联定义。

语义搜索(工作区)

:sync                     # 为语义搜索索引你的代码库
:workspace-init           # 初始化工作区以进行索引
:workspace-status         # 显示索引状态
:workspace-info           # 显示工作区详情

运行 :sync 后,AI 可以根据语义而非精确文本匹配来搜索你的代码库。索引过程会将文件内容发送到工作区服务器,默认地址为 https://api.forgecode.dev。如果选择自托管,可以设置 FORGE_WORKSPACE_SERVER_URL 来覆盖此默认值。

快速参考:所有 : 命令

命令 别名 功能
: <prompt> 将提示发送给活跃代理
:new :n 开始新的对话
:conversation :c 浏览/切换对话(通过 fzf)
:conversation - 切换到上一个对话
:clone 分支当前对话
:rename <name> :rn 重命名当前对话
:conversation-rename 重命名对话(通过 fzf 选择器)
:retry :r 重试上次的提示
:copy 将上次的回答复制到剪贴板
:dump :d 将对话导出为 JSON
:compact 紧缩上下文
:commit AI 即时提交
:commit-preview AI 提交(先预览)
:suggest <desc> :s 将自然语言翻译成命令
:edit :ed 在 $EDITOR 中编写提示
:sage <prompt> :ask 问答 / 代码理解代理
:muse <prompt> :plan 规划代理
:agent <name> :a 切换活跃代理(若未指定名称,则通过 fzf 选择器)
:model <id> :m 仅为此会话设置模型
:config-model <id> :cm 设置默认模型(持久化)
:reasoning-effort <lvl> :re 设置会话的推理力度
:config-reload :cr 将会话覆盖重置为全局配置
:info :i 显示会话信息
:sync :workspace-sync 为语义搜索索引代码库
:tools :t 列出可用工具
:skill 列出可用技能
:login :provider-login 登录到某个提供商
:logout 从某个提供商登出
:keyboard-shortcuts :kb 显示键盘快捷键
:doctor 运行 Shell 环境诊断

命令行选项

以下是 Forge 命令行选项的快速参考:

选项 描述
-p, --prompt <PROMPT> 直接传递提示,无需进入交互模式
-e, --event <EVENT> 以 JSON 格式向工作流分发事件
--conversation <CONVERSATION> 包含要执行的对话的 JSON 文件路径
--conversation-id <ID> 根据 ID 恢复或继续现有对话
--agent <AGENT> 本次会话使用的代理 ID
-C, --directory <DIR> 在启动前切换到此目录
--sandbox <NAME> 创建隔离的 Git 工作树 + 分支,用于安全实验
--verbose 启用详细日志输出
-h, --help 打印帮助信息
-V, --version 打印版本

子命令


# 对话
forge conversation list                  # 列出所有已保存的对话
forge conversation resume <id>           # 以交互模式恢复对话
forge conversation new                   # 创建一个新的对话 ID(并打印)
forge conversation dump <id>             # 将对话导出为 JSON 格式
forge conversation compact <id>          # 精简对话上下文
forge conversation retry <id>            # 重试上一条消息
forge conversation clone <id>            # 克隆一个对话
forge conversation rename <id> <name>    # 重命名对话
forge conversation delete <id>           # 永久删除对话
forge conversation info <id>             # 显示对话详情
forge conversation stats <id>            # 显示 token 使用统计
forge conversation show <id>             # 显示最后一条助手消息

# 提交
forge commit                             # 生成 AI 提交信息并提交
forge commit --preview                   # 仅生成提交信息(并打印)
forge commit fix the auth bug            # 为提交信息传递额外上下文

# Shell 命令建议
forge suggest "list files by size"       # 将描述转换为 shell 命令

# 供应商
forge provider login                     # 添加或更新供应商凭据(交互式)
forge provider logout                    # 移除供应商凭据
forge list provider                      # 列出支持的供应商

# 模型与代理
forge list model                         # 列出可用模型
forge list agent                         # 列出可用代理

# 工作区 / 语义搜索
forge workspace sync                     # 为语义搜索索引当前目录
forge workspace init                     # 初始化工作区
forge workspace status                   # 显示索引状态
forge workspace query <text>             # 查询语义索引

# MCP 服务器
forge mcp list                           # 列出已配置的 MCP 服务器
forge mcp import                         # 从 JSON 添加服务器
forge mcp show                           # 显示服务器配置
forge mcp remove                         # 移除服务器
forge mcp reload                         # 重新加载所有服务器并重建缓存

# 其他
forge info                               # 显示配置、当前使用的模型和环境
forge list tool --agent <id>             # 列出特定代理可用的工具
forge doctor                             # 运行 shell 环境诊断
forge update                             # 更新 forge 到最新版本
forge setup                              # 安装 ZSH 插件(更新 .zshrc)

高级配置

供应商配置

Forge 支持多个 AI 供应商。推荐使用交互式登录命令来配置供应商:

forge provider login

该命令会执行以下操作:

  1. 显示可用的供应商列表
  2. 引导您输入所需的凭据

管理供应商凭据

# 登录供应商(添加或更新凭据)
forge provider login

# 移除供应商凭据
forge provider logout

# 列出支持的供应商
forge provider list

已弃用:环境变量

⚠️ 已弃用:使用 .env 文件进行供应商配置已被弃用,并将在未来版本中移除。请改用 forge provider login

出于向后兼容性考虑,Forge 仍支持环境变量。首次运行时,任何在环境变量中找到的凭据都会自动迁移到基于文件的存储中。

旧版环境变量设置(已弃用)
OpenRouter
# .env
OPENROUTER_API_KEY=<your_openrouter_api_key>
Requesty
# .env
REQUESTY_API_KEY=<your_requesty_api_key>
x-ai
# .env
XAI_API_KEY=<your_xai_api_key>
z.ai
# .env
ZAI_API_KEY=<your_zai_api_key>

# 或者用于编码计划订阅
ZAI_CODING_API_KEY=<your_zai_coding_api_key>
Cerebras
# .env
CEREBRAS_API_KEY=<your_cerebras_api_key>
IO Intelligence
# .env
IO_INTELLIGENCE_API_KEY=<your_io_intelligence_api_key>
# forge.yaml
model: meta-llama/Llama-3.3-70B-Instruct
OpenAI
# .env
OPENAI_API_KEY=<your_openai_api_key>
# forge.yaml
model: o3-mini-high
Anthropic
# .env
ANTHROPIC_API_KEY=<your_anthropic_api_key>
# forge.yaml
model: claude-3.7-sonnet
Google Vertex AI

设置说明:

  1. 安装 Google Cloud CLI 并进行身份验证:

    gcloud auth login
    gcloud config set project YOUR_PROJECT_ID
    
  2. 获取身份验证令牌

    gcloud auth print-access-token
    
  3. 在 Forge 中登录时使用该令牌

    forge provider login
    # 选择 Google Vertex AI 并输入您的凭据
    

旧版 .env 设置:

# .env
PROJECT_ID=<your_project_id>
LOCATION=<your_location>
VERTEX_AI_AUTH_TOKEN=<your_auth_token>
# forge.yaml
model: google/gemini-2.5-pro

可用模型:

  • Claude 系列模型:claude-sonnet-4@20250514
  • Gemini 系列模型:gemini-2.5-progemini-2.0-flash

您可以使用 Forge CLI 中的 /model 命令查看所有可用模型。

兼容 OpenAI 的供应商
# .env
OPENAI_API_KEY=<your_provider_api_key>
OPENAI_URL=<your_provider_url>
# forge.yaml
model: <供应商特定的模型>
Groq
# .env
OPENAI_API_KEY=<your_groq_api_key>
OPENAI_URL=https://api.groq.com/openai/v1

# forge.yaml
model: deepseek-r1-distill-llama-70b
Amazon Bedrock

要使用 Amazon Bedrock 模型与 Forge 配合,您需要先设置 Bedrock 访问网关

  1. 设置 Bedrock 访问网关

    • 按照 Bedrock 访问网关仓库 中的部署步骤操作
    • 在 Secrets Manager 中创建您自己的 API 密钥
    • 部署 CloudFormation 堆栈
    • 从 CloudFormation 输出中记下您的 API 基础 URL
  2. 在 Forge 中配置

    forge provider login
    # 选择兼容 OpenAI 的提供商,并输入您的 Bedrock 网关详细信息
    

旧版 .env 设置:

# .env
OPENAI_API_KEY=<your_bedrock_gateway_api_key>
OPENAI_URL=<your_bedrock_gateway_base_url>
# forge.yaml
model: anthropic.claude-3-opus
ForgeCode 服务
# .env
FORGE_API_KEY=<your_forge_api_key>
# forge.yaml
model: claude-3.7-sonnet

forge.yaml 配置选项

环境变量

Forge 支持多个环境变量,用于高级配置和微调。这些变量可以在您的 .env 文件或系统环境中设置。

重试配置

控制 Forge 如何处理失败请求的重试逻辑:

# .env
FORGE_RETRY_INITIAL_BACKOFF_MS=1000    # 初始退避时间,单位为毫秒(默认值:1000)
FORGE_RETRY_BACKOFF_FACTOR=2           # 退避时间的倍数因子(默认值:2)
FORGE_RETRY_MAX_ATTEMPTS=3             # 最大重试次数(默认值:3)
FORGE_SUPPRESS_RETRY_ERRORS=false      # 是否抑制重试错误信息(默认值:false)
FORGE_RETRY_STATUS_CODES=429,500,502   # 需要重试的 HTTP 状态码(默认值:429、500、502、503、504)
HTTP 配置

微调 API 请求的 HTTP 客户端行为:

# .env
FORGE_HTTP_CONNECT_TIMEOUT=30              # 连接超时时间,单位为秒(默认值:30)
FORGE_HTTP_READ_TIMEOUT=900                # 读取超时时间,单位为秒(默认值:900)
FORGE_HTTP_POOL_IDLE_TIMEOUT=90            # 池空闲超时时间,单位为秒(默认值:90)
FORGE_HTTP_POOL_MAX_IDLE_PER_HOST=5        # 每个主机的最大空闲连接数(默认值:5)
FORGE_HTTP_MAX_REDIRECTS=10                # 最大可跟随的重定向次数(默认值:10)
FORGE_HTTP_USE_HICKORY=false               # 是否使用 Hickory DNS 解析器(默认值:false)
FORGE_HTTP_TLS_BACKEND=default             # TLS 后端:“default” 或 “rustls”(默认值:“default”)
FORGE_HTTP_MIN_TLS_VERSION=1.2             # 最低 TLS 版本:“1.0”、“1.1”、“1.2”、“1.3”
FORGE_HTTP_MAX_TLS_VERSION=1.3             # 最高 TLS 版本:“1.0”、“1.1”、“1.2”、“1.3”
FORGE_HTTP_ADAPTIVE_WINDOW=true            # 是否启用 HTTP/2 自适应窗口(默认值:true)
FORGE_HTTP_KEEP_ALIVE_INTERVAL=60          # 长连接保持活动的时间间隔,单位为秒(默认值:60;使用“none”或“disabled”可禁用)
FORGE_HTTP_KEEP_ALIVE_TIMEOUT=10           # 长连接保持活动的超时时间,单位为秒(默认值:10)
FORGE_HTTP_KEEP_ALIVE_WHILE_IDLE=true      # 在空闲时保持长连接(默认值:true)
FORGE_HTTP_ACCEPT_INVALID_CERTS=false      # 是否接受无效证书(默认值:false)——请谨慎使用
FORGE_HTTP_ROOT_CERT_PATHS=/path/to/cert1.pem,/path/to/cert2.crt  # 根证书文件路径(PEM、CRT、CER 格式),多个路径用逗号分隔

⚠️ 安全警告:将 FORGE_HTTP_ACCEPT_INVALID_CERTS=true 设置为开启状态会禁用 SSL/TLS 证书验证,这会使您面临中间人攻击的风险。请仅在开发环境或完全信任网络及端点的情况下使用此设置。

API 配置

覆盖默认的 API 端点以及提供商和模型设置:

# .env
FORGE_API_URL=https://api.forgecode.dev  # 自定义 Forge API URL(默认值:https://api.forgecode.dev)
FORGE_WORKSPACE_SERVER_URL=http://localhost:8080  # 索引服务器的 URL(默认值:https://api.forgecode.dev/)
工具配置

配置工具调用的相关设置:

# .env
FORGE_TOOL_TIMEOUT=300         # 工具执行的最大时间限制,超过该时间将终止工具运行,以防止会话卡死。(默认值:300 秒)
FORGE_MAX_IMAGE_SIZE=10485760  # read_image 操作允许的最大图片文件大小,单位为字节(默认值:10485760 字节,即 10 MB)
FORGE_DUMP_AUTO_OPEN=false     # 是否自动在浏览器中打开转储文件(默认值:false)
FORGE_DEBUG_REQUESTS=/path/to/debug/requests.json  # 将调试 HTTP 请求文件写入指定路径(支持绝对路径和相对路径)
ZSH 插件配置

配置 ZSH 插件的行为:

# .env
FORGE_BIN=forge                    # 用于执行 Forge 操作的命令(默认值:“forge”)

FORGE_BIN 环境变量允许您自定义 ZSH 插件在处理以 : 开头的命令时使用的命令。如果未设置,则默认为“forge”。

显示配置

配置 Forge UI 和 ZSH 主题的显示选项:

# .env
FORGE_CURRENCY_SYMBOL="$"         # ZSH 主题中成本显示的货币符号(默认值:“$”)
FORGE_CURRENCY_CONVERSION_RATE=1.0  # 货币转换率(默认值:1.0)
NERD_FONT=1                       # 在 ZSH 主题中启用 Nerd Font 图标(默认值:自动检测;设置为“1”或“true”启用,设置为“0”或“false”禁用)
USE_NERD_FONT=1                   # 启用 Nerd Font 图标的替代变量(与 NERD_FONT 行为相同)

FORGE_CURRENCY_SYMBOLFORGE_CURRENCY_CONVERSION_RATE 变量控制着 ZSH 主题右提示符中成本的显示方式。您可以使用这些变量来自定义适合您所在地区或偏好的货币显示格式。

系统配置

系统级别的环境变量(通常由系统自动设置):


# .env
FORGE_CONFIG=/custom/config/dir        # 所有 Forge 配置文件的基础目录(默认:~/.forge)
FORGE_MAX_SEARCH_RESULT_BYTES=10240   # 搜索结果的最大字节数(默认:10240 - 10 KB)
FORGE_HISTORY_FILE=/path/to/history    # Forge 历史文件的自定义路径(默认:使用系统默认位置)
FORGE_BANNER="Your custom banner text" # 启动时显示的自定义横幅文本(默认:Forge ASCII 艺术)
FORGE_MAX_CONVERSATIONS=100            # 列表中最多显示的对话数量(默认:100)
FORGE_MAX_LINE_LENGTH=2000             # 文件读取操作每行的最大字符数(默认:2000)
FORGE_STDOUT_MAX_LINE_LENGTH=2000      # shell 输出每行的最大字符数(默认:2000)
SHELL=/bin/zsh                         # 用于执行命令的 shell(Unix/Linux/macOS)
COMSPEC=cmd.exe                        # 用于执行命令的处理器(Windows)
语义搜索配置

配置代码理解的语义搜索行为:

# .env
FORGE_SEM_SEARCH_LIMIT=200            # 初始向量搜索返回的最大结果数(默认:200)
FORGE_SEM_SEARCH_TOP_K=20             # 语义搜索过程中用于相关性过滤的 top-k 参数(默认:20)
日志配置

配置日志的详细程度和输出:

# .env
FORGE_LOG=forge=info                  # 日志筛选级别(默认:跟踪关闭时为 forge=debug,开启时为 forge=info)

FORGE_LOG 变量使用标准的追踪过滤器语法来控制 Forge 内部操作的日志级别。常见值:

  • forge=error - 仅记录错误
  • forge=warn - 记录警告和错误
  • forge=info - 记录信息性消息(跟踪开启时的默认值)
  • forge=debug - 记录调试信息(跟踪关闭时的默认值)
  • forge=trace - 记录详细的追踪信息
跟踪配置

控制遥测事件中用户识别元数据的跟踪:

# .env
FORGE_TRACKER=false                   # 禁用跟踪增强元数据(默认:true)

FORGE_TRACKER 变量控制是否在遥测事件中包含跟踪增强元数据。

forge.yaml 文件支持多个高级配置选项,允许您自定义 Forge 的行为。

自定义规则

添加所有代理在生成响应时应遵循的指导原则。

# forge.yaml
custom_rules: |
  1. 您编写的任何代码都必须始终包含全面的错误处理。
  2. 所有新函数都应包含单元测试。
  3. 遵循我们团队的命名规范:变量使用驼峰命名法,类使用帕斯卡命名法。
命令

将重复性提示定义为自定义命令快捷方式:

# forge.yaml
commands:
  - name: "refactor"
    description: "重构选定的代码"
    prompt: "请重构这段代码以提高可读性和性能"
模型

指定工作流中所有代理使用的默认 AI 模型。

# forge.yaml
model: "claude-3.7-sonnet"
最大遍历深度

控制 Forge 在收集上下文时对项目目录结构的遍历深度。

# forge.yaml
max_walker_depth: 3 # 将目录遍历限制在 3 层深度
温度

调整 AI 响应中的创造性和随机性。较低的值(0.0-0.3)会产生更专注、确定性的输出,而较高的值(0.7-2.0)则会生成更多样化和更具创意的成果。

# forge.yaml
temperature: 0.7 # 平衡创造性和专注度
工具最大失败次数限制

控制工具在 Forge 强制完成之前可以失败的次数,以防止无限重试循环。这有助于避免代理反复尝试同一失败操作而陷入僵局的情况。

# forge.yaml
max_tool_failure_per_turn: 3 # 允许每个工具在强制完成前最多失败 3 次

如果您希望有更多的重试机会,可以将其设置为更高的值;如果希望更快地检测到失败,则可以设置为更低的值。

每轮最大请求次数

限制代理在单次对话轮次中可以发出的最大请求数量。这可以防止对话失控,并有助于控制 API 使用和成本。

# forge.yaml
max_requests_per_turn: 50 # 每轮最多允许 50 次请求

当达到此限制时,Forge 将:

  • 询问您是否希望继续
  • 如果您回答“是”,将继续对话
  • 如果您回答“否”,将结束对话

模型上下文协议 (MCP)

MCP 功能允许 AI 代理与外部工具和服务进行通信。此实现遵循 Anthropic 的 模型上下文协议 设计。

MCP 配置

使用 CLI 配置 MCP 服务器:

# 列出所有 MCP 服务器
forge mcp list

# 从 JSON 导入服务器
forge mcp import

# 显示服务器配置详情
forge mcp show

# 移除服务器
forge mcp remove

# 重新加载服务器并重建缓存
forge mcp reload

或者手动创建一个 .mcp.json 文件,其结构如下:

{
  "mcpServers": {
    "server_name": {
      "command": "command_to_execute",
      "args": ["arg1", "arg2"],
      "env": { "ENV_VAR": "value" }
    },
    "another_server": {
      "url": "http://localhost:3000/events"
    }
  }
}

MCP 配置从两个位置读取(项目本地优先):

  1. 项目本地: 您项目目录中的 .mcp.json
  2. 全局: ~/forge/.mcp.json

示例用例

MCP 可用于各种集成场景:

  • 网页浏览器自动化
  • 外部 API 交互
  • 工具集成
  • 自定义服务连接

在多代理工作流中的使用

MCP 工具可以用作多代理工作流的一部分,使专业代理能够与外部系统交互,从而以协作的方式解决问题。


文档

有关所有功能和特性的完整文档,请访问 文档网站


安装

# YOLO
curl -fsSL https://forgecode.dev/cli | sh

# 包管理器
nix run github:tailcallhq/forgecode # 获取最新开发分支

社区

加入我们活跃的Discord社区,与其他Forge用户和贡献者交流互动,获取项目帮助、分享创意并提供反馈吧!

Discord


支持我们

您的支持是Forge持续发展的动力!通过给我们的GitHub仓库点星,您将:

  • 帮助更多人发现这款强大的工具 🔍
  • 激励我们的开发团队 💪
  • 让我们能够优先开发新功能 🛠️
  • 巩固我们的开源社区 🌱

版本历史

v2.11.12026/04/15
v2.11.02026/04/14
v2.10.02026/04/13
v2.9.92026/04/11
v2.9.82026/04/10
v2.9.72026/04/10
v2.9.62026/04/10
v2.9.52026/04/10
v2.9.42026/04/10
v2.9.32026/04/09
v2.9.22026/04/09
v2.9.12026/04/09
v2.9.02026/04/09
v2.8.02026/04/07
v2.7.02026/04/07
v2.6.02026/04/04
v2.5.22026/04/03
v2.5.12026/04/02
v2.5.02026/04/02
v2.4.12026/04/02

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

156.8k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

108.3k|★★☆☆☆|5天前
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|6天前
插件Agent图像

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|1周前
插件开发框架