antinomyhq/forge
GitHub: antinomyhq/forge
一款支持 300+ AI 模型的终端编程助手,帮助开发者在命令行中完成代码理解、调试、重构和审查等任务。
Stars: 4600 | Forks: 1167
⚒️ Forge: AI 增强的终端开发环境
一个将 AI 功能集成到您开发环境中的综合编码代理
curl -fsSL https://forgecode.dev/cli | sh
目录
- [快速入门](#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)代码理解
``` > 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 冲突,解释差异并建议协调它们的最佳方法。旧版环境变量设置(已弃用)
OpenRouter
``` # .env OPENROUTER_API_KEY=Requesty
``` # .env REQUESTY_API_KEY=x-ai
``` # .env XAI_API_KEY=z.ai
``` # .env ZAI_API_KEY=Cerebras
``` # .env CEREBRAS_API_KEY=IO Intelligence
``` # .env IO_INTELLIGENCE_API_KEY=OpenAI
``` # .env OPENAI_API_KEY=Anthropic
``` # .env ANTHROPIC_API_KEY=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=OpenAI 兼容 Provider
``` # .env OPENAI_API_KEY=Groq
``` # .env OPENAI_API_KEY=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=ForgeCode Services
``` # .env FORGE_API_KEY=重试配置
控制 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` - 详细追踪自定义规则
添加所有 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 作为协作问题解决方法的一部分与外部系统进行交互。标签:AI编程助手, Claude, CLI, CVE检测, DeepSeek, DLL 劫持, DNS解析, Gemini, GPT, Grok, MCP, Redis利用, WiFi技术, YAML配置, 代码生成, 代码补全, 代码重构, 可视化界面, 多模型支持, 大语言模型, 威胁情报, 开发者工具, 开源项目, 效率工具, 数据管道, 文档结构分析, 渗透测试工具, 漏洞管理, 熵值分析, 终端, 终端开发环境, 自动编程, 软件工程, 通知系统, 通知系统