antinomyhq/forge

GitHub: antinomyhq/forge

一款支持 300+ AI 模型的终端编程助手,帮助开发者在命令行中完成代码理解、调试、重构和审查等任务。

Stars: 4600 | Forks: 1167

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

一个将 AI 功能集成到您开发环境中的综合编码代理

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

[![CI Status](https://img.shields.io/github/actions/workflow/status/antinomyhq/forge/ci.yml?style=for-the-badge)](https://github.com/antinomyhq/forge/actions) [![GitHub Release](https://img.shields.io/github/v/release/antinomyhq/forge?style=for-the-badge)](https://github.com/antinomyhq/forge/releases) [![Discord](https://img.shields.io/discord/1044859667798568962?style=for-the-badge&cacheSeconds=120&logo=discord)](https://discord.gg/kRZBPpkgwq) [![CLA assistant](https://cla-assistant.io/readme/badge/antinomyhq/forge?style=for-the-badge)](https://cla-assistant.io/antinomyhq/forge) ![Code-Forge Demo](https://assets.antinomy.ai/images/forge_demo_2x.gif)
目录 - [快速入门](#quickstart) - [用法示例](#usage-examples) - [为什么选择 Forge?](#why-forge) - [命令行选项](#command-line-options) - [高级配置](#advanced-configuration) - [Provider 配置](#provider-configuration) - [管理 Provider 凭证](#managing-provider-credentials) - [已弃用:环境变量](#deprecated-environment-variables) - [forge.yaml 配置选项](#forgeyaml-configuration-options) - [环境变量](#environment-variables) - [MCP 配置](#mcp-configuration) - [示例用例](#example-use-cases) - [在多智能体工作流中的使用](#usage-in-multi-agent-workflows) - [文档](#documentation) - [社区](#community) - [支持我们](#support-us)
## 快速入门 要开始使用 Forge,请运行以下命令: ``` curl -fsSL https://forgecode.dev/cli | sh ``` 首次运行时,Forge 将通过交互式登录流程引导您设置 AI provider 凭证。或者,您可以预先配置 provider: ``` # 交互式配置您的 provider 凭证 forge provider login # 然后启动 Forge forge ``` 就是这样!Forge 现在已准备好协助您完成开发任务。 ## 用法示例 Forge 可根据您的需求以不同方式使用。以下是一些常见的使用模式:
代码理解 ``` > Can you explain how the authentication system works in this codebase? ``` Forge 将分析您的项目结构,识别身份验证相关文件,并详细解释身份验证流程,包括不同组件之间的关系。
实现新功能 ``` > I need to add a dark mode toggle to our React application. How should I approach this? ``` Forge 将根据您当前的代码库建议最佳方法,解释所需步骤,甚至为您搭建必要的组件和样式。
调试辅助 ``` > I'm getting this error: "TypeError: Cannot read property 'map' of undefined". What might be causing it? ``` Forge 将分析错误,根据您的代码建议潜在原因,并提出不同的解决方案来修复问题。
代码审查 ``` > Please review the code in src/components/UserProfile.js and suggest improvements ``` Forge 将分析代码,识别潜在问题,并针对可读性、性能、安全性和可维护性提出改进建议。
学习新技术 ``` > I want to integrate GraphQL into this Express application. Can you explain how to get started? ``` Forge 将提供关于将 GraphQL 与 Express 集成的定制教程,并使用您的特定项目结构作为上下文。
数据库 Schema 设计 ``` > I need to design a database schema for a blog with users, posts, comments, and categories ``` Forge 将根据项目现有的数据库技术,建议合适的 schema 设计,包括表/集合、关系、索引和约束。
重构遗留代码 ``` > Help me refactor this class-based component to use React Hooks ``` Forge 可以通过引导您完成重构步骤并在获得您批准后实施这些步骤,帮助您实现代码库的现代化。
Git 操作 ``` > I need to merge branch 'feature/user-profile' into main but there are conflicts ``` Forge 可以指导您解决 git 冲突,解释差异并建议协调它们的最佳方法。
## 为什么选择 Forge? Forge 专为希望利用 AI 辅助增强工作流程同时保持对开发环境完全控制的开发者而设计。 - **零配置** - 只需添加您的 API key 即可开始使用 - **无缝集成** - 直接在您已经工作的终端中运行 - **多 Provider 支持** - 使用 OpenAI、Anthropic 或其他 LLM provider - **设计安全** - 受限 shell 模式限制文件系统访问并防止意外更改 - **开源** - 透明、可扩展且由社区驱动 Forge 帮助您更快地编写代码、解决复杂问题并学习新技术,而无需离开终端。 ## 命令行选项 以下是 Forge 命令行选项的快速参考: | 选项 | 描述 | | ------------------------------- | ---------------------------------------------------------- | | `-p, --prompt ` | 直接处理 prompt 而不进入交互模式 | | `-c, --command ` | 包含要执行的初始命令的文件路径 | | `-w, --workflow ` | 包含要执行的 workflow 的文件路径 | | `-e, --event ` | 向 workflow 发送事件 | | `--conversation ` | 包含要执行的对话的文件路径 | | `-r, --restricted` | 启用受限 shell 模式以增强安全性 | | `--verbose` | 启用详细输出模式 | | `-h, --help` | 打印帮助信息 | | `-V, --version` | 打印版本 | ## 高级配置 ### Provider 配置 Forge 支持多种 AI provider。配置 provider 的推荐方法是使用交互式登录命令: ``` forge provider login ``` 这将: 1. 向您显示可用 provider 的列表 2. 引导您输入所需的凭证 #### 管理 Provider 凭证 ``` # 登录到 provider (添加或更新凭证) forge provider login # 移除 provider 凭证 forge provider logout # 列出支持的 providers forge provider list ``` #### 已弃用:环境变量 为了向后兼容,Forge 仍然支持环境变量。首次运行时,在环境变量中发现的任何凭证都会自动迁移到基于文件的存储中。
旧版环境变量设置(已弃用)
OpenRouter ``` # .env OPENROUTER_API_KEY= ```
Requesty ``` # .env REQUESTY_API_KEY= ```
x-ai ``` # .env XAI_API_KEY= ```
z.ai ``` # .env ZAI_API_KEY= # 或用于 coding plan 订阅 ZAI_CODING_API_KEY= ```
Cerebras ``` # .env CEREBRAS_API_KEY= ```
IO Intelligence ``` # .env IO_INTELLIGENCE_API_KEY= ``` ``` # forge.yaml model: meta-llama/Llama-3.3-70B-Instruct ```
OpenAI ``` # .env OPENAI_API_KEY= ``` ``` # forge.yaml model: o3-mini-high ```
Anthropic ``` # .env 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. **获取您的身份验证 token**: gcloud auth print-access-token 3. **在通过 Forge 登录时使用该 token**: forge provider login # 选择 Google Vertex AI 并输入您的凭证 **旧版 `.env` 设置:** ``` # .env PROJECT_ID= LOCATION= VERTEX_AI_AUTH_TOKEN= ``` ``` # forge.yaml model: google/gemini-2.5-pro ``` **可用模型:** - Claude 模型: `claude-sonnet-4@20250514` - Gemini 模型: `gemini-2.5-pro`, `gemini-2.0-flash` 在 Forge CLI 中使用 `/model` 命令查看所有可用模型。
OpenAI 兼容 Provider ``` # .env OPENAI_API_KEY= OPENAI_URL= ``` ``` # forge.yaml model: ```
Groq ``` # .env OPENAI_API_KEY= OPENAI_URL=https://api.groq.com/openai/v1 ``` ``` # forge.yaml model: deepseek-r1-distill-llama-70b ```
Amazon Bedrock 要在 Forge 中使用 Amazon Bedrock 模型,您需要先设置 [Bedrock Access Gateway](https://github.com/aws-samples/bedrock-access-gateway): 1. **设置 Bedrock Access Gateway**: - 按照 [Bedrock Access Gateway repo](https://github.com/aws-samples/bedrock-access-gateway) 中的部署步骤操作 - 在 Secrets Manager 中创建您自己的 API key - 部署 CloudFormation stack - 从 CloudFormation 输出中记下您的 API Base URL 2. **在 Forge 中配置**: forge provider login # 选择 OpenAI-compatible provider 并输入您的 Bedrock Gateway 详情 **旧版 `.env` 设置:** ``` # .env OPENAI_API_KEY= OPENAI_URL= ``` ``` # forge.yaml model: anthropic.claude-3-opus ```
ForgeCode Services ``` # .env FORGE_API_KEY= ``` ``` # forge.yaml model: claude-3.7-sonnet ```
### forge.yaml 配置选项 ### 环境变量 Forge 支持多种用于高级配置和微调的环境变量。这些可以在您的 `.env` 文件或系统环境中设置。
重试配置 控制 Forge 如何处理失败请求的重试逻辑: ``` # .env FORGE_RETRY_INITIAL_BACKOFF_MS=1000 # Initial backoff time in milliseconds (default: 1000) FORGE_RETRY_BACKOFF_FACTOR=2 # Multiplier for backoff time (default: 2) FORGE_RETRY_MAX_ATTEMPTS=3 # Maximum retry attempts (default: 3) FORGE_SUPPRESS_RETRY_ERRORS=false # Suppress retry error messages (default: false) FORGE_RETRY_STATUS_CODES=429,500,502 # HTTP status codes to retry (default: 429,500,502,503,504) ```
HTTP 配置 微调用于 API 请求的 HTTP client 行为: ``` # forge.yaml FORGE_HTTP_CONNECT_TIMEOUT=30 # Connection timeout in seconds (default: 30) FORGE_HTTP_READ_TIMEOUT=900 # Read timeout in seconds (default: 900) FORGE_HTTP_POOL_IDLE_TIMEOUT=90 # Pool idle timeout in seconds (default: 90) FORGE_HTTP_POOL_MAX_IDLE_PER_HOST=5 # Max idle connections per host (default: 5) FORGE_HTTP_MAX_REDIRECTS=10 # Maximum redirects to follow (default: 10) FORGE_HTTP_USE_HICKORY=false # Use Hickory DNS resolver (default: false) FORGE_HTTP_TLS_BACKEND=default # TLS backend: "default" or "rustls" (default: "default") FORGE_HTTP_MIN_TLS_VERSION=1.2 # Minimum TLS version: "1.0", "1.1", "1.2", "1.3" FORGE_HTTP_MAX_TLS_VERSION=1.3 # Maximum TLS version: "1.0", "1.1", "1.2", "1.3" FORGE_HTTP_ADAPTIVE_WINDOW=true # Enable HTTP/2 adaptive window (default: true) FORGE_HTTP_KEEP_ALIVE_INTERVAL=60 # Keep-alive interval in seconds (default: 60, use "none"/"disabled" to disable) FORGE_HTTP_KEEP_ALIVE_TIMEOUT=10 # Keep-alive timeout in seconds (default: 10) FORGE_HTTP_KEEP_ALIVE_WHILE_IDLE=true # Keep-alive while idle (default: true) FORGE_HTTP_ACCEPT_INVALID_CERTS=false # Accept invalid certificates (default: false) - USE WITH CAUTION FORGE_HTTP_ROOT_CERT_PATHS=/path/to/cert1.pem,/path/to/cert2.crt # Paths to root certificate files (PEM, CRT, CER format), multiple paths separated by commas ```
API 配置 覆盖默认的 API 端点和 provider/模型设置: ``` # .env FORGE_API_URL=https://api.forgecode.dev # Custom Forge API URL (default: https://api.forgecode.dev) FORGE_WORKSPACE_SERVER_URL=http://localhost:8080 # URL for the indexing server (default: https://api.forgecode.dev/) ```
Tool 配置 配置工具调用设置: ``` # .env FORGE_TOOL_TIMEOUT=300 # Maximum execution time in seconds for a tool before it is terminated to prevent hanging the session. (default: 300) FORGE_MAX_IMAGE_SIZE=262144 # Maximum image file size in bytes for read_image operations (default: 262144 - 256 KB) FORGE_DUMP_AUTO_OPEN=false # Automatically open dump files in browser (default: false) FORGE_DEBUG_REQUESTS=/path/to/debug/requests.json # Write debug HTTP request files to specified path (supports absolute and relative paths) ```
ZSH 插件配置 配置 ZSH 插件行为: ``` # .env FORGE_BIN=forge # Command to use for forge operations (default: "forge") ``` `FORGE_BIN` 环境变量允许您自定义 ZSH 插件在转换以 `#` 为前缀的命令时使用的命令。如果未设置,则默认为 `"forge"`。
显示配置 配置 Forge UI 和 ZSH 主题的显示选项: ``` # .env FORGE_CURRENCY_SYMBOL="$" # Currency symbol for cost display in ZSH theme (default: "$") FORGE_CURRENCY_CONVERSION_RATE=1.0 # Conversion rate for currency display (default: 1.0) NERD_FONT=1 # Enable Nerd Font icons in ZSH theme (default: auto-detected, set to "1" or "true" to enable, "0" or "false" to disable) USE_NERD_FONT=1 # Alternative variable for enabling Nerd Font icons (same behavior as NERD_FONT) ``` `FORGE_CURRENCY_SYMBOL` 和 `FORGE_CURRENCY_CONVERSION_RATE` 变量控制 ZSH 主题右侧提示中成本的显示方式。使用这些变量为您所在的地区或首选货币自定义货币显示。
系统配置 系统级环境变量(通常自动设置): ``` # .env FORGE_MAX_SEARCH_RESULT_BYTES=10240 # Maximum bytes for search results (default: 10240 - 10 KB) FORGE_HISTORY_FILE=/path/to/history # Custom path for Forge history file (default: uses system default location) FORGE_BANNER="Your custom banner text" # Custom banner text to display on startup (default: Forge ASCII art) FORGE_MAX_CONVERSATIONS=100 # Maximum number of conversations to show in list (default: 100) FORGE_MAX_LINE_LENGTH=2000 # Maximum characters per line for file read operations (default: 2000) FORGE_STDOUT_MAX_LINE_LENGTH=2000 # Maximum characters per line for shell output (default: 2000) SHELL=/bin/zsh # Shell to use for command execution (Unix/Linux/macOS) COMSPEC=cmd.exe # Command processor to use (Windows) ```
语义搜索配置 配置用于代码理解的语义搜索行为: ``` # .env FORGE_SEM_SEARCH_LIMIT=200 # Maximum number of results to return from initial vector search (default: 200) FORGE_SEM_SEARCH_TOP_K=20 # Top-k parameter for relevance filtering during semantic search (default: 20) ```
日志配置 配置日志详细程度和输出: ``` # .env FORGE_LOG=forge=info # Log filter level (default: forge=debug when tracking disabled, forge=info when tracking enabled) ``` `FORGE_LOG` 变量使用标准 tracing filter 语法控制 Forge 内部操作的日志级别。常用值: - `forge=error` - 仅错误 - `forge=warn` - 警告和错误 - `forge=info` - 信息性消息(启用跟踪时的默认值) - `forge=debug` - 调试信息(禁用跟踪时的默认值) - `forge=trace` - 详细追踪
`forge.yaml` 文件支持多种高级配置选项,允许您自定义 Forge 的行为。
自定义规则 添加所有 agent 在生成响应时应遵循的您自己的准则。 ``` # .env custom_rules: | 1. Always add comprehensive error handling to any code you write. 2. Include unit tests for all new functions. 3. Follow our team's naming convention: camelCase for variables, PascalCase for classes. ```
命令 将自定义命令定义为重复性 prompt 的快捷方式: ``` # .env commands: - name: "refactor" description: "Refactor selected code" prompt: "Please refactor this code to improve readability and performance" ```
模型 指定用于工作流中所有 agent 的默认 AI 模型。 ``` # forge.yaml model: "claude-3.7-sonnet" ```
最大遍历深度 控制 Forge 在收集上下文时遍历项目目录结构的深度。 ``` # forge.yaml max_walker_depth: 3 # Limit directory traversal to 3 levels deep ```
Temperature 调整 AI 响应中的创造性和随机性。较低的值 (0.0-0.3) 产生更专注、确定性的输出,而较高的值 (0.7-2.0) 生成更多样化和创造性的结果。 ``` # forge.yaml temperature: 0.7 # Balanced creativity and focus ```
Tool 最大失败限制 控制一个 tool 在 Forge 强制完成以防止无限重试循环之前可以失败多少次。这有助于避免 agent 陷入重复尝试同一失败操作的情况。 ``` # forge.yaml max_tool_failure_per_turn: 3 # Allow up to 3 failures per tool before forcing completion ``` 如果您希望有更多的重试次数,请设置为较高的值;如果您希望更快地检测到失败,请设置为较低的值。
每轮最大请求数 限制一个 agent 在单次对话轮次中可以发出的最大请求数。这可以防止失控的对话,并有助于控制 API 使用量和成本。 ``` # forge.yaml max_requests_per_turn: 50 # Allow up to 50 requests per turn ``` 当达到此限制时,Forge 将: - 询问您是否希望继续 - 如果您回答 'Yes',它将继续对话 - 如果您回答 'No',它将结束对话
Model Context Protocol (MCP) MCP 功能允许 AI agent 与外部工具和服务进行通信。此实现遵循 Anthropic 的 [Model Context Protocol](https://docs.anthropic.com/en/docs/claude-code/tutorials#set-up-model-context-protocol-mcp) 设计。 ### MCP 配置 使用 CLI 配置 MCP server: ``` # forge.yaml forge mcp list # forge.yaml forge mcp add # 列出所有 MCP servers forge mcp add-json # 添加新 server forge mcp get # 使用 JSON 格式添加 server forge mcp remove ``` 或手动创建具有以下结构的 `.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. 本地配置(特定于项目) 2. 用户配置(特定于用户) ### 示例用例 MCP 可用于各种集成: - Web 浏览器自动化 - 外部 API 交互 - 工具集成 - 自定义服务连接### 在多智能体工作流中的使用 MCP 工具可以作为多智能体工作流的一部分使用,允许专门的 agent 作为协作问题解决方法的一部分与外部系统进行交互。
## 文档 有关所有功能和能力的全面文档,请访问 [文档站点](https://github.com/antinomyhq/forge/tree/main/docs)。 ## 社区 加入我们要活跃的 Discord 社区,与其他 Forge 用户和贡献者联系,获得项目帮助,分享想法并提供反馈! [![Discord](https://img.shields.io/discord/1044859667798568962?style=for-the-badge&cacheSeconds=120&logo=discord)](https://discord.gg/kRZBPpkgwq) ## 支持我们 您的支持推动了 Forge 的持续发展!通过 Star 我们的 GitHub 仓库,您: - 帮助其他人发现这个强大的工具 🔍 - 激励我们的开发团队 💪 - 使我们能够优先考虑新功能 🛠️ - 壮大我们的开源社区 🌱
标签:AI编程助手, Claude, CLI, CVE检测, DeepSeek, DLL 劫持, DNS解析, Gemini, GPT, Grok, MCP, Redis利用, WiFi技术, YAML配置, 代码生成, 代码补全, 代码重构, 可视化界面, 多模型支持, 大语言模型, 威胁情报, 开发者工具, 开源项目, 效率工具, 数据管道, 文档结构分析, 渗透测试工具, 漏洞管理, 熵值分析, 终端, 终端开发环境, 自动编程, 软件工程, 通知系统, 通知系统