Forge: A Terminal Coding Agent That Puts Provider Choice Before Vendor Lock-In
AI enabled pair programmer for Claude, GPT, O Series, Grok, Deepseek, Gemini and 300+ models
At a glance
- What is it?
- Forge is an open-source, Rust-based coding agent that runs in your terminal and works with OpenAI, Anthropic, Grok, DeepSeek, Gemini, and hundreds of models via OpenRouter. It offers three modes and a ZSH plugin, but its real strength is provider flexibility, not novel AI capability.
- Who is it for?
- Adopt Forge if you are a terminal-centric developer who wants one interface across multiple LLM providers and values an open-source, Apache-2.0 licensed tool over a vendor-specific one. Skip it if you need a GUI, a fully managed service, or if you prefer to stay within a single provider's ecosystem.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 2 days ago.
- What is it written in?
- Mainly Rust, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What Forge Actually Solves
Forge addresses a practical annoyance: developers who want AI coding help but do not want to commit to one vendor. The README lists support for Claude, GPT, O Series, Grok, DeepSeek, Gemini, and 300+ models through OpenRouter. That breadth is the core proposition. If you already use Claude Code or GitHub Copilot, you are tied to a single backend. Forge lets you switch providers with a config change, which matters for cost, latency, or model quality differences. The target user is a developer who lives in the terminal, wants AI assistance for code understanding, feature implementation, debugging, and code review, and does not want to leave the shell to get it. The project is written in Rust, which suggests a focus on startup speed and low resource use, though the README does not give benchmark numbers to confirm that.
Three Modes, One Binary
Forge does not force a single interaction pattern. The README describes three distinct modes. Interactive mode runs a terminal UI (TUI) where you type prompts and get responses in a conversational loop. This is the primary mode for multi-step work like refactoring a component or designing a database schema. One-shot CLI mode lets you run a single prompt without entering the TUI, useful for scripting or quick questions. The third mode is a ZSH plugin that adds a ':' prefix system, so you can invoke agents directly from your normal shell prompt. That is a meaningful design choice: it acknowledges that not every AI interaction needs a full session. The trade-off is complexity. Three modes mean three sets of commands and behaviors to learn. The README even says understanding the distinction upfront will save you confusion, which is an honest admission that the tool is not trivial to pick up.
The Colon Prefix System in ZSH
The ZSH plugin is the most distinctive part of Forge. By typing a colon at the shell prompt, you get access to a command language for AI tasks. The README lists agents, sending prompts, attaching files, conversation management, git integration, shell command tools, session configuration, skills, and semantic search for the workspace. The colon prefix turns your shell into an agent control surface. For example, you could attach a file to a prompt or resume a previous conversation without leaving your current directory. This is not a gimmick; it is a way to mix normal shell commands with AI requests in one flow. The git integration is particularly useful: you can ask Forge to explain a merge conflict or draft a commit message while your git state is right there. The cost is that you must run ZSH. Bash users get no such plugin, and the README does not mention a Fish or PowerShell equivalent. That is a real limitation for a tool that claims broad terminal integration.
Getting Started: Commands and Configuration
Installation is a single curl pipe: curl -fsSL https://forgecode.dev/cli | sh. That is convenient but requires trusting the script, which is a security consideration the README does not address. After installation, you run forge provider login to set up credentials interactively, then forge to start. The README also mentions a forge.yaml configuration file, though the exact keys are not shown in the provided material. Environment variables exist but are marked as deprecated, which suggests the project moved to a more structured config. This matters for automation: if you want to use Forge in CI or a non-interactive script, you need to know the forge.yaml schema. The README points to a documentation section but does not inline the full options. For a project that advertises zero configuration, the reality is that provider setup is required, and advanced use demands reading the docs.
Security: Restricted Shell Mode
Forge claims to be secure by design, with a restricted shell mode that limits file system access and prevents unintended changes. That is a crucial claim for an AI agent that can run shell commands on your behalf. The README does not detail what the restricted mode blocks. Does it prevent writes outside the project directory? Does it require approval for every command? The material is silent. That gap is worth flagging. An AI coding agent that can execute commands is a security boundary, and a vague promise of restriction is not enough. You should test the restricted mode in a sandbox before pointing it at a production repository. The fact that the project is open source means you can inspect the code, but the README does not give a security audit or a threat model. Treat this as a feature that needs verification, not a guarantee.
Multi-Provider Support and OpenRouter
The provider list is the headline: Claude, GPT, O Series, Grok, DeepSeek, Gemini, and 300+ models via OpenRouter. OpenRouter is a gateway that aggregates many models behind one API, so Forge can reach models it does not natively integrate with. That is a different approach from tools like Claude Code, which only talks to Anthropic models. The practical benefit is that you can compare model outputs on the same task without changing your tooling. The cost is that you add a dependency on OpenRouter's API stability and pricing. Native provider integrations exist for the major names, but the README does not explain whether each provider uses its own SDK or goes through a common abstraction. That matters for debugging: if a request fails, is the issue in Forge, in the provider SDK, or in OpenRouter? The README does not offer troubleshooting guidance, so you may end up reading source code.
Maintenance, Licensing, and Upgrade Path
Forge is licensed under Apache-2.0, which is permissive and allows commercial use, modification, and distribution without a copyleft obligation. That is a clean choice for a tool you might embed in internal workflows. The repository is active, with the latest release v2.13.21 dated 2026-07-31, and the last push to main was 2026-09-07. The version number 2.13.x suggests a mature project that iterates frequently. Frequent releases mean you will see regular updates, which is good for bug fixes but adds an upgrade cost. The README does not mention an automatic update mechanism, so you must monitor releases and re-run the install script or use a package manager. The project is not archived, and there is a Discord link for community support. However, the README does not list a changelog or migration guide, so upgrading from an older minor version may require reading release notes manually.
Alternatives and the Real Difference
The most obvious alternative is Claude Code, an open-source CLI agent from Anthropic. The README even lists open-source-claude-code as a topic. The difference is not in the interface, both are terminal-based. The difference is provider scope. Claude Code is built for Claude models, and while it may support other models through proxies, that is not its primary design. Forge treats provider flexibility as a first-class feature, with native support for multiple vendors and OpenRouter for long-tail models. Another alternative is a generic MCP client, since Forge supports MCP configuration. An MCP client can connect to any server that implements the Model Context Protocol, which is a different abstraction: instead of Forge knowing how to talk to each provider, the client delegates to MCP servers. That is a more modular approach but requires you to assemble the pieces. Forge bundles the agents and tools into one binary, which is simpler to start but less customizable.
Where Forge Fits and Where It Does Not
Forge is for developers who already work in a terminal and want AI help without leaving that environment. It is also for teams that want to avoid vendor lock-in and compare models on real tasks. It is not for developers who prefer a graphical IDE integration, because the README only shows terminal usage. It is also not for people who want a zero-config tool, because provider credentials and a config file are required. The restricted shell mode is a differentiator, but only if it works as advertised. The ZSH plugin is a power feature, but it excludes Bash and other shells. If you use a different shell, you lose the colon prefix system and must rely on the TUI or one-shot mode. The project is open source and actively maintained, which is a positive sign, but the documentation in the README is incomplete on config details and security specifics. You will need to consult the full documentation at forgecode.dev to make an informed decision.
Editorial conclusion
Adopt Forge if you are a terminal-centric developer who wants one interface across multiple LLM providers and values an open-source, Apache-2.0 licensed tool over a vendor-specific one. Skip it if you need a GUI, a fully managed service, or if you prefer to stay within a single provider's ecosystem. Before adopting, verify that the restricted shell mode covers the file operations you actually use, and confirm that your preferred provider's API is supported in the current forge.yaml schema. Check the release notes for v2.13.21 to see recent changes, and test the ZSH plugin in a throwaway shell before relying on it daily.
Community notes