rg is blocked by macOS
Open 💬 48 comments Opened Jun 14, 2026 by atacan
💡 Likely answer: A maintainer (etraut-openai, contributor)
responded on this thread — see the highlighted reply below.
What version of Codex CLI is running?
0.139.0
What subscription do you have?
Pro
Which model were you using?
gpt-5.5
What platform is your computer?
macOS
What terminal emulator and version are you using (if applicable)?
iTerm
Codex doctor report
<details>
<summary>
See more...
</summary>
{
"schemaVersion": 1,
"generatedAt": "1781438268s since unix epoch",
"overallStatus": "warning",
"codexVersion": "0.139.0",
"checks": {
"app_server.status": {
"id": "app_server.status",
"category": "app-server",
"status": "ok",
"summary": "background server is not running",
"details": {
"control socket": "/Users/atacan/.codex/app-server-control/app-server-control.sock",
"daemon state dir": "/Users/atacan/.codex/app-server-daemon",
"mode": "ephemeral",
"pid file": "/Users/atacan/.codex/app-server-daemon/app-server.pid (missing)",
"settings": "/Users/atacan/.codex/app-server-daemon/settings.json (missing)",
"status": "not running",
"update-loop pid file": "/Users/atacan/.codex/app-server-daemon/app-server-updater.pid (missing)"
},
"remediation": null,
"durationMs": 0
},
"auth.credentials": {
"id": "auth.credentials",
"category": "auth",
"status": "ok",
"summary": "auth is configured",
"details": {
"auth file": "/Users/atacan/.codex/auth.json",
"auth storage mode": "File",
"stored API key": "false",
"stored ChatGPT tokens": "true",
"stored agent identity": "false",
"stored auth mode": "chatgpt"
},
"remediation": null,
"durationMs": 0
},
"config.load": {
"id": "config.load",
"category": "config",
"status": "ok",
"summary": "config loaded",
"details": {
"CODEX_HOME": "/Users/atacan/.codex",
"config.toml": "/Users/atacan/.codex/config.toml",
"config.toml parse": "ok",
"cwd": "/Users/atacan/Developer/Repositories/Speechall-Repositories/speech-router-hb",
"enabled feature flags": "shell_tool, unified_exec, shell_snapshot, terminal_resize_reflow, sqlite, hooks, enable_request_compression, multi_agent, tool_suggest, plugins, in_app_browser, browser_use, browser_use_external, computer_use, plugin_sharing, image_generation, skill_mcp_dependency_install, steer, guardian_approval, goals, collaboration_modes, tool_call_mcp_elicitation, personality, fast_mode, tui_app_server, workspace_dependencies",
"feature flag overrides": "apps=false",
"feature flags enabled": "26",
"log dir": "/Users/atacan/.codex/log",
"mcp servers": "1",
"model": "gpt-5.5",
"model provider": "openai",
"sqlite home": "/Users/atacan/.codex"
},
"remediation": null,
"durationMs": 0
},
"git.environment": {
"id": "git.environment",
"category": "git",
"status": "ok",
"summary": "git version 2.50.1 (Apple Git-155)",
"details": {
".git entry": "directory",
"PATH git #1": "/usr/bin/git",
"PATH git entries": "1",
"git branch": "main",
"git build options": "git version 2.50.1 (Apple Git-155); cpu: arm64; no commit associated with this build; sizeof-long: 8; sizeof-size_t: 8; shell-path: /bin/sh; feature: fsmonitor--daemon; libcurl: 8.7.1; zlib: 1.2.12; SHA-1: SHA1_DC; SHA-256: SHA256_BLK",
"git exec path": "/Applications/Xcode-26.5.0.app/Contents/Developer/usr/libexec/git-core",
"git version": "git version 2.50.1 (Apple Git-155)",
"repo detected": "true",
"repo root": "/Users/atacan/Developer/Repositories/Speechall-Repositories/speech-router-hb",
"selected git": "/usr/bin/git"
},
"remediation": null,
"durationMs": 10
},
"installation": {
"id": "installation",
"category": "install",
"status": "ok",
"summary": "installation looks consistent",
"details": {
"PATH codex #1": "/opt/homebrew/bin/codex",
"current executable": "/opt/homebrew/bin/codex",
"install context": "brew (package /opt/homebrew/Caskroom/codex/0.139.0, bin /opt/homebrew/Caskroom/codex/0.139.0/bin, resources /opt/homebrew/Caskroom/codex/0.139.0/codex-resources, path /opt/homebrew/Caskroom/codex/0.139.0/codex-path)",
"managed by bun": "false",
"managed by npm": "false",
"managed package root": "not set"
},
"remediation": null,
"durationMs": 1
},
"mcp.config": {
"id": "mcp.config",
"category": "mcp",
"status": "ok",
"summary": "MCP configuration is locally consistent",
"details": {
"configured servers": "1",
"disabled servers": "0",
"stdio servers": "1"
},
"remediation": null,
"durationMs": 0
},
"network.env": {
"id": "network.env",
"category": "network",
"status": "ok",
"summary": "network-related environment looks readable",
"details": {
"proxy env vars": "none"
},
"remediation": null,
"durationMs": 0
},
"network.provider_reachability": {
"id": "network.provider_reachability",
"category": "reachability",
"status": "ok",
"summary": "active provider endpoints are reachable over HTTP",
"details": {
"ChatGPT base URL": "https://chatgpt.com/backend-api/ reachable (HTTP 403)",
"reachability mode": "ChatGPT auth"
},
"remediation": null,
"durationMs": 157
},
"network.websocket_reachability": {
"id": "network.websocket_reachability",
"category": "websocket",
"status": "ok",
"summary": "Responses WebSocket handshake succeeded",
"details": {
"DNS": "2 IPv4, 2 IPv6, first IPv4",
"auth mode": "chatgpt",
"connect timeout": "15000 ms",
"endpoint": "wss://chatgpt.com/backend-api/<redacted>",
"handshake result": "HTTP 101 Switching Protocols",
"model provider": "openai",
"models etag present": "true",
"provider name": "OpenAI",
"proxy env vars": "none",
"reasoning header": "false",
"server model present": "false",
"supports websockets": "true",
"wire API": "responses"
},
"remediation": null,
"durationMs": 694
},
"runtime.provenance": {
"id": "runtime.provenance",
"category": "runtime",
"status": "ok",
"summary": "running brew on macos-aarch64",
"details": {
"commit": "unknown",
"current executable": "/opt/homebrew/bin/codex",
"install method": "brew (package /opt/homebrew/Caskroom/codex/0.139.0, bin /opt/homebrew/Caskroom/codex/0.139.0/bin, resources /opt/homebrew/Caskroom/codex/0.139.0/codex-resources, path /opt/homebrew/Caskroom/codex/0.139.0/codex-path)",
"platform": "macos-aarch64",
"version": "0.139.0"
},
"remediation": null,
"durationMs": 0
},
"runtime.search": {
"id": "runtime.search",
"category": "search",
"status": "ok",
"summary": "search is OK (bundled)",
"details": {
"search command": "/opt/homebrew/Caskroom/codex/0.139.0/codex-path/rg",
"search command readiness": "file exists",
"search provider": "bundled"
},
"remediation": null,
"durationMs": 0
},
"sandbox.helpers": {
"id": "sandbox.helpers",
"category": "sandbox",
"status": "ok",
"summary": "sandbox configuration is readable",
"details": {
"approval policy": "Never",
"codex-linux-sandbox helper": "none",
"execve wrapper helper": "/Users/atacan/.codex/tmp/arg0/codex-arg0D9WDD4/codex-execve-wrapper",
"filesystem sandbox": "unrestricted",
"network sandbox": "enabled"
},
"remediation": null,
"durationMs": 0
},
"state.paths": {
"id": "state.paths",
"category": "state",
"status": "ok",
"summary": "state paths and databases are inspectable",
"details": {
"CODEX_HOME": "/Users/atacan/.codex (dir)",
"active rollout files": "618 files, 754308534 total bytes, 1220563 average bytes",
"archived rollout files": "52 files, 19863711 total bytes, 381994 average bytes",
"goals DB": "/Users/atacan/.codex/goals_1.sqlite (file)",
"goals DB integrity": "ok",
"log DB": "/Users/atacan/.codex/logs_2.sqlite (file)",
"log DB integrity": "ok",
"log dir": "/Users/atacan/.codex/log (dir)",
"memories DB": "/Users/atacan/.codex/memories_1.sqlite (file)",
"memories DB integrity": "ok",
"sqlite home": "/Users/atacan/.codex (dir)",
"state DB": "/Users/atacan/.codex/state_5.sqlite (file)",
"state DB integrity": "ok"
},
"remediation": null,
"durationMs": 127
},
"state.rollout_db_parity": {
"id": "state.rollout_db_parity",
"category": "threads",
"status": "warning",
"summary": "rollout files and state DB thread inventory differ",
"details": {
"default model provider": "openai",
"rollout DB active files": "612",
"rollout DB active rows": "596",
"rollout DB archive mismatches": "0",
"rollout DB archived files": "52",
"rollout DB archived rows": "51",
"rollout DB duplicate DB paths": "0",
"rollout DB duplicate rollout thread ids": "0",
"rollout DB malformed file names": "0",
"rollout DB missing active rows": "16",
"rollout DB missing active sample": [
"/Users/atacan/.codex/sessions/2026/06/13/rollout-2026-06-13T16-52-49-019ec178-a593-7c82-829e-77c35485bf3d.jsonl",
"/Users/atacan/.codex/sessions/2026/06/13/rollout-2026-06-13T16-13-09-019ec154-545f-7db3-acde-20c780a6b48c.jsonl",
"/Users/atacan/.codex/sessions/2026/06/13/rollout-2026-06-13T14-54-48-019ec10c-97dc-7983-8ba8-2acc58ab1cd1.jsonl",
"/Users/atacan/.codex/sessions/2026/06/13/rollout-2026-06-13T14-39-16-019ec0fe-607b-7cf0-8b49-a9ff52b4d9d5.jsonl",
"/Users/atacan/.codex/sessions/2026/06/13/rollout-2026-06-13T14-42-18-019ec101-256b-7583-87f4-81af99d58a6b.jsonl"
],
"rollout DB missing archived rows": "1",
"rollout DB missing archived sample": "/Users/atacan/.codex/archived_sessions/rollout-2026-06-13T13-13-47-019ec0b0-1a08-7683-89f9-1b8d377b8db9.jsonl",
"rollout DB model providers": "openai=647",
"rollout DB rows": "647",
"rollout DB scan cap reached": "false",
"rollout DB scan error sample": [
"/Users/atacan/.codex/sessions/2025/09/06/rollout-2025-09-06T10-09-39-39472550-9b3a-4266-892a-f421ea2627f2.jsonl (no parseable rollout items)",
"/Users/atacan/.codex/sessions/2025/09/06/rollout-2025-09-06T10-08-51-87ecac90-f99a-446e-98d2-fea4b17f64ee.jsonl (no parseable rollout items)",
"/Users/atacan/.codex/sessions/2025/09/20/rollout-2025-09-20T10-57-43-cfb92fe8-ce69-4891-8c2c-fbc78859688a.jsonl (no parseable rollout items)",
"/Users/atacan/.codex/sessions/2025/09/20/rollout-2025-09-20T10-58-01-9d478252-8a75-4f17-bf53-b01d128adda6.jsonl (no parseable rollout items)",
"/Users/atacan/.codex/sessions/2025/10/03/rollout-2025-10-03T18-00-46-0dea519c-efe7-4560-9fa4-dad1a627cbc4.jsonl (no parseable rollout items)"
],
"rollout DB scan errors": "6",
"rollout DB sources": "vscode=534, cli=58, subagent:thread_spawn=31, subagent:other=21, exec=3",
"rollout DB stale rows": "0"
},
"issues": [
{
"severity": "warning",
"cause": "rollout files are missing from the state DB",
"measured": "16 active, 1 archived",
"expected": "every rollout file has a matching threads row",
"remedy": null,
"fields": []
},
{
"severity": "warning",
"cause": "rollout scan was incomplete or found bad files",
"measured": "6 scan errors, 0 malformed names, scan cap reached: false",
"expected": "rollout directories are fully scannable",
"remedy": "Check file permissions and unexpected files under CODEX_HOME sessions.",
"fields": []
}
],
"remediation": null,
"durationMs": 1867
},
"system.environment": {
"id": "system.environment",
"category": "system",
"status": "ok",
"summary": "OS language en-US",
"details": {
"EDITOR": "not set",
"LANG": "en_US.UTF-8",
"VISUAL": "not set",
"os": "Mac OS 26.5.1 [64-bit]",
"os language": "en-US",
"os type": "Mac OS",
"os version": "26.5.1"
},
"remediation": null,
"durationMs": 1
},
"terminal.env": {
"id": "terminal.env",
"category": "terminal",
"status": "ok",
"summary": "terminal metadata was detected",
"details": {
"COLORFGBG": "15;0",
"COLORTERM": "truecolor",
"TERMINFO_DIRS entry": [
"/Applications/iTerm.app/Contents/Resources/terminfo (dir)",
"/usr/share/terminfo (dir)"
],
"TERM_PROGRAM": "iTerm.app",
"color output": "disabled (stdout is not a terminal)",
"effective locale": "en_US.UTF-8",
"stderr is terminal": "true",
"stdin is terminal": "true",
"stdout is terminal": "false",
"terminal": "iTerm2",
"terminal size": "120x43",
"terminal version": "3.6.11"
},
"remediation": null,
"durationMs": 0
},
"terminal.title": {
"id": "terminal.title",
"category": "title",
"status": "ok",
"summary": "terminal title default",
"details": {
"terminal title activity": "true",
"terminal title items": "activity, project-name",
"terminal title project source": "git repo root",
"terminal title project value": "speech-router-hb",
"terminal title source": "default"
},
"remediation": null,
"durationMs": 0
},
"updates.status": {
"id": "updates.status",
"category": "updates",
"status": "ok",
"summary": "update configuration is locally consistent",
"details": {
"cached latest version": "0.139.0",
"check for update on startup": "true",
"last checked at": "2026-06-14T11:52:01.663815Z",
"latest version": "0.139.0",
"latest version status": "current version is not older",
"update action": "brew upgrade --cask codex",
"version cache": "/Users/atacan/.codex/version.json"
},
"remediation": null,
"durationMs": 198
}
}
}
</details>
What issue are you seeing?
When codex searches the repo, MacOS pops an alert window with the following content
<img width="520" height="536" alt="Image" src="https://github.com/user-attachments/assets/aad6da13-f64c-4968-840b-22c2a0833150" />
“rg” Not Opened Apple could not verify “rg” is free of malware that may harm your Mac or compromise your privacy. Move to Trash / Done
What steps can reproduce the bug?
prompt "can you search for the term @Dependency and see how many files have it"
CLI shows
• Exploring
└ Search @Dependency
macOS pops the alert
What is the expected behavior?
_No response_
Additional information
_No response_
48 Comments
I hate sandbox
I hate bloat
I hate anything above 60mbs
I hate modern cpu design
I love nvidia tho
Don’t use codex with iTerm over codex
Use ghostly
ITerm is cancer causing
Same issue here since most recent update (installed via brew).
ATTENTION: there is of course a minor risk because we don't know if
rgwas modified maliciously, or whether just the signing was done improperly. However, I don't see any updates here: https://github.com/burntsushi/ripgrepTemporary hotfix is navigating to System Settings > Privacy Security
There you can add an exception (it's a prompt that shows, just click Allow)
Still happens in ghostty
--
How do I downgrade versions?
Here
https://ghostty.org
בתאריך יום א׳, 14 ביוני 2026 ב-20:06 מאת Michael Ramos <
@.***>:
To be clear, the issue still occurs in ghostty. it is not a fix
Yeah anytime is good to hate on iTerm
Sorry
בתאריך יום א׳, 14 ביוני 2026 ב-20:47 מאת Michael Ramos <
@.***>:
I’m seeing the same issue on macOS after upgrading to Codex 0.139.0 installed via Homebrew cask.
In my case Codex was resolving
rgto the bundled binary first:``
sh
``/opt/homebrew/Caskroom/codex/0.139.0/codex-path/rg
That binary had the com.apple.quarantine xattr, and every rg invocation triggered the macOS warning:
> Apple could not verify “rg” is free of malware that may harm your Mac or compromise your privacy.
This workaround fixed it for me:
``
sh
`xattr -d com.apple.quarantine /opt/homebrew/Caskroom/codex/0.139.0/codex-path/rg
`Or more generally:
sh
``xattr -d com.apple.quarantine "$(whence -p rg)"
After removing the quarantine attribute, rg --version runs normally inside Codex again. This seems to affect the bundled
codex-path/rg, not my regular Homebrew rg.
<img width="268" height="268" alt="Image" src="https://github.com/user-attachments/assets/2a9c1dd4-6918-4836-a8a3-823d775e39d5" />
Crazy
yo is this resolved bruh
I've figured it out myself. The root cause is that Codex uses its own bundled rg:
which rgYou will most likely get a result like:
/opt/homebrew/Caskroom/codex/0.140.0/codex-path/rgxattr -d com.apple.quarantine [result from the previous step]They still need to fix the Apple sloppa that caused it to get detected lol
, do the issue is very much still alive
vaspike left a comment (openai/codex#28190)
This commit might be related?
https://github.com/Homebrew/homebrew-cask/commit/ac32eb284aa5334d177d265409e32fcb75d8bdb3
Agreed with @uuta
This can be confirmed with
Like others dropping the quarantine flag helped:
xattr -d com.apple.quarantine /opt/homebrew/Caskroom/codex/0.140.0/codex-path/rgI moved it to trash as recommended, codex seem able to adapt.
They just need to release a properly signed
rgbinary again.Is there at least one person with a Mac at OpenAI that tests builds before release?
I have the same issue. Every invocation of
rg(/opt/homebrew/Caskroom/codex/0.139.0/codex-path/rg
) by codex causes the following popup to appear.<img width="372" height="344" alt="Image" src="https://github.com/user-attachments/assets/1c02c53c-1e86-4b26-95be-52e42dfe06dc" />
I hit the same issue on
codex-cli 0.140.0installed via Homebrew cask on macOS26.2(25C56), Apple Silicon (arm64).Relevant details from my machine:
So the bundled Codex
rgshadows a working Homebrew ripgrep at/opt/homebrew/bin/rg.Before applying the workaround, the bundled binary had Gatekeeper quarantine metadata:
rg --versionthrough the normal Codex PATH triggered the macOS "rg Not Opened" Gatekeeper dialog and the process exited without producing version output.Local workaround that fixed it:
After that,
rg --versionvia the normal PATH works:This suggests the Homebrew cask is shipping or installing the bundled
codex-path/rgwith quarantine still attached, so Gatekeeper treats it as untrusted even though Codex intentionally invokes it.I presume that all of you are using Homebrew to install the CLI?
Same on macOS Apple Silicon with codex 0.140.0 installed via Homebrew cask.
Inside Codex:
/opt/homebrew/bin/rg --versionworks normally.Workaround:
After that,
rg --versionworks through the Codex PATH.spctl --assess --type execute --verbose=4still reports an internal Code Signing subsystem error after removing quarantine, so this looks like a packaging/signing/quarantine handling issue rather than a broken Homebrew ripgrep installation.It appears that this regression is rooted in a recent change in Homebrew. We're exploring the best way to fix this.
If this issue is blocking you in the meantime, you can switch to one of our other supported install mechanisms: npm or curl. See this documentation for details.
We've introduced a fix in brew that should address this problem. If you were experiencing this problem, can you try to install again and confirm that it now works?
@etraut-openai reinstall what? codex? homebrew?
brew reinstall --cask codex@aa755 This worked for me. Thank you!
@etraut-openai can confirm reinstall fixed this for me with
brew reinstall --cask codexStill running into this issue in version 0.140.0. Codex is installed via homebrew.
@etraut-openai it does not seem to work for me - issue still exists
Fix does not work for me either. My rg is linked to my homebrew rg, and I can run that fine from command line:
But I do also see that this version of rg exists as well, which brings up the error box when run directly (or from codex):
Did you actually do a reinstall? Without that, it won't work or won't be fixed. Even a normal upgrade won't fix it, because there's been no version bump since the fix.
Yes reinstalled with
brew reinstall --cask codex. However, I think what those of us that still have the issue missed is you may also need to delete the codex rg version located at/opt/homebrew/Caskroom/codex/0.140.0/codex-path/rg.Same here. The reinstall command that everyone else is using still leaves me with this non-working version of
rg. Removing it and having Codex then fall back to my main (Homebrew) version ofrggot things working. Hopefully the problematic version won't re-appear in future Codex updates...updated to v0.141.0, rg problem solved, thanks.
Can confirm that:
brew --reinstall cask codexdidn't work in my casebrew upgrade codexworked (0.140.0->0.141.0)0.144.1 have the same problem.
Try this
xattr -d com.apple.quarantine /opt/homebrew/Caskroom/codex/0.144.1/codex-path/rgBasically this comment
Looks like someone again switched to the wrong package: https://github.com/Homebrew/homebrew-cask/pull/274248
Ping @etraut-openai
Having the same issue here with 0.144.1 using 5.6-sol. Getting spammed with this "rg" Not Opened warning right now.
rg issue came back in codex-cli 0.144.1
ffs why can't it just use my system binary... Ridiculous
I use only the
codex-cliand I am running the v0.144.1 now. I don't have Codex.app not ChatGPT.app.I am all the time reminded by macOS 26 the
rgtool is insecure:I have the
rgtool:This
rgtool works perfectly fine.Same @jozefizso
Needed to hop into OSX -> System Settings -> Privacy & Security -> scroll down -> 'allow anyway' to clear this error.
Why tho?
This is fixed upstream again by reverting back to the standalone binary. You will need to update brew (so it knows about the latest hashes) & then do a reinstall to get it fixed.
Another way to patch this temporarily is to simply move or delete the bundled
rgbinary. Codex has its own overrides earlier in the PATH, but it keeps the system PATH as well. Removing it won't even negatively affect current sessions—the nextrginvocation simply resolves to the system version (e.g.,/opt/homebrew/bin/rg) and GPT is happy to use it without issues.The commands now resolve to host-installed packages, not Codex-bundled copies:
The issue seems resolved - probably until the next release only tho.
Fixed for me in the latest version!