Epic: Codex CLI vs ForgeCode Feature Comparison
Track features that OpenAI Codex CLI has and their status in ForgeCode. Use this issue to identify gaps and prioritize development.
Legend
Core CLI Features
| Feature |
Codex CLI |
ForgeCode |
Status |
Notes |
| Interactive TUI |
Yes |
Yes |
[x] |
|
| Non-interactive mode |
Yes (codex exec) |
Yes (forge -p) |
[x] |
|
| Session resume |
Yes (codex resume) |
Yes (--conversation-id) |
[x] |
|
| Session fork |
Yes (codex fork) |
Yes (conversation clone) |
[x] |
conversation clone <id> creates new conversation with new ID. Task tool session_id allows subagent resume. |
| Named sessions |
Yes |
Yes (conversation rename) |
[x] |
conversation rename <id> <name> |
| Session list |
Yes |
Yes (conversation list [--porcelain]) |
[x] |
|
| Pipe input |
Yes |
Yes |
[x] |
|
| Output formats |
Yes (text, json) |
Partial (--porcelain, conversation dump --html) |
[~] |
--porcelain on most subcommands, JSON/HTML export via conversation dump. No stream-json event streaming. |
| Model selection |
Yes (--model) |
Yes (via config) |
[x] |
|
| Agent selection |
Yes |
Yes (--agent) |
[x] |
|
| Verbose/debug mode |
Yes |
Yes (--verbose) |
[x] |
|
| Ask-for-approval mode |
Yes (--ask-for-approval) |
Yes (Policy Confirm) |
[x] |
Policy::Confirm with All/Any/Not operators. crates/forge_domain/src/policies/policy.rs |
| Image input |
Yes (--image) |
Yes (InputModality::Image) |
[x] |
fs_read tool reads images when model supports it. max_image_size_bytes configurable. crates/forge_domain/src/model.rs, crates/forge_domain/src/image.rs |
| Web search tool |
Yes (--search) |
No |
[ ] |
ForgeCode has Fetch tool for URL content retrieval, but no built-in web search. |
| Reasoning effort control |
Yes |
Yes (forge config set reasoning-effort) |
[x] |
Effort enum: none/minimal/low/medium/high/xhigh/max. max_tokens, exclude, enabled. crates/forge_config/src/reasoning.rs |
| Auto-update |
Yes |
Yes (forge update) |
[x] |
|
Sandbox & Security
| Feature |
Codex CLI |
ForgeCode |
Status |
Notes |
| Sandbox modes |
Yes (--sandbox read-only/workspace-write/danger-full-access) |
Yes (--sandbox <name> git worktree + Policy) |
[x] |
--sandbox <name> creates git worktree. Policy enum (Allow/Deny/Confirm) with All/Any/Not operators. crates/forge_main/src/sandbox.rs |
| Auto-review (sandbox) |
Yes |
No |
[ ] |
|
| Cyber safety checks |
Yes |
No |
[ ] |
|
| Security plugin |
Yes (Codex Security) |
No |
[ ] |
|
| Permission rules |
Yes |
Yes (Policy system) |
[x] |
|
| Hooks system |
Yes (user-configurable) |
Yes (internal EventHandle/Hook) |
[~] |
on_start, on_end, on_request, on_response, on_toolcall_start, on_toolcall_end. Built-in: CompactionHandler, DoomLoopDetector, TitleGenerationHandler. crates/forge_domain/src/hook.rs. Not user-configurable yet. |
Agent & Subagent Features
| Feature |
Codex CLI |
ForgeCode |
Status |
Notes |
| Subagents |
Yes |
Yes (task tool) |
[x] |
task tool with agent_id + session_id for resume. |
| Workflows |
Yes |
No |
[ ] |
|
| Custom subagent definitions |
Yes |
Yes (.forge/agents/) |
[x] |
|
Memory & Context
| Feature |
Codex CLI |
ForgeCode |
Status |
Notes |
| AGENTS.md |
Yes |
Yes |
[x] |
|
| Auto memory |
Yes |
Yes (TitleGenerationHandler) |
[x] |
Auto-generates conversation title. crates/forge_app/src/hooks/title_generation.rs |
| Memories (persistent) |
Yes |
No |
[ ] |
|
| Chronicle (memory history) |
Yes |
No |
[ ] |
|
| Context compaction |
Yes |
Yes (conversation compact <id>) |
[x] |
Compact + Compactor engine, CompactionStrategy (Evict/Retain/Min/Max), CompactionHandler hook. crates/forge_domain/src/compact/ |
| Checkpointing (file rewind) |
No |
Yes (fs_undo tool + forge_snaps) |
[x] |
FSUndo in ToolCatalog, SnapshotService. ForgeCode advantage |
Tools & Integrations
| Feature |
Codex CLI |
ForgeCode |
Status |
Notes |
| MCP support |
Yes |
Yes |
[x] |
McpServerConfig::{Stdio, Http} transports. crates/forge_domain/src/mcp.rs |
| MCP server mode |
Yes (codex mcp-server) |
Yes |
[x] |
crates/forge_infra/src/mcp_server.rs |
| MCP OAuth |
No |
Yes (mcp login/mcp logout) |
[x] |
OAuth device/code/PKCE, refresh, custom headers. ForgeCode advantage |
| Shell/command execution |
Yes |
Yes |
[x] |
|
| File read/write |
Yes |
Yes |
[x] |
|
| Apply patch tool |
Yes (codex apply) |
Yes (Patch, MultiPatch, Undo tools) |
[x] |
Patch, MultiPatch, Undo in ToolCatalog. crates/forge_domain/src/tools/catalog.rs |
| Code review |
Yes (codex review) |
Yes (via subagents) |
[x] |
|
| Web fetch |
No |
Yes (Fetch tool) |
[x] |
NetFetch with robots.txt respect, markdown conversion. ForgeCode advantage |
| Computer use |
Yes |
No |
[ ] |
|
| Browser automation |
Yes (in-app browser) |
No |
[ ] |
|
| Chrome extension |
Yes |
No |
[ ] |
|
| GitHub integration |
Yes |
No |
[ ] |
|
| Slack integration |
Yes |
No |
[ ] |
|
| Linear integration |
Yes |
No |
[ ] |
|
| Custom tools |
Yes |
Yes (16 tools in ToolCatalog) |
[x] |
Read, Write, FsSearch, SemSearch, Remove, Patch, MultiPatch, Undo, Shell, Fetch, Followup, PlanCreate, SkillFetch, TodoWrite, TodoRead, Task. |
| Skills |
Yes |
Yes |
[x] |
Skills in .forge/skills/, skill_fetch tool. |
| Plugins |
Yes |
Yes (skills + shell plugin) |
[~] |
|
| Sites (web knowledge) |
Yes |
No |
[ ] |
|
| Tool search (dynamic) |
Yes |
No |
[ ] |
|
Platform & Interfaces
| Feature |
Codex CLI |
ForgeCode |
Status |
Notes |
| VS Code extension |
Yes |
Yes (forge vscode install-extension) |
[x] |
|
| IDE extension (general) |
Yes |
No |
[ ] |
|
| Desktop app |
Yes (Codex App) |
No |
[ ] |
|
| Web interface |
Yes (Codex Cloud) |
No |
[ ] |
|
| Appshots (snapshots) |
Yes |
No |
[ ] |
|
| Worktrees (in-app) |
Yes |
Yes (--sandbox) |
[x] |
|
SDK & Automation
| Feature |
Codex CLI |
ForgeCode |
Status |
Notes |
| Codex SDK |
Yes |
No |
[ ] |
|
| App server mode |
Yes (codex app-server) |
No |
[ ] |
|
| Non-interactive mode (CI) |
Yes |
Yes (forge -p + forge data) |
[x] |
|
| GitHub Action |
Yes |
No |
[ ] |
|
| Remote control |
Yes (codex remote-control) |
No |
[ ] |
|
| Cloud tasks |
Yes (codex cloud) |
No |
[ ] |
|
Provider & Model Support
| Feature |
Codex CLI |
ForgeCode |
Status |
Notes |
| OpenAI models |
Yes |
Yes |
[x] |
|
| Local/offline models |
Yes (--oss, LM Studio, Ollama) |
Yes (43 providers) |
[x] |
ollama, lm_studio, llama_cpp, vllm, jan_ai in provider list. crates/forge_repo/src/provider/provider.json |
| Amazon Bedrock |
Yes |
Yes |
[x] |
|
| Multi-provider routing |
No (OpenAI-primary) |
Yes (43 providers) |
[x] |
ForgeCode advantage |
| Custom provider endpoints |
Yes (--local-provider) |
Yes |
[x] |
|
| Model configuration |
Yes |
Yes |
[x] |
|
| Auth methods |
Yes |
Yes (6 methods) |
[x] |
ApiKey, OAuthDevice, OAuthCode, GoogleAdc, AwsProfile, CodexDevice. crates/forge_domain/src/auth/auth_method.rs |
Enterprise & Admin
| Feature |
Codex CLI |
ForgeCode |
Status |
Notes |
| Enterprise admin setup |
Yes |
No |
[ ] |
|
| Governance |
Yes |
No |
[ ] |
|
| Managed configuration |
Yes |
No |
[ ] |
|
| Access tokens |
Yes |
No |
[ ] |
|
| Agent approvals & security |
Yes |
No |
[ ] |
|
| Remote connections |
Yes |
No |
[ ] |
|
| Windows support |
Yes |
Partial |
[~] |
|
| Cost tracking |
No |
Yes (forge info, conversation stats) |
[x] |
Usage struct with cost field. ForgeCode advantage |
Configuration
| Feature |
Codex CLI |
ForgeCode |
Status |
Notes |
| Config file |
Yes (codex.yaml) |
Yes |
[x] |
|
| Advanced config |
Yes |
Yes (forge config {set, get, list, path, migrate}) |
[x] |
|
| Environment variables |
Yes |
Yes |
[x] |
|
| Rules system |
Yes |
Yes (AGENTS.md + Policy) |
[x] |
|
| Speed optimization |
Yes |
No |
[ ] |
|
Prompting & Customization
| Feature |
Codex CLI |
ForgeCode |
Status |
Notes |
| Prompting guide |
Yes |
Yes (AGENTS.md) |
[x] |
|
| Customization options |
Yes |
Yes |
[x] |
|
| Slash commands |
Yes |
Yes |
[x] |
|
| Plan tool |
No |
Yes (PlanCreate) |
[x] |
ForgeCode advantage |
| Doom-loop detection |
No |
Yes (DoomLoopDetector) |
[x] |
Detects [A,A,A,A] and [A,B,C][A,B,C][A,B,C] patterns. ForgeCode advantage |
| Interactive fuzzy picker |
No |
Yes (forge select) |
[x] |
forge select {model, agent, provider, reasoning-effort, command, conversation, file}. ForgeCode advantage |
| Shell plugin |
No |
Yes (full ZSH plugin) |
[x] |
shell-plugin/ with theme, plugin, keyboard, dispatcher, actions, context, completion, highlight, config, helpers, bindings. ForgeCode advantage |
| Theme customization |
No |
Yes (forge.theme.zsh) |
[x] |
ForgeCode advantage |
| Structured data pipeline |
No |
Yes (forge data) |
[x] |
JSONL schema-constrained batches. ForgeCode advantage |
| AI commit messages |
No |
Yes (forge commit) |
[x] |
ForgeCode advantage |
| NL to shell |
No |
Yes (forge suggest) |
[x] |
ForgeCode advantage |
| Semantic code search |
No |
Yes (workspace query) |
[x] |
Embedding-based workspace search. ForgeCode advantage |
| Diagnostics |
No |
Yes (forge doctor, forge zsh doctor, forge logs) |
[x] |
ForgeCode advantage |
Summary
ForgeCode already has: ~45 features
ForgeCode is missing: ~20 features
Partial implementation: ~3 features
Top Priority Missing Features (by impact)
- Web search tool (
--search) - High value for real-time information
- Codex SDK - Critical for automation
- App server mode (headless) - Important for CI/CD automation
- GitHub Action - Important for CI/CD workflows
- Workflows (orchestrated multi-step) - High value for complex tasks
- Desktop app - Important for UX
- Web interface (Cloud) - Important for accessibility
- Memories / Chronicle - Important for persistent learning
- In-app browser - Important for web workflows
- Chrome extension - Important for browsing workflows
ForgeCode Unique Advantages (not in Codex CLI)
- 43 provider support (vs Codex OpenAI-primary)
- Multi-model routing across providers
- MCP server mode + MCP OAuth (login/logout)
- Semantic code search (workspace indexing via embeddings)
- Doom-loop detection (automatic stuck-pattern breaker)
- Interactive fuzzy picker (
forge select)
- Full shell plugin (ZSH theme, plugin, keyboard bindings, dispatcher, actions)
- Plan tool (
PlanCreate)
forge data (JSONL schema-constrained data processing pipeline)
forge commit (AI-generated commit messages)
forge suggest (NL to shell command)
- Web fetch (built-in
Fetch tool with robots.txt respect)
- Checkpointing (
fs_undo + forge_snaps)
- Cost tracking (
Usage + conversation stats)
- Config migration (
forge config migrate)
- Diagnostics (
forge doctor, forge zsh doctor, forge logs)
- Theme customization (
forge.theme.zsh)
Cross-references
Co-Authored-By: ForgeCode noreply@forgecode.dev
Epic: Codex CLI vs ForgeCode Feature Comparison
Track features that OpenAI Codex CLI has and their status in ForgeCode. Use this issue to identify gaps and prioritize development.
Legend
Core CLI Features
codex exec)forge -p)codex resume)--conversation-id)codex fork)conversation clone)conversation clone <id>creates new conversation with new ID. Task toolsession_idallows subagent resume.conversation rename)conversation rename <id> <name>conversation list [--porcelain])--porcelain,conversation dump --html)--porcelainon most subcommands, JSON/HTML export viaconversation dump. Nostream-jsonevent streaming.--model)--agent)--verbose)--ask-for-approval)Policy::Confirmwith All/Any/Not operators.crates/forge_domain/src/policies/policy.rs--image)InputModality::Image)fs_readtool reads images when model supports it.max_image_size_bytesconfigurable.crates/forge_domain/src/model.rs,crates/forge_domain/src/image.rs--search)Fetchtool for URL content retrieval, but no built-in web search.forge config set reasoning-effort)Effortenum: none/minimal/low/medium/high/xhigh/max.max_tokens,exclude,enabled.crates/forge_config/src/reasoning.rsforge update)Sandbox & Security
--sandbox read-only/workspace-write/danger-full-access)--sandbox <name>git worktree + Policy)--sandbox <name>creates git worktree.Policyenum (Allow/Deny/Confirm) with All/Any/Not operators.crates/forge_main/src/sandbox.rson_start,on_end,on_request,on_response,on_toolcall_start,on_toolcall_end. Built-in: CompactionHandler, DoomLoopDetector, TitleGenerationHandler.crates/forge_domain/src/hook.rs. Not user-configurable yet.Agent & Subagent Features
tasktool)tasktool withagent_id+session_idfor resume..forge/agents/)Memory & Context
crates/forge_app/src/hooks/title_generation.rsconversation compact <id>)crates/forge_domain/src/compact/fs_undotool +forge_snaps)FSUndoin ToolCatalog, SnapshotService. ForgeCode advantageTools & Integrations
McpServerConfig::{Stdio, Http}transports.crates/forge_domain/src/mcp.rscodex mcp-server)crates/forge_infra/src/mcp_server.rsmcp login/mcp logout)codex apply)Patch,MultiPatch,Undoin ToolCatalog.crates/forge_domain/src/tools/catalog.rscodex review)Fetchtool)NetFetchwith robots.txt respect, markdown conversion. ForgeCode advantage.forge/skills/,skill_fetchtool.Platform & Interfaces
forge vscode install-extension)--sandbox)SDK & Automation
codex app-server)forge -p+forge data)codex remote-control)codex cloud)Provider & Model Support
--oss, LM Studio, Ollama)crates/forge_repo/src/provider/provider.json--local-provider)crates/forge_domain/src/auth/auth_method.rsEnterprise & Admin
forge info,conversation stats)Usagestruct withcostfield. ForgeCode advantageConfiguration
codex.yaml)forge config {set, get, list, path, migrate})Prompting & Customization
PlanCreate)DoomLoopDetector)forge select)forge select {model, agent, provider, reasoning-effort, command, conversation, file}. ForgeCode advantageshell-plugin/with theme, plugin, keyboard, dispatcher, actions, context, completion, highlight, config, helpers, bindings. ForgeCode advantageforge.theme.zsh)forge data)forge commit)forge suggest)workspace query)forge doctor,forge zsh doctor,forge logs)Summary
ForgeCode already has: ~45 features
ForgeCode is missing: ~20 features
Partial implementation: ~3 features
Top Priority Missing Features (by impact)
--search) - High value for real-time informationForgeCode Unique Advantages (not in Codex CLI)
forge select)PlanCreate)forge data(JSONL schema-constrained data processing pipeline)forge commit(AI-generated commit messages)forge suggest(NL to shell command)Fetchtool with robots.txt respect)fs_undo+forge_snaps)Usage+conversation stats)forge config migrate)forge doctor,forge zsh doctor,forge logs)forge.theme.zsh)Cross-references
Co-Authored-By: ForgeCode noreply@forgecode.dev