Cursor shell can not work on fish and bash shell, only zsh is normally

Where does the bug appear (feature/product)?

Cursor CLI

Describe the Bug

hi, i upgrade to latest cursor shell cli. i use macOS and fish shell.
in fish shell, run agent, No matter what I input, after I press Enter, the CLI does not respond (for a long time). I have made sure my network is working properly, and I can use the Cursor app (GUI app) without any issues.

Then I switched to the zsh shell, and I found that the CLI worked fine.
However, when I switched to the bash shell, I found that the CLI became unresponsive again, just like it was in the fish shell.

Steps to Reproduce

upgrade to latest cursor shell cli, after that run it with fish shell.

Expected Behavior

work normally like before. Before i can use agent cli normally with fish shell

Screenshots / Screen Recordings

Operating System

MacOS

Version Information

❯ agent about
About Cursor CLI

CLI Version 2026.06.15-18-00-12-6f5a2cf
Model Opus 4.7 300K Extra High
Subscription Tier Pro
OS darwin (arm64)
Terminal ghostty
Shell fish
User Email ❯ agent about
About Cursor CLI

CLI Version 2026.06.15-18-00-12-6f5a2cf
Model Opus 4.7 300K Extra High
Subscription Tier Pro
OS darwin (arm64)
Terminal ghostty
Shell fish
User Email

For AI issues: which model did you use?

any model

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey, thanks for the detailed report. It looks like the CLI is hanging during login shell environment initialization. It grabs the env via bash or fish on startup, and if something in your config blocks loading, the whole agent hangs. In zsh your config looks clean, so it works fine there.

Quick workaround so it doesn’t block, run the CLI under zsh:

SHELL=/bin/zsh agent

To figure out the root cause, can you share:

  • The contents of ~/.bash_profile and ~/.bashrc and your fish config ~/.config/fish/config.fish.
  • Debug logs from startup. Run agent --debug in bash or fish and paste the output, or share /logs from the TUI.

That’ll make it clearer which step it hangs on. Let me know how it goes.

Cursor Agent Debug Session

live

startup.waterfall.artifact

PrettyALLINFOWARNERRORDEBUG

DownloadClear (view)

-– Cursor Agent Debug Session 2026-06-18T07:49:48.903Z —
{“event”:“debug-session-start”,“directory”:“/var/folders/gg/17p27swx3h1f72bhb6gqv3nw0000gn/T/cursor-agent-logs”,“logFile”:“/var/folders/gg/17p27swx3h1f72bhb6gqv3nw0000gn/T/cursor-agent-logs/session-2026-06-18T07-49-48-902Z-33891-1.log”,“pid”:33891,“startTime”:“2026-06-18T07:49:48.903Z”}
[2026-06-18T07:49:48.903Z] ripgrep.configureSuccess {“ripgrepPath”:“/Users/acaibird/.local/share/cursor-agent/versions/2026.06.15-18-00-12-6f5a2cf/rg”,“ripgrepSource”:“colocated”}
Stack trace:
at Q (/Users/acaibird/.local/share/cursor-agent/versions/2026.06.15-18-00-12-6f5a2cf/index.js:414:5802)
at S (/Users/acaibird/.local/share/cursor-agent/versions/2026.06.15-18-00-12-6f5a2cf/index.js:414:11006)
at /Users/acaibird/.local/share/cursor-agent/versions/2026.06.15-18-00-12-6f5a2cf/index.js:414:12620
[2026-06-18T07:49:48.903Z] sandbox.configureSuccess {“sandboxBinary”:“/Users/acaibird/.local/share/cursor-agent/versions/2026.06.15-18-00-12-6f5a2cf/cursorsandbox”,“sandboxSource”:“colocated”}
Stack trace:
at Q (/Users/acaibird/.local/share/cursor-agent/versions/2026.06.15-18-00-12-6f5a2cf/index.js:414:5802)
at B (/Users/acaibird/.local/share/cursor-agent/versions/2026.06.15-18-00-12-6f5a2cf/index.js:414:11259)
at /Users/acaibird/.local/share/cursor-agent/versions/2026.06.15-18-00-12-6f5a2cf/index.js:414:12624
[2026-06-18T07:49:48.904Z] analytics.track {“eventName”:“cli.launch”}
[2026-06-18T07:49:48.912Z] statsig.setupLazyInit {“endpoint”:“https://api2.cursor.sh”}
[2026-06-18T07:49:48.917Z] statsig.initialize.success {“fromCache”:true}
[2026-06-18T07:49:48.981Z] atFileSuggestions.index.start {“cwd”:“/Users/acaibird”,“maxFiles”:20000,“maxDepth”:16,“includeHidden”:false,“timeoutMs”:8000}
{“event”:“debug-server-start”,“port”:43111,“basePort”:43111,“attempts”:1,“ephemeralFallback”:false,“directory”:“/var/folders/gg/17p27swx3h1f72bhb6gqv3nw0000gn/T/cursor-agent-debug-cIMoCS”,“logFile”:“/var/folders/gg/17p27swx3h1f72bhb6gqv3nw0000gn/T/cursor-agent-logs/session-2026-06-18T07-49-48-902Z-33891-1.log”,“pid”:33891,“startTime”:“2026-06-18T07:49:48.984Z”}
[2026-06-18T07:49:49.100Z] console.backend {“level”:“error”,“message”:“(node:33891) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities.\n(Use `agent --trace-deprecation …` to show where the warning was created)”,“contextPath”:[“console”],“metadata”:{“source”:“console.error”}}
[2026-06-18T07:49:49.101Z] node.warning {“name”:“DeprecationWarning”,“message”:“`url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities.”,“stack”:“DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities.\n at urlParse (node:url:134:13)\n at t.default (/Users/acaibird/.local/share/cursor-agent/versions/2026.06.15-18-00-12-6f5a2cf/index.js:8:315653)\n at o.getUrlProxy (/Users/acaibird/.local/share/cursor-agent/versions/2026.06.15-18-00-12-6f5a2cf/index.js:8:305729)\n at o.addRequest (/Users/acaibird/.local/share/cursor-agent/versions/2026.06.15-18-00-12-6f5a2cf/index.js:8:296323)\n at new ClientRequest (node:_http_client:403:16)\n at request (node:https:629:10)\n at Object.request (/Users/acaibird/.local/share/cursor-agent/versions/2026.06.15-18-00-12-6f5a2cf/index.js:8:312103)\n at /Users/acaibird/.local/share/cursor-agent/versions/2026.06.15-18-00-12-6f5a2cf/index.js:414:1986691\n at /Users/acaibird/.local/share/cursor-agent/versions/2026.06.15-18-00-12-6f5a2cf/index.js:414:1986902\n at new Promise ()”}
[2026-06-18T07:49:49.276Z] statsig.updateUser.success {“userId”:“github|user_01J6A8DTRPEQF9JT6VFH90NR35”}
[2026-06-18T07:49:49.277Z] telem-lifecycle Telemetry disabled: privacy
[2026-06-18T07:49:49.278Z] analytics.track {“eventName”:“cli.run.mode”,“props”:{“headless”:false,“print_flag”:false,“output_text”:false,“output_json”:false,“output_stream_json”:false,“stream_partial_output”:false,“show_thinking”:false,“api_key_env”:false}}
{“event”:“serverConfigCache.startup”,“level”:“INFO”,“data”:{“usedCache”:true}}
[2026-06-18T07:49:49.562Z] atFileSuggestions.index.done {“reason”:“rg:limit”,“durationMs”:581,“total”:23366}
[2026-06-18T07:49:49.564Z] console.backend {“level”:“warn”,“message”:“[hooks] Claude Code event \“Notification\” is not supported in Cursor and will be ignored”,“contextPath”:[“console”],“metadata”:{“source”:“console.warn”}}
[2026-06-18T07:49:49.564Z] console.backend {“level”:“warn”,“message”:“[hooks] Claude Code event \“PermissionRequest\” is not supported in Cursor and will be ignored”,“contextPath”:[“console”],“metadata”:{“source”:“console.warn”}}
[2026-06-18T07:49:49.564Z] console.backend {“level”:“warn”,“message”:“[hooks] Unknown Claude Code event \“SubagentStart\”, skipping”,“contextPath”:[“console”],“metadata”:{“source”:“console.warn”}}
[2026-06-18T07:49:49.565Z] console.backend {“level”:“warn”,“message”:“[hooks] Claude Code event \“Notification\” is not supported in Cursor and will be ignored”,“contextPath”:[“console”],“metadata”:{“source”:“console.warn”}}
[2026-06-18T07:49:49.565Z] console.backend {“level”:“warn”,“message”:“[hooks] Claude Code event \“PermissionRequest\” is not supported in Cursor and will be ignored”,“contextPath”:[“console”],“metadata”:{“source”:“console.warn”}}
[2026-06-18T07:49:49.565Z] console.backend {“level”:“warn”,“message”:“[hooks] Unknown Claude Code event \“SubagentStart\”, skipping”,“contextPath”:[“console”],“metadata”:{“source”:“console.warn”}}
[2026-06-18T07:49:50.439Z] cc-marketplace-import.start {“dir”:“/Users/acaibird/.claude/plugins/marketplaces”}
[2026-06-18T07:49:50.444Z] cc-marketplace-import.foundMarketplaces {“count”:1}
[2026-06-18T07:49:50.450Z] cc-marketplace-import.skippedExistingUserMarketplace {“marketplaceName”:“claude-plugins-official”,“dirPath”:“/Users/acaibird/.claude/plugins/marketplaces/claude-plugins-official”}
[2026-06-18T07:49:50.450Z] cc-marketplace-import.discoveryComplete {“totalDirectories”:1,“payloads”:0,“skippedExisting”:1,“unparseable”:0}
[2026-06-18T07:49:50.450Z] cc-marketplace-import.noNewMarketplaces
[2026-06-18T07:49:50.771Z] askpass.server.started {“socketPath”:“/tmp/cursor-askpass-d8c81933-d.sock”,“helperPath”:“/Users/acaibird/.local/share/cursor-agent/versions/2026.06.15-18-00-12-6f5a2cf/cursor-askpass”}
[2026-06-18T07:49:50.782Z] logger.default {“level”:“info”,“message”:“[isSandboxHelperSupported] Starting sandbox support check…”,“contextPath”:[]}
[2026-06-18T07:49:50.782Z] logger.default {“level”:“info”,“message”:“[checkBinaryAvailable] Resolved binary path: /Users/acaibird/.local/share/cursor-agent/versions/2026.06.15-18-00-12-6f5a2cf/cursorsandbox”,“contextPath”:[]}
[2026-06-18T07:49:50.782Z] logger.default {“level”:“info”,“message”:“[checkBinaryAvailable] Binary path exists: true”,“contextPath”:[]}
[2026-06-18T07:49:50.782Z] logger.default {“level”:“info”,“message”:“[isSandboxHelperSupported] darwin platform, binary available, sandbox supported!”,“contextPath”:[]}
[2026-06-18T07:49:50.804Z] No .git directory found starting from: /Users/acaibird
[2026-06-18T07:49:50.816Z] stderr.intercepted {“text”:“\u001b[?25l”}
[2026-06-18T07:49:50.817Z] No .git directory found starting from: /Users/acaibird
[2026-06-18T07:49:50.818Z] conversationClassification.init {“conversationId”:“610d5555-3dc0-44a5-8904-ff5b3a73255d”,“workspacePath”:“/Users/acaibird”,“backendUrl”:“https://api2.cursor.sh”,“dbPath”:“/Users/acaibird/.cursor/ai-tracking/ai-code-tracking.db”,“transcriptsDir”:“/Users/acaibird/.cursor/projects/Users-acaibird/agent-transcripts”,“insecure”:false}
[2026-06-18T07:49:50.818Z] conversationClassification.meta.initial {“conversationId”:“610d5555-3dc0-44a5-8904-ff5b3a73255d”,“lastUpdatedAt”:1781768990818,“model”:“unknown”,“mode”:“default”}
[2026-06-18T07:49:50.818Z] commitScoring.init {“workspacePath”:“/Users/acaibird”,“backendUrl”:“https://api2.cursor.sh”,“dbPath”:“/Users/acaibird/.cursor/ai-tracking/ai-code-tracking.db”,“insecure”:false}
[2026-06-18T07:49:50.819Z] Loading existing conversation
[2026-06-18T07:49:50.824Z] startup.metrics {“total_ms”:2120,“bundle_load_ms”:199,“config_load_ms”:8,“statsig_ms”:29,“chat_import_ms”:62,“workspace_resolution_ms”:1,“tracing_init_ms”:99,“analytics_init_ms”:1,“auth_ms”:155,“post_auth_prelude_ms”:218,“agent_store_open_ms”:0,“server_config_ms”:1,“hooks_config_ms”:99,“build_resources_ms”:11,“askpass_server_ms”:1,“mcp_and_model_init_ms”:1,“model_manager_init_ms”:1,“current_model_ms”:0,“render_ms”:34,“first_paint_ms”:2112,“unaccounted_ms”:1230,“has_compile_cache”:true,“bundle_size_bytes”:9742592}
[2026-06-18T07:49:50.825Z] startup.waterfall startup.waterfall (interactive)
program_start 2026-06-18T07:49:48.704Z time_origin_ms=1781768988704.449
tti_render +2120ms 2026-06-18T07:49:50.824Z total_ms=2120 unaccounted_ms=1230

phase start end dur start_timestamp end_timestamp waterfall note
bundle_load_ms +0ms +199ms 199ms 2026-06-18T07:49:48.704Z 2026-06-18T07:49:48.903Z ####
first_paint_ms +0ms +2112ms 2112ms 2026-06-18T07:49:48.704Z 2026-06-18T07:49:50.816Z ======================================== drill-down/overlap
(gap) +199ms +200ms 1ms 2026-06-18T07:49:48.903Z 2026-06-18T07:49:48.904Z . unattributed
config_load_ms +200ms +208ms 8ms 2026-06-18T07:49:48.904Z 2026-06-18T07:49:48.912Z #
(gap) +208ms +215ms 7ms 2026-06-18T07:49:48.912Z 2026-06-18T07:49:48.919Z .. unattributed
chat_import_ms +215ms +276ms 61ms 2026-06-18T07:49:48.919Z 2026-06-18T07:49:48.980Z ##
workspace_resolution_ms +276ms +278ms 2ms 2026-06-18T07:49:48.980Z 2026-06-18T07:49:48.982Z #
(gap) +278ms +287ms 9ms 2026-06-18T07:49:48.982Z 2026-06-18T07:49:48.991Z . unattributed
tracing_init_ms +287ms +386ms 99ms 2026-06-18T07:49:48.991Z 2026-06-18T07:49:49.090Z ###
analytics_init_ms +386ms +387ms 1ms 2026-06-18T07:49:49.090Z 2026-06-18T07:49:49.091Z #
(gap) +387ms +388ms 1ms 2026-06-18T07:49:49.091Z 2026-06-18T07:49:49.092Z . unattributed
auth_ms +388ms +543ms 155ms 2026-06-18T07:49:49.092Z 2026-06-18T07:49:49.247Z ####
post_auth_prelude_ms +543ms +761ms 218ms 2026-06-18T07:49:49.247Z 2026-06-18T07:49:49.465Z #####
statsig_ms +543ms +573ms 30ms 2026-06-18T07:49:49.247Z 2026-06-18T07:49:49.277Z = drill-down/overlap
agent_store_open_ms +758ms +758ms 0ms 2026-06-18T07:49:49.462Z 2026-06-18T07:49:49.462Z = drill-down/overlap
server_config_ms +761ms +763ms 2ms 2026-06-18T07:49:49.465Z 2026-06-18T07:49:49.467Z #
hooks_config_ms +763ms +862ms 99ms 2026-06-18T07:49:49.467Z 2026-06-18T07:49:49.566Z ###
(gap) +862ms +2066ms 1204ms 2026-06-18T07:49:49.566Z 2026-06-18T07:49:50.770Z … unattributed
askpass_server_ms +2066ms +2067ms 1ms 2026-06-18T07:49:50.770Z 2026-06-18T07:49:50.771Z #
build_resources_ms +2067ms +2078ms 11ms 2026-06-18T07:49:50.771Z 2026-06-18T07:49:50.782Z #
build_resources.prelude +2067ms +2071ms 4ms 2026-06-18T07:49:50.771Z 2026-06-18T07:49:50.775Z = local drill-down
build_resources.permissions_file +2071ms +2071ms 0ms 2026-06-18T07:49:50.775Z 2026-06-18T07:49:50.775Z = local drill-down
build_resources.find_git_root +2071ms +2076ms 5ms 2026-06-18T07:49:50.775Z 2026-06-18T07:49:50.780Z = local drill-down
build_resources.claude_permissions +2076ms +2077ms 1ms 2026-06-18T07:49:50.780Z 2026-06-18T07:49:50.781Z = local drill-down
build_resources.sandbox_policy +2078ms +2078ms 0ms 2026-06-18T07:49:50.782Z 2026-06-18T07:49:50.782Z = local drill-down
(gap) +2078ms +2079ms 1ms 2026-06-18T07:49:50.782Z 2026-06-18T07:49:50.783Z . unattributed
mcp_and_model_init_ms +2079ms +2080ms 1ms 2026-06-18T07:49:50.783Z 2026-06-18T07:49:50.784Z #
model_manager_init_ms +2079ms +2079ms 0ms 2026-06-18T07:49:50.783Z 2026-06-18T07:49:50.783Z = drill-down/overlap
current_model_ms +2080ms +2080ms 0ms 2026-06-18T07:49:50.784Z 2026-06-18T07:49:50.784Z #
(gap) +2080ms +2085ms 5ms 2026-06-18T07:49:50.784Z 2026-06-18T07:49:50.789Z . unattributed
render_ms +2085ms +2120ms 35ms 2026-06-18T07:49:50.789Z 2026-06-18T07:49:50.824Z #

missing_phases auth_refresh_ms, mcp_init_ms
{“event”:“startup.waterfall.artifact”,“level”:“INFO”,“data”:{“filePath”:“/var/folders/gg/17p27swx3h1f72bhb6gqv3nw0000gn/T/cursor-agent-debug-cIMoCS/startup-waterfall-1781768990825.html”,“url”:“http://127.0.0.1:43111/artifacts/startup-waterfall-1781768990825.html”}}
[2026-06-18T07:49:50.826Z] analytics.track {“eventName”:“cli.startup.tti”,“props”:{“total_ms”:2120,“bundle_load_ms”:199,“config_load_ms”:8,“statsig_ms”:29,“chat_import_ms”:62,“workspace_resolution_ms”:1,“tracing_init_ms”:99,“analytics_init_ms”:1,“auth_ms”:155,“post_auth_prelude_ms”:218,“auth_refresh_ms”:-1,“agent_store_open_ms”:0,“server_config_ms”:1,“hooks_config_ms”:99,“build_resources_ms”:11,“askpass_server_ms”:1,“mcp_and_model_init_ms”:1,“mcp_init_ms”:-1,“model_manager_init_ms”:1,“current_model_ms”:0,“render_ms”:34,“first_paint_ms”:2112,“unaccounted_ms”:1230,“has_compile_cache”:true,“is_headless”:false,“mcp_deferred”:true,“channel”:“unknown”,“bundle_size_bytes”:9742592}}
[2026-06-18T07:49:50.826Z] structured-log.info {“key”:“agent_cli”,“message”:“agent_cli.startup.tti”,“metadata”:{“total_ms”:“2120”,“bundle_load_ms”:“199”,“config_load_ms”:“8”,“statsig_ms”:“29”,“chat_import_ms”:“62”,“workspace_resolution_ms”:“1”,“tracing_init_ms”:“99”,“analytics_init_ms”:“1”,“auth_ms”:“155”,“post_auth_prelude_ms”:“218”,“auth_refresh_ms”:“-1”,“agent_store_open_ms”:“0”,“server_config_ms”:“1”,“hooks_config_ms”:“99”,“build_resources_ms”:“11”,“askpass_server_ms”:“1”,“mcp_and_model_init_ms”:“1”,“mcp_init_ms”:“-1”,“model_manager_init_ms”:“1”,“current_model_ms”:“0”,“render_ms”:“34”,“first_paint_ms”:“2112”,“unaccounted_ms”:“1230”,“has_compile_cache”:“true”,“is_headless”:“false”,“mcp_deferred”:“true”,“channel”:“unknown”,“bundle_size_bytes”:“9742592”}}
[2026-06-18T07:49:50.826Z] startup.otel.span.emitted {“total_ms”:2120,“phases_emitted”:17}
[2026-06-18T07:49:50.841Z] logger {“message”:“LocalCursorRulesService load completed”,“metadata”:{“durationMs”:69,“ruleCount”:0}}
[2026-06-18T07:49:51.066Z] statsig.refresh.success {“clientInitialized”:true}
{“event”:“serverConfigCache.refresh”,“level”:“INFO”,“data”:{“kind”:“updated”,“values”:{“serverAgentUrlConfig”:{“agentUrl”:“https://agentn.global.api5.cursor.sh”,“agentnUrl”:“https://agentn.global.api5.cursor.sh”},“cliSandboxDefaultEnabled”:false,“serverHttp2Config”:0}}}
[2026-06-18T07:49:51.327Z] statsig.refresh.success {“clientInitialized”:true}
[2026-06-18T07:49:51.980Z] structured-log.flush.success {“count”:1}
[2026-06-18T07:49:51.987Z] logger {“message”:“CursorPluginsAgentSkillsService load completed”,“metadata”:{“durationMs”:1213,“ruleCount”:5,“skillCount”:5}}
[2026-06-18T07:49:51.996Z] logger {“message”:“MCP OAuth provider initialized”,“metadata”:{“event”:“mcp_oauth_provider_initialized”,“cursorMcp”:{“oauth”:{“identifier”:“sentiment”}}}}
[2026-06-18T07:49:51.997Z] logger {“message”:“MCP OAuth provider initialized”,“metadata”:{“event”:“mcp_oauth_provider_initialized”,“cursorMcp”:{“oauth”:{“identifier”:“gate-perp”}}}}
[2026-06-18T07:49:51.997Z] logger {“message”:“MCP OAuth provider initialized”,“metadata”:{“event”:“mcp_oauth_provider_initialized”,“cursorMcp”:{“oauth”:{“identifier”:“binance-perp”}}}}
[2026-06-18T07:49:51.997Z] logger {“message”:“MCP OAuth provider initialized”,“metadata”:{“event”:“mcp_oauth_provider_initialized”,“cursorMcp”:{“oauth”:{“identifier”:“okx-perp”}}}}
[2026-06-18T07:49:52.164Z] logger {“message”:“managed_skills.removed”,“metadata”:{“skill_id”:“clone”,“reason”:“enabled_false”,“server_enabled”:false,“had_manifest_entry”:false,“last_synced_ms_ago”:null}}
[2026-06-18T07:49:52.164Z] logger {“message”:“managed_skills.removed”,“metadata”:{“skill_id”:“automate”,“reason”:“enabled_false”,“server_enabled”:false,“had_manifest_entry”:false,“last_synced_ms_ago”:null}}
[2026-06-18T07:49:52.168Z] logger {“message”:“managed_skills.removed”,“metadata”:{“skill_id”:“cursor”,“reason”:“enabled_false”,“server_enabled”:false,“had_manifest_entry”:false,“last_synced_ms_ago”:null}}
[2026-06-18T07:49:52.168Z] logger {“message”:“managed_skills.removed”,“metadata”:{“skill_id”:“cursor-blame”,“reason”:“enabled_false”,“server_enabled”:false,“had_manifest_entry”:false,“last_synced_ms_ago”:null}}
[2026-06-18T07:49:52.168Z] logger {“message”:“managed_skills.removed”,“metadata”:{“skill_id”:“cursor-sdk”,“reason”:“enabled_false”,“server_enabled”:false,“had_manifest_entry”:false,“last_synced_ms_ago”:null}}
[2026-06-18T07:49:52.169Z] logger {“message”:“managed_skills.removed”,“metadata”:{“skill_id”:“goal”,“reason”:“enabled_false”,“server_enabled”:false,“had_manifest_entry”:false,“last_synced_ms_ago”:null}}
[2026-06-18T07:49:52.170Z] logger {“message”:“managed_skills.removed”,“metadata”:{“skill_id”:“onboard”,“reason”:“enabled_false”,“server_enabled”:false,“had_manifest_entry”:false,“last_synced_ms_ago”:null}}
[2026-06-18T07:49:52.170Z] logger {“message”:“managed_skills.removed”,“metadata”:{“skill_id”:“review”,“reason”:“enabled_false”,“server_enabled”:false,“had_manifest_entry”:false,“last_synced_ms_ago”:null}}
[2026-06-18T07:49:52.170Z] logger {“message”:“managed_skills.removed”,“metadata”:{“skill_id”:“review-bugbot”,“reason”:“enabled_false”,“server_enabled”:false,“had_manifest_entry”:false,“last_synced_ms_ago”:null}}
[2026-06-18T07:49:52.171Z] logger {“message”:“managed_skills.removed”,“metadata”:{“skill_id”:“review-security”,“reason”:“enabled_false”,“server_enabled”:false,“had_manifest_entry”:false,“last_synced_ms_ago”:null}}
[2026-06-18T07:49:52.171Z] logger {“message”:“managed_skills.removed”,“metadata”:{“skill_id”:“cursor-review-links”,“reason”:“enabled_false”,“server_enabled”:false,“had_manifest_entry”:false,“last_synced_ms_ago”:null}}
[2026-06-18T07:49:52.172Z] logger {“message”:“managed_skills.removed”,“metadata”:{“skill_id”:“social-sharing-copy”,“reason”:“enabled_false”,“server_enabled”:false,“had_manifest_entry”:false,“last_synced_ms_ago”:null}}
[2026-06-18T07:49:52.181Z] User does not belong to a team, skipping team commands
[2026-06-18T07:49:52.241Z] logger {“message”:“AgentSkillsCursorRulesService load completed”,“metadata”:{“durationMs”:1467,“ruleCount”:28,“skillCount”:28}}
[2026-06-18T07:49:53.152Z] Loaded global commands: 6 (filtered out for missing git repo: 4 )
[2026-06-18T07:49:53.289Z] logger {“message”:“MCP OAuth provider initialized”,“metadata”:{“event”:“mcp_oauth_provider_initialized”,“cursorMcp”:{“oauth”:{“identifier”:“bybit-perp”}}}}
[2026-06-18T07:49:53.290Z] logger {“message”:“MCP OAuth provider initialized”,“metadata”:{“event”:“mcp_oauth_provider_initialized”,“cursorMcp”:{“oauth”:{“identifier”:“bitget-perp”}}}}
[2026-06-18T07:49:53.302Z] logger {“message”:“MCP OAuth provider initialized”,“metadata”:{“event”:“mcp_oauth_provider_initialized”,“cursorMcp”:{“oauth”:{“identifier”:“deribit-options”}}}}
[2026-06-18T07:49:53.304Z] logger {“message”:“MCP OAuth provider initialized”,“metadata”:{“event”:“mcp_oauth_provider_initialized”,“cursorMcp”:{“oauth”:{“identifier”:“plugin-stripe-stripe”,“serverUrl”:{“host”:“mcp.stripe.com”,“origin”:“https://mcp.stripe.com”,“path”:“/”}}}}}
[2026-06-18T07:49:53.304Z] logger {“message”:“MCP OAuth tokens loaded”,“metadata”:{“event”:“mcp_oauth_tokens_loaded”,“cursorMcp”:{“oauth”:{“identifier”:“plugin-stripe-stripe”,“serverUrl”:{“host”:“mcp.stripe.com”,“origin”:“https://mcp.stripe.com”,“path”:“/”},“accessTokenLen”:0,“refreshTokenPresent”:false,“expiresAtTimestamp”:null}}}}
[2026-06-18T07:49:53.304Z] logger {“message”:“MCP OAuth client information loaded”,“metadata”:{“event”:“mcp_oauth_client_info_loaded”,“cursorMcp”:{“oauth”:{“identifier”:“plugin-stripe-stripe”,“serverUrl”:{“host”:“mcp.stripe.com”,“origin”:“https://mcp.stripe.com”,“path”:“/”},“clientIdHash”:“3789b2570c40”,“redirectUrisHash”:“d218f393a23e”,“redirectUriCount”:3}}}}
[2026-06-18T07:49:53.304Z] logger {“message”:“MCP OAuth tokens loaded”,“metadata”:{“event”:“mcp_oauth_tokens_loaded”,“cursorMcp”:{“oauth”:{“identifier”:“plugin-stripe-stripe”,“serverUrl”:{“host”:“mcp.stripe.com”,“origin”:“https://mcp.stripe.com”,“path”:“/”},“accessTokenLen”:0,“refreshTokenPresent”:false,“expiresAtTimestamp”:null}}}}
[2026-06-18T07:49:53.954Z] logger {“message”:“MCP HTTP exchange completed”,“metadata”:{“event”:“mcp_http_exchange”,“outcome”:“http_error”,“durationMs”:648,“cursorMcp”:{“transport”:{“identifier”:“plugin-stripe-stripe”,“source”:“mcp-agent-exec”,“transportType”:“streamableHttp”,“request”:{“method”:“POST”,“url”:{“host”:“mcp.stripe.com”,“origin”:“https://mcp.stripe.com”,“path”:“/”},“headers”:{“names”:[“accept”,“content-type”,“user-agent”],“count”:3},“contentType”:“application/json”,“body”:{“kind”:“text”,“bytes”:180,“contentLength”:180},“sessionIdHash”:null,“authorizationScheme”:null},“response”:{“status”:401,“ok”:false,“headers”:{“names”:[“cache-control”,“connection”,“content-length”,“content-security-policy”,“content-type”,“cross-origin-opener-policy”,“date”,“expires”,“pragma”,“referrer-policy”,“report-to”,“reporting-endpoints”,“server”,“strict-transport-security”,“www-authenticate”,“x-content-type-options”,“x-robots-tag”,“x-stripe-proxy-response”,“x-stripe-server-rpc-duration-micros”,“x-wc”],“count”:20},“contentType”:“application/json”,“body”:{“kind”:“stream”,“bytes”:81,“contentLength”:81,“errorSummary”:“{\“error\”:\“Unauthorized. See Model Context Protocol (MCP) | Stripe Documentation for usage instructions.\”}”},“sessionIdHash”:null,“wwwAuthenticateHash”:“5feceb64447a”,“mcpProtocolVersion”:null}}}}}
[2026-06-18T07:49:54.416Z] logger {“message”:“MCP HTTP exchange completed”,“metadata”:{“event”:“mcp_http_exchange”,“outcome”:“success”,“durationMs”:462,“cursorMcp”:{“transport”:{“identifier”:“plugin-stripe-stripe”,“source”:“mcp-agent-exec”,“transportType”:“streamableHttp”,“request”:{“method”:“GET”,“url”:{“host”:“mcp.stripe.com”,“origin”:“https://mcp.stripe.com”,“path”:“/.well-known/oauth-protected-resource”},“headers”:{“names”:[“mcp-protocol-version”,“user-agent”],“count”:2},“contentType”:null,“body”:{“kind”:“none”,“bytes”:0,“contentLength”:null},“sessionIdHash”:null,“authorizationScheme”:null},“response”:{“status”:200,“ok”:true,“headers”:{“names”:[“access-control-allow-methods”,“access-control-allow-origin”,“access-control-max-age”,“cache-control”,“connection”,“content-length”,“content-security-policy”,“content-type”,“cross-origin-opener-policy”,“date”,“expires”,“pragma”,“referrer-policy”,“report-to”,“reporting-endpoints”,“server”,“strict-transport-security”,“vary”,“x-content-type-options”,“x-robots-tag”,“x-stripe-proxy-response”,“x-stripe-server-rpc-duration-micros”,“x-wc”],“count”:23},“contentType”:“application/json”,“body”:{“kind”:“stream”,“bytes”:95,“contentLength”:95},“sessionIdHash”:null,“wwwAuthenticateHash”:null,“mcpProtocolVersion”:null}}}}}
[2026-06-18T07:49:55.230Z] logger {“message”:“MCP HTTP exchange completed”,“metadata”:{“event”:“mcp_http_exchange”,“outcome”:“success”,“durationMs”:810,“cursorMcp”:{“transport”:{“identifier”:“plugin-stripe-stripe”,“source”:“mcp-agent-exec”,“transportType”:“streamableHttp”,“request”:{“method”:“GET”,“url”:{“host”:“access.stripe.com”,“origin”:“https://access.stripe.com”,“path”:“/.well-known/oauth-authorization-server/mcp”},“headers”:{“names”:[“accept”,“mcp-protocol-version”,“user-agent”],“count”:3},“contentType”:null,“body”:{“kind”:“none”,“bytes”:0,“contentLength”:null},“sessionIdHash”:null,“authorizationScheme”:null},“response”:{“status”:200,“ok”:true,“headers”:{“names”:[“access-control-allow-methods”,“access-control-allow-origin”,“access-control-max-age”,“cache-control”,“connection”,“content-length”,“content-security-policy”,“content-type”,“cross-origin-embedder-policy”,“cross-origin-opener-policy”,“cross-origin-resource-policy”,“date”,“expires”,“pragma”,“referrer-policy”,“report-to”,“reporting-endpoints”,“server”,“strict-transport-security”,“vary”,“x-content-type-options”,“x-robots-tag”,“x-stripe-priority-routing-enabled”,“x-stripe-proxy-response”,“x-stripe-routing-context-priority-tier”,“x-stripe-server-rpc-duration-micros”,“x-wc”],“count”:27},“contentType”:“application/json; charset=utf-8”,“body”:{“kind”:“stream”,“bytes”:600,“contentLength”:600},“sessionIdHash”:null,“wwwAuthenticateHash”:null,“mcpProtocolVersion”:null}}}}}
[2026-06-18T07:49:55.233Z] logger {“message”:“MCP OAuth state transition”,“metadata”:{“event”:“mcp_oauth_state_transition”,“cursorMcp”:{“oauth”:{“identifier”:“plugin-stripe-stripe”,“from”:“connecting”,“to”:“needsAuth”,“cause”:“connect_auth_error”,“transport”:“streamableHttp”,“refreshTokenPresent”:false,“host”:“mcp.stripe.com”,“origin”:“https://mcp.stripe.com”,“path”:“/”,“errorName”:“Error”,“errorMessage”:“Unauthorized”,“errorType”:“object”,“sdkErrorKind”:“generic_error”}}}}
[2026-06-18T07:49:55.233Z] startup.otel.deferred_mcp_init_span.emitted {“duration_ms”:4450,“channel”:“unknown”}
[2026-06-18T07:52:20.788Z] paste-event {“kind”:“bracketed”,“length”:20,“preview”:“SHELL=/bin/zsh agent”,“hexSample”:“53 48 45 4c 4c 3d 2f 62 69 6e 2f 7a 73 68 20 61 67 65 6e 74”}
[2026-06-18T07:52:21.580Z] handleCtrlC message
[2026-06-18T07:52:21.580Z] handleCtrlC isProcessing false
[2026-06-18T07:52:21.580Z] handleCtrlC exitMode false
[2026-06-18T07:52:21.581Z] analytics.track {“eventName”:“cli.cancel_maybe_quit”}
[2026-06-18T07:52:21.885Z] analytics.flush.error {“error”:{“name”:“ConnectError”,“rawMessage”:“This operation was aborted”,“code”:1,“metadata”:{},“details”:[]}}

SHELL=/bin/zsh agent still is not working with fish shell

I think it’s a syntax thing. SHELL=/bin/zsh agent is zsh/bash syntax, and fish doesn’t understand that inline env prefix before a command. In fish, try this:

env SHELL=/bin/zsh agent

If that works, it confirms the hang is happening during env init via the login shell.

About the logs: what you sent is the startup log. It finished normally and didn’t reach the hang. You can see that SHELL=/bin/zsh agent was pasted into the agent input field, not run as a shell command. To catch the exact hang:

  • Run agent --debug in fish (or bash).
  • Type any prompt and press Enter.
  • Let it hang, then grab the log file at $TMPDIR/cursor-agent-debug-<id>/session.log.

Also, if you can, share your fish config ~/.config/fish/config.fish, plus ~/.bash_profile and ~/.bashrc if you have them. That’ll help see which bootstrap step it’s getting stuck on. Let me know how it goes.

— Cursor Agent Debug Session 2026-06-22T05:57:11.691Z —
{“event”:“debug-session-start”,“directory”:“/var/folders/gg/17p27swx3h1f72bhb6gqv3nw0000gn/T/cursor-agent-logs-501”,“logFile”:“/var/folders/gg/17p27swx3h1f72bhb6gqv3nw0000gn/T/cursor-agent-logs-501/session-2026-06-22T05-57-11-690Z-72198-1.log”,“pid”:72198,“startTime”:“2026-06-22T05:57:11.691Z”}
[2026-06-22T05:57:11.691Z] ripgrep.configureSuccess {“ripgrepPath”:“/Users/acaibird/.local/share/cursor-agent/versions/2026.06.19-20-24-33-653a7fb/rg”,“ripgrepSource”:“colocated”}
Stack trace:
at Q (/Users/acaibird/.local/share/cursor-agent/versions/2026.06.19-20-24-33-653a7fb/index.js:414:6255)
at S (/Users/acaibird/.local/share/cursor-agent/versions/2026.06.19-20-24-33-653a7fb/index.js:414:11459)
at /Users/acaibird/.local/share/cursor-agent/versions/2026.06.19-20-24-33-653a7fb/index.js:414:13073
[2026-06-22T05:57:11.691Z] sandbox.configureSuccess {“sandboxBinary”:“/Users/acaibird/.local/share/cursor-agent/versions/2026.06.19-20-24-33-653a7fb/cursorsandbox”,“sandboxSource”:“colocated”}
Stack trace:
at Q (/Users/acaibird/.local/share/cursor-agent/versions/2026.06.19-20-24-33-653a7fb/index.js:414:6255)
at B (/Users/acaibird/.local/share/cursor-agent/versions/2026.06.19-20-24-33-653a7fb/index.js:414:11712)
at /Users/acaibird/.local/share/cursor-agent/versions/2026.06.19-20-24-33-653a7fb/index.js:414:13077
[2026-06-22T05:57:11.692Z] analytics.track {“eventName”:“cli.launch”}
[2026-06-22T05:57:11.704Z] statsig.setupLazyInit {“endpoint”:“https://api2.cursor.sh”}
[2026-06-22T05:57:11.709Z] statsig.initialize.success {“fromCache”:true}
[2026-06-22T05:57:11.776Z] atFileSuggestions.index.start {“cwd”:“/private/var/folders/gg/17p27swx3h1f72bhb6gqv3nw0000gn/T”,“maxFiles”:20000,“maxDepth”:16,“includeHidden”:false,“timeoutMs”:8000}
[2026-06-22T05:57:11.804Z] atFileSuggestions.index.done {“reason”:“rg:complete”,“durationMs”:28,“total”:148}
[2026-06-22T05:57:11.807Z] node.warning {“name”:“DeprecationWarning”,“message”:“url.parse() behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for url.parse() vulnerabilities.”,“stack”:“DeprecationWarning: url.parse() behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for url.parse() vulnerabilities.\n at urlParse (node:url:134:13)\n at t.default (/Users/acaibird/.local/share/cursor-agent/versions/2026.06.19-20-24-33-653a7fb/index.js:8:315653)\n at o.getUrlProxy (/Users/acaibird/.local/share/cursor-agent/versions/2026.06.19-20-24-33-653a7fb/index.js:8:305729)\n at o.addRequest (/Users/acaibird/.local/share/cursor-agent/versions/2026.06.19-20-24-33-653a7fb/index.js:8:296323)\n at new ClientRequest (node:_http_client:403:16)\n at request (node:https:629:10)\n at Object.request (/Users/acaibird/.local/share/cursor-agent/versions/2026.06.19-20-24-33-653a7fb/index.js:8:312103)\n at /Users/acaibird/.local/share/cursor-agent/versions/2026.06.19-20-24-33-653a7fb/index.js:414:1990912\n at /Users/acaibird/.local/share/cursor-agent/versions/2026.06.19-20-24-33-653a7fb/index.js:414:1991123\n at new Promise ()”}
[2026-06-22T05:57:11.824Z] statsig.updateUser.success {“userId”:“github|user_01J6A8DTRPEQF9JT6VFH90NR35”}
[2026-06-22T05:57:11.824Z] telem-lifecycle Telemetry disabled: privacy
[2026-06-22T05:57:11.825Z] analytics.track {“eventName”:“cli.run.mode”,“props”:{“headless”:false,“print_flag”:false,“output_text”:false,“output_json”:false,“output_stream_json”:false,“stream_partial_output”:false,“show_thinking”:false,“api_key_env”:false}}
{“event”:“serverConfigCache.startup”,“level”:“INFO”,“data”:{“usedCache”:true}}
[2026-06-22T05:57:11.832Z] askpass.server.started {“socketPath”:“/tmp/cursor-askpass-f6fb8459-8.sock”,“helperPath”:“/Users/acaibird/.local/share/cursor-agent/versions/2026.06.19-20-24-33-653a7fb/cursor-askpass”}
[2026-06-22T05:57:11.845Z] logger.default {“level”:“info”,“message”:“[isSandboxHelperSupported] Starting sandbox support check…”,“contextPath”:}
[2026-06-22T05:57:11.845Z] logger.default {“level”:“info”,“message”:“[checkBinaryAvailable] Resolved binary path: /Users/acaibird/.local/share/cursor-agent/versions/2026.06.19-20-24-33-653a7fb/cursorsandbox”,“contextPath”:}
[2026-06-22T05:57:11.845Z] logger.default {“level”:“info”,“message”:“[checkBinaryAvailable] Binary path exists: true”,“contextPath”:}
[2026-06-22T05:57:11.845Z] logger.default {“level”:“info”,“message”:“[isSandboxHelperSupported] darwin platform, binary available, sandbox supported!”,“contextPath”:}
[2026-06-22T05:57:11.863Z] No .git directory found starting from: /private/var/folders/gg/17p27swx3h1f72bhb6gqv3nw0000gn/T
[2026-06-22T05:57:11.873Z] stderr.intercepted {“text”:“\u001b[?25l”}
[2026-06-22T05:57:11.874Z] No .git directory found starting from: /private/var/folders/gg/17p27swx3h1f72bhb6gqv3nw0000gn/T
[2026-06-22T05:57:11.875Z] conversationClassification.init {“conversationId”:“669c6561-586d-43b3-a00d-cca005eaebc4”,“workspacePath”:“/private/var/folders/gg/17p27swx3h1f72bhb6gqv3nw0000gn/T”,“backendUrl”:“https://api2.cursor.sh”,“dbPath”:“/Users/acaibird/.cursor/ai-tracking/ai-code-tracking.db”,“transcriptsDir”:“/Users/acaibird/.cursor/projects/private-var-folders-gg-17p27swx3h1f72bhb6gqv3nw0000gn-T/agent-transcripts”,“insecure”:false}
[2026-06-22T05:57:11.875Z] conversationClassification.meta.initial {“conversationId”:“669c6561-586d-43b3-a00d-cca005eaebc4”,“lastUpdatedAt”:1782107831875,“model”:“unknown”,“mode”:“default”}
[2026-06-22T05:57:11.875Z] commitScoring.init {“workspacePath”:“/private/var/folders/gg/17p27swx3h1f72bhb6gqv3nw0000gn/T”,“backendUrl”:“https://api2.cursor.sh”,“dbPath”:“/Users/acaibird/.cursor/ai-tracking/ai-code-tracking.db”,“insecure”:false}
[2026-06-22T05:57:11.875Z] Loading existing conversation
[2026-06-22T05:57:11.879Z] startup.metrics {“total_ms”:388,“bundle_load_ms”:200,“config_load_ms”:12,“statsig_ms”:4,“chat_import_ms”:65,“workspace_resolution_ms”:2,“tracing_init_ms”:27,“analytics_init_ms”:0,“auth_ms”:15,“post_auth_prelude_ms”:8,“agent_store_open_ms”:0,“server_config_ms”:0,“hooks_config_ms”:1,“build_resources_ms”:13,“askpass_server_ms”:1,“mcp_and_model_init_ms”:1,“model_manager_init_ms”:1,“current_model_ms”:0,“render_ms”:28,“first_paint_ms”:382,“unaccounted_ms”:15,“has_compile_cache”:true,“bundle_size_bytes”:9812311}
[2026-06-22T05:57:11.879Z] analytics.track {“eventName”:“cli.startup.tti”,“props”:{“total_ms”:388,“bundle_load_ms”:200,“config_load_ms”:12,“statsig_ms”:4,“chat_import_ms”:65,“workspace_resolution_ms”:2,“tracing_init_ms”:27,“analytics_init_ms”:0,“auth_ms”:15,“post_auth_prelude_ms”:8,“auth_refresh_ms”:-1,“agent_store_open_ms”:0,“server_config_ms”:0,“headless_policy_ms”:-1,“hooks_config_ms”:1,“autorun_team_settings_ms”:-1,“build_resources_ms”:13,“plugin_imports_team_settings_ms”:-1,“askpass_server_ms”:1,“mcp_and_model_init_ms”:1,“mcp_init_ms”:-1,“model_manager_init_ms”:1,“current_model_ms”:0,“render_ms”:28,“first_paint_ms”:382,“unaccounted_ms”:15,“has_compile_cache”:true,“is_headless”:false,“mcp_deferred”:true,“channel”:“unknown”,“bundle_size_bytes”:9812311}}
[2026-06-22T05:57:11.879Z] structured-log.info {“key”:“agent_cli”,“message”:“agent_cli.startup.tti”,“metadata”:{“total_ms”:“388”,“bundle_load_ms”:“200”,“config_load_ms”:“12”,“statsig_ms”:“4”,“chat_import_ms”:“65”,“workspace_resolution_ms”:“2”,“tracing_init_ms”:“27”,“analytics_init_ms”:“0”,“auth_ms”:“15”,“post_auth_prelude_ms”:“8”,“auth_refresh_ms”:“-1”,“agent_store_open_ms”:“0”,“server_config_ms”:“0”,“headless_policy_ms”:“-1”,“hooks_config_ms”:“1”,“autorun_team_settings_ms”:“-1”,“build_resources_ms”:“13”,“plugin_imports_team_settings_ms”:“-1”,“askpass_server_ms”:“1”,“mcp_and_model_init_ms”:“1”,“mcp_init_ms”:“-1”,“model_manager_init_ms”:“1”,“current_model_ms”:“0”,“render_ms”:“28”,“first_paint_ms”:“382”,“unaccounted_ms”:“15”,“has_compile_cache”:“true”,“is_headless”:“false”,“mcp_deferred”:“true”,“channel”:“unknown”,“bundle_size_bytes”:“9812311”}}
[2026-06-22T05:57:11.880Z] startup.otel.span.emitted {“total_ms”:388,“phases_emitted”:15}
[2026-06-22T05:57:11.891Z] logger {“message”:“LocalCursorRulesService load completed”,“metadata”:{“durationMs”:57,“ruleCount”:0}}
[2026-06-22T05:57:12.728Z] cc-marketplace-import.start {“dir”:“/Users/acaibird/.claude/plugins/marketplaces”}
[2026-06-22T05:57:12.731Z] User does not belong to a team, skipping team commands
{“event”:“startup.plugin_imports_team_settings.deferred”,“level”:“INFO”,“data”:{“duration_ms”:886,“allowed”:true,“channel”:“unknown”}}
{“event”:“startup.autorun_team_settings.deferred”,“level”:“INFO”,“data”:{“duration_ms”:887,“allowed”:true,“channel”:“unknown”}}
[2026-06-22T05:57:12.738Z] cc-marketplace-import.foundMarketplaces {“count”:1}
[2026-06-22T05:57:12.754Z] cc-marketplace-import.skippedExistingUserMarketplace {“marketplaceName”:“claude-plugins-official”,“dirPath”:“/Users/acaibird/.claude/plugins/marketplaces/claude-plugins-official”}
[2026-06-22T05:57:12.754Z] cc-marketplace-import.discoveryComplete {“totalDirectories”:1,“payloads”:0,“skippedExisting”:1,“unparseable”:0}
[2026-06-22T05:57:12.754Z] cc-marketplace-import.noNewMarketplaces
{“event”:“serverConfigCache.refresh”,“level”:“INFO”,“data”:{“kind”:“updated”,“values”:{“serverAgentUrlConfig”:{“agentUrl”:“https://agentn.global.api5.cursor.sh”,“agentnUrl”:“https://agentn.global.api5.cursor.sh”},“cliSandboxDefaultEnabled”:false,“serverHttp2Config”:0}}}
[2026-06-22T05:57:12.771Z] logger {“message”:“CursorPluginsAgentSkillsService load completed”,“metadata”:{“durationMs”:935,“ruleCount”:5,“skillCount”:5}}
[2026-06-22T05:57:12.776Z] logger {“message”:“MCP OAuth provider initialized”,“metadata”:{“event”:“mcp_oauth_provider_initialized”,“cursorMcp”:{“oauth”:{“identifier”:“sentiment”}}}}
[2026-06-22T05:57:12.776Z] logger {“message”:“MCP OAuth provider initialized”,“metadata”:{“event”:“mcp_oauth_provider_initialized”,“cursorMcp”:{“oauth”:{“identifier”:“gate-perp”}}}}
[2026-06-22T05:57:12.776Z] logger {“message”:“MCP OAuth provider initialized”,“metadata”:{“event”:“mcp_oauth_provider_initialized”,“cursorMcp”:{“oauth”:{“identifier”:“binance-perp”}}}}
[2026-06-22T05:57:12.776Z] logger {“message”:“MCP OAuth provider initialized”,“metadata”:{“event”:“mcp_oauth_provider_initialized”,“cursorMcp”:{“oauth”:{“identifier”:“okx-perp”}}}}
[2026-06-22T05:57:12.802Z] telem-metrics CliMetricsBuffer: reportIncrement failed: [aborted] Client network socket disconnected before secure TLS connection was established
[2026-06-22T05:57:12.802Z] telem-metrics CliMetricsBuffer: reportDistribution failed: [aborted] Client network socket disconnected before secure TLS connection was established
[2026-06-22T05:57:13.255Z] logger {“message”:“managed_skills.removed”,“metadata”:{“skill_id”:“clone”,“reason”:“enabled_false”,“server_enabled”:false,“had_manifest_entry”:false,“last_synced_ms_ago”:null}}
[2026-06-22T05:57:13.255Z] logger {“message”:“managed_skills.removed”,“metadata”:{“skill_id”:“automate”,“reason”:“enabled_false”,“server_enabled”:false,“had_manifest_entry”:false,“last_synced_ms_ago”:null}}
[2026-06-22T05:57:13.258Z] logger {“message”:“managed_skills.removed”,“metadata”:{“skill_id”:“cursor”,“reason”:“enabled_false”,“server_enabled”:false,“had_manifest_entry”:false,“last_synced_ms_ago”:null}}
[2026-06-22T05:57:13.258Z] logger {“message”:“managed_skills.removed”,“metadata”:{“skill_id”:“cursor-blame”,“reason”:“enabled_false”,“server_enabled”:false,“had_manifest_entry”:false,“last_synced_ms_ago”:null}}
[2026-06-22T05:57:13.259Z] logger {“message”:“managed_skills.removed”,“metadata”:{“skill_id”:“cursor-sdk”,“reason”:“enabled_false”,“server_enabled”:false,“had_manifest_entry”:false,“last_synced_ms_ago”:null}}
[2026-06-22T05:57:13.259Z] logger {“message”:“managed_skills.removed”,“metadata”:{“skill_id”:“goal”,“reason”:“enabled_false”,“server_enabled”:false,“had_manifest_entry”:false,“last_synced_ms_ago”:null}}
[2026-06-22T05:57:13.260Z] logger {“message”:“managed_skills.removed”,“metadata”:{“skill_id”:“onboard”,“reason”:“enabled_false”,“server_enabled”:false,“had_manifest_entry”:false,“last_synced_ms_ago”:null}}
[2026-06-22T05:57:13.261Z] logger {“message”:“managed_skills.removed”,“metadata”:{“skill_id”:“cursor-review-links”,“reason”:“enabled_false”,“server_enabled”:false,“had_manifest_entry”:false,“last_synced_ms_ago”:null}}
[2026-06-22T05:57:13.261Z] logger {“message”:“managed_skills.removed”,“metadata”:{“skill_id”:“social-sharing-copy”,“reason”:“enabled_false”,“server_enabled”:false,“had_manifest_entry”:false,“last_synced_ms_ago”:null}}
[2026-06-22T05:57:13.302Z] logger {“message”:“AgentSkillsCursorRulesService load completed”,“metadata”:{“durationMs”:1468,“ruleCount”:30,“skillCount”:30}}
[2026-06-22T05:57:13.620Z] Loaded global commands: 6 (filtered out for missing git repo: 4 )
[2026-06-22T05:57:13.679Z] logger {“message”:“MCP OAuth provider initialized”,“metadata”:{“event”:“mcp_oauth_provider_initialized”,“cursorMcp”:{“oauth”:{“identifier”:“bybit-perp”}}}}
[2026-06-22T05:57:13.680Z] logger {“message”:“MCP OAuth provider initialized”,“metadata”:{“event”:“mcp_oauth_provider_initialized”,“cursorMcp”:{“oauth”:{“identifier”:“bitget-perp”}}}}
[2026-06-22T05:57:13.684Z] logger {“message”:“MCP OAuth provider initialized”,“metadata”:{“event”:“mcp_oauth_provider_initialized”,“cursorMcp”:{“oauth”:{“identifier”:“deribit-options”}}}}
[2026-06-22T05:57:13.686Z] logger {“message”:“MCP OAuth provider initialized”,“metadata”:{“event”:“mcp_oauth_provider_initialized”,“cursorMcp”:{“oauth”:{“identifier”:“plugin-stripe-stripe”,“serverUrl”:{“host”:“mcp.stripe.com”,“origin”:“https://mcp.stripe.com”,“path”:“/”}}}}}
[2026-06-22T05:57:13.686Z] logger {“message”:“MCP OAuth tokens loaded”,“metadata”:{“event”:“mcp_oauth_tokens_loaded”,“cursorMcp”:{“oauth”:{“identifier”:“plugin-stripe-stripe”,“serverUrl”:{“host”:“mcp.stripe.com”,“origin”:“https://mcp.stripe.com”,“path”:“/”},“accessTokenLen”:0,“refreshTokenPresent”:false,“expiresAtTimestamp”:null}}}}
[2026-06-22T05:57:13.686Z] logger {“message”:“MCP OAuth client information loaded”,“metadata”:{“event”:“mcp_oauth_client_info_loaded”,“cursorMcp”:{“oauth”:{“identifier”:“plugin-stripe-stripe”,“serverUrl”:{“host”:“mcp.stripe.com”,“origin”:“https://mcp.stripe.com”,“path”:“/”},“clientIdHash”:“d7083adb5a45”,“redirectUrisHash”:“d218f393a23e”,“redirectUriCount”:3}}}}
[2026-06-22T05:57:13.686Z] logger {“message”:“MCP OAuth tokens loaded”,“metadata”:{“event”:“mcp_oauth_tokens_loaded”,“cursorMcp”:{“oauth”:{“identifier”:“plugin-stripe-stripe”,“serverUrl”:{“host”:“mcp.stripe.com”,“origin”:“https://mcp.stripe.com”,“path”:“/”},“accessTokenLen”:0,“refreshTokenPresent”:false,“expiresAtTimestamp”:null}}}}
[2026-06-22T05:57:13.869Z] statsig.refresh.success {“clientInitialized”:true}
[2026-06-22T05:57:13.871Z] statsig.refresh.success {“clientInitialized”:true}
[2026-06-22T05:57:14.302Z] logger {“message”:“MCP HTTP exchange completed”,“metadata”:{“event”:“mcp_http_exchange”,“outcome”:“http_error”,“durationMs”:615,“cursorMcp”:{“transport”:{“identifier”:“plugin-stripe-stripe”,“source”:“mcp-agent-exec”,“transportType”:“streamableHttp”,“request”:{“method”:“POST”,“url”:{“host”:“mcp.stripe.com”,“origin”:“https://mcp.stripe.com”,“path”:“/”},“headers”:{“names”:[“accept”,“content-type”,“user-agent”],“count”:3},“contentType”:“application/json”,“body”:{“kind”:“text”,“bytes”:180,“contentLength”:180},“sessionIdHash”:null,“authorizationScheme”:null},“response”:{“status”:401,“ok”:false,“headers”:{“names”:[“cache-control”,“connection”,“content-length”,“content-security-policy”,“content-type”,“cross-origin-opener-policy”,“date”,“expires”,“pragma”,“referrer-policy”,“report-to”,“reporting-endpoints”,“server”,“strict-transport-security”,“www-authenticate”,“x-content-type-options”,“x-robots-tag”,“x-stripe-proxy-response”,“x-stripe-server-rpc-duration-micros”,“x-wc”],“count”:20},“contentType”:“application/json”,“body”:{“kind”:“stream”,“bytes”:81,“contentLength”:81,“errorSummary”:“{“error”:“Unauthorized. See Model Context Protocol (MCP) | Stripe Documentation for usage instructions.”}”},“sessionIdHash”:null,“wwwAuthenticateHash”:“5feceb64447a”,“mcpProtocolVersion”:null}}}}}
[2026-06-22T05:57:14.806Z] privacy.refresh.start {“isStale”:false,“sampleEvery”:10}
[2026-06-22T05:57:14.826Z] logger {“message”:“MCP HTTP exchange completed”,“metadata”:{“event”:“mcp_http_exchange”,“outcome”:“success”,“durationMs”:524,“cursorMcp”:{“transport”:{“identifier”:“plugin-stripe-stripe”,“source”:“mcp-agent-exec”,“transportType”:“streamableHttp”,“request”:{“method”:“GET”,“url”:{“host”:“mcp.stripe.com”,“origin”:“https://mcp.stripe.com”,“path”:“/.well-known/oauth-protected-resource”},“headers”:{“names”:[“mcp-protocol-version”,“user-agent”],“count”:2},“contentType”:null,“body”:{“kind”:“none”,“bytes”:0,“contentLength”:null},“sessionIdHash”:null,“authorizationScheme”:null},“response”:{“status”:200,“ok”:true,“headers”:{“names”:[“access-control-allow-methods”,“access-control-allow-origin”,“access-control-max-age”,“cache-control”,“connection”,“content-length”,“content-security-policy”,“content-type”,“cross-origin-opener-policy”,“date”,“expires”,“pragma”,“referrer-policy”,“report-to”,“reporting-endpoints”,“server”,“strict-transport-security”,“vary”,“x-content-type-options”,“x-robots-tag”,“x-stripe-proxy-response”,“x-stripe-server-rpc-duration-micros”,“x-wc”],“count”:23},“contentType”:“application/json”,“body”:{“kind”:“stream”,“bytes”:95,“contentLength”:95},“sessionIdHash”:null,“wwwAuthenticateHash”:null,“mcpProtocolVersion”:null}}}}}
[2026-06-22T05:57:15.637Z] logger {“message”:“MCP HTTP exchange completed”,“metadata”:{“event”:“mcp_http_exchange”,“outcome”:“success”,“durationMs”:809,“cursorMcp”:{“transport”:{“identifier”:“plugin-stripe-stripe”,“source”:“mcp-agent-exec”,“transportType”:“streamableHttp”,“request”:{“method”:“GET”,“url”:{“host”:“access.stripe.com”,“origin”:“https://access.stripe.com”,“path”:“/.well-known/oauth-authorization-server/mcp”},“headers”:{“names”:[“accept”,“mcp-protocol-version”,“user-agent”],“count”:3},“contentType”:null,“body”:{“kind”:“none”,“bytes”:0,“contentLength”:null},“sessionIdHash”:null,“authorizationScheme”:null},“response”:{“status”:200,“ok”:true,“headers”:{“names”:[“access-control-allow-methods”,“access-control-allow-origin”,“access-control-max-age”,“cache-control”,“connection”,“content-length”,“content-security-policy”,“content-type”,“cross-origin-embedder-policy”,“cross-origin-opener-policy”,“cross-origin-resource-policy”,“date”,“expires”,“pragma”,“referrer-policy”,“report-to”,“reporting-endpoints”,“server”,“strict-transport-security”,“vary”,“x-content-type-options”,“x-robots-tag”,“x-stripe-priority-routing-enabled”,“x-stripe-proxy-response”,“x-stripe-routing-context-priority-tier”,“x-stripe-server-rpc-duration-micros”,“x-wc”],“count”:27},“contentType”:“application/json; charset=utf-8”,“body”:{“kind”:“stream”,“bytes”:600,“contentLength”:600},“sessionIdHash”:null,“wwwAuthenticateHash”:null,“mcpProtocolVersion”:null}}}}}
[2026-06-22T05:57:15.642Z] logger {“message”:“MCP OAuth state transition”,“metadata”:{“event”:“mcp_oauth_state_transition”,“cursorMcp”:{“oauth”:{“identifier”:“plugin-stripe-stripe”,“from”:“connecting”,“to”:“needsAuth”,“cause”:“connect_auth_error”,“transport”:“streamableHttp”,“refreshTokenPresent”:false,“host”:“mcp.stripe.com”,“origin”:“https://mcp.stripe.com”,“path”:“/”,“errorName”:“Error”,“errorMessage”:“Unauthorized”,“errorType”:“object”,“sdkErrorKind”:“generic_error”}}}}
[2026-06-22T05:57:15.643Z] startup.otel.deferred_mcp_init_span.emitted {“duration_ms”:3796,“channel”:“unknown”}
[2026-06-22T05:57:15.759Z] protoPrivacyToGhostMode {“privacyMode”:3}
[2026-06-22T05:57:15.759Z] privacy.refresh.unchanged {“ghost”:false}
[2026-06-22T05:57:17.975Z] logger {“message”:“MCP OAuth provider initialized”,“metadata”:{“event”:“mcp_oauth_provider_initialized”,“cursorMcp”:{“oauth”:{“identifier”:“sentiment”}}}}
[2026-06-22T05:57:17.975Z] logger {“message”:“MCP OAuth provider initialized”,“metadata”:{“event”:“mcp_oauth_provider_initialized”,“cursorMcp”:{“oauth”:{“identifier”:“gate-perp”}}}}
[2026-06-22T05:57:17.975Z] logger {“message”:“MCP OAuth provider initialized”,“metadata”:{“event”:“mcp_oauth_provider_initialized”,“cursorMcp”:{“oauth”:{“identifier”:“binance-perp”}}}}
[2026-06-22T05:57:17.975Z] logger {“message”:“MCP OAuth provider initialized”,“metadata”:{“event”:“mcp_oauth_provider_initialized”,“cursorMcp”:{“oauth”:{“identifier”:“okx-perp”}}}}
[2026-06-22T05:57:18.602Z] logger {“message”:“MCP OAuth provider initialized”,“metadata”:{“event”:“mcp_oauth_provider_initialized”,“cursorMcp”:{“oauth”:{“identifier”:“bybit-perp”}}}}
[2026-06-22T05:57:18.624Z] logger {“message”:“MCP OAuth provider initialized”,“metadata”:{“event”:“mcp_oauth_provider_initialized”,“cursorMcp”:{“oauth”:{“identifier”:“bitget-perp”}}}}
[2026-06-22T05:57:18.632Z] logger {“message”:“MCP OAuth provider initialized”,“metadata”:{“event”:“mcp_oauth_provider_initialized”,“cursorMcp”:{“oauth”:{“identifier”:“deribit-options”}}}}
[2026-06-22T05:57:18.633Z] logger {“message”:“MCP OAuth provider initialized”,“metadata”:{“event”:“mcp_oauth_provider_initialized”,“cursorMcp”:{“oauth”:{“identifier”:“plugin-stripe-stripe”,“serverUrl”:{“host”:“mcp.stripe.com”,“origin”:“https://mcp.stripe.com”,“path”:“/”}}}}}
[2026-06-22T05:57:18.633Z] logger {“message”:“MCP OAuth tokens loaded”,“metadata”:{“event”:“mcp_oauth_tokens_loaded”,“cursorMcp”:{“oauth”:{“identifier”:“plugin-stripe-stripe”,“serverUrl”:{“host”:“mcp.stripe.com”,“origin”:“https://mcp.stripe.com”,“path”:“/”},“accessTokenLen”:0,“refreshTokenPresent”:false,“expiresAtTimestamp”:null}}}}
[2026-06-22T05:57:18.633Z] logger {“message”:“MCP OAuth client information loaded”,“metadata”:{“event”:“mcp_oauth_client_info_loaded”,“cursorMcp”:{“oauth”:{“identifier”:“plugin-stripe-stripe”,“serverUrl”:{“host”:“mcp.stripe.com”,“origin”:“https://mcp.stripe.com”,“path”:“/”},“clientIdHash”:“d7083adb5a45”,“redirectUrisHash”:“d218f393a23e”,“redirectUriCount”:3}}}}
[2026-06-22T05:57:18.633Z] logger {“message”:“MCP OAuth tokens loaded”,“metadata”:{“event”:“mcp_oauth_tokens_loaded”,“cursorMcp”:{“oauth”:{“identifier”:“plugin-stripe-stripe”,“serverUrl”:{“host”:“mcp.stripe.com”,“origin”:“https://mcp.stripe.com”,“path”:“/”},“accessTokenLen”:0,“refreshTokenPresent”:false,“expiresAtTimestamp”:null}}}}
[2026-06-22T05:57:19.163Z] logger {“message”:“MCP HTTP exchange completed”,“metadata”:{“event”:“mcp_http_exchange”,“outcome”:“http_error”,“durationMs”:529,“cursorMcp”:{“transport”:{“identifier”:“plugin-stripe-stripe”,“source”:“mcp-agent-exec”,“transportType”:“streamableHttp”,“request”:{“method”:“POST”,“url”:{“host”:“mcp.stripe.com”,“origin”:“https://mcp.stripe.com”,“path”:“/”},“headers”:{“names”:[“accept”,“content-type”,“user-agent”],“count”:3},“contentType”:“application/json”,“body”:{“kind”:“text”,“bytes”:180,“contentLength”:180},“sessionIdHash”:null,“authorizationScheme”:null},“response”:{“status”:401,“ok”:false,“headers”:{“names”:[“cache-control”,“connection”,“content-length”,“content-security-policy”,“content-type”,“cross-origin-opener-policy”,“date”,“expires”,“pragma”,“referrer-policy”,“report-to”,“reporting-endpoints”,“server”,“strict-transport-security”,“www-authenticate”,“x-content-type-options”,“x-robots-tag”,“x-stripe-proxy-response”,“x-stripe-server-rpc-duration-micros”,“x-wc”],“count”:20},“contentType”:“application/json”,“body”:{“kind”:“stream”,“bytes”:81,“contentLength”:81,“errorSummary”:“{“error”:“Unauthorized. See Model Context Protocol (MCP) | Stripe Documentation for usage instructions.”}”},“sessionIdHash”:null,“wwwAuthenticateHash”:“5feceb64447a”,“mcpProtocolVersion”:null}}}}}
[2026-06-22T05:57:19.432Z] logger {“message”:“MCP HTTP exchange completed”,“metadata”:{“event”:“mcp_http_exchange”,“outcome”:“success”,“durationMs”:268,“cursorMcp”:{“transport”:{“identifier”:“plugin-stripe-stripe”,“source”:“mcp-agent-exec”,“transportType”:“streamableHttp”,“request”:{“method”:“GET”,“url”:{“host”:“mcp.stripe.com”,“origin”:“https://mcp.stripe.com”,“path”:“/.well-known/oauth-protected-resource”},“headers”:{“names”:[“mcp-protocol-version”,“user-agent”],“count”:2},“contentType”:null,“body”:{“kind”:“none”,“bytes”:0,“contentLength”:null},“sessionIdHash”:null,“authorizationScheme”:null},“response”:{“status”:200,“ok”:true,“headers”:{“names”:[“access-control-allow-methods”,“access-control-allow-origin”,“access-control-max-age”,“cache-control”,“connection”,“content-length”,“content-security-policy”,“content-type”,“cross-origin-opener-policy”,“date”,“expires”,“pragma”,“referrer-policy”,“report-to”,“reporting-endpoints”,“server”,“strict-transport-security”,“vary”,“x-content-type-options”,“x-robots-tag”,“x-stripe-proxy-response”,“x-stripe-server-rpc-duration-micros”,“x-wc”],“count”:23},“contentType”:“application/json”,“body”:{“kind”:“stream”,“bytes”:95,“contentLength”:95},“sessionIdHash”:null,“wwwAuthenticateHash”:null,“mcpProtocolVersion”:null}}}}}
[2026-06-22T05:57:20.091Z] logger {“message”:“MCP HTTP exchange completed”,“metadata”:{“event”:“mcp_http_exchange”,“outcome”:“success”,“durationMs”:658,“cursorMcp”:{“transport”:{“identifier”:“plugin-stripe-stripe”,“source”:“mcp-agent-exec”,“transportType”:“streamableHttp”,“request”:{“method”:“GET”,“url”:{“host”:“access.stripe.com”,“origin”:“https://access.stripe.com”,“path”:“/.well-known/oauth-authorization-server/mcp”},“headers”:{“names”:[“accept”,“mcp-protocol-version”,“user-agent”],“count”:3},“contentType”:null,“body”:{“kind”:“none”,“bytes”:0,“contentLength”:null},“sessionIdHash”:null,“authorizationScheme”:null},“response”:{“status”:200,“ok”:true,“headers”:{“names”:[“access-control-allow-methods”,“access-control-allow-origin”,“access-control-max-age”,“cache-control”,“connection”,“content-length”,“content-security-policy”,“content-type”,“cross-origin-embedder-policy”,“cross-origin-opener-policy”,“cross-origin-resource-policy”,“date”,“expires”,“pragma”,“referrer-policy”,“report-to”,“reporting-endpoints”,“server”,“strict-transport-security”,“vary”,“x-content-type-options”,“x-robots-tag”,“x-stripe-priority-routing-enabled”,“x-stripe-proxy-response”,“x-stripe-routing-context-priority-tier”,“x-stripe-server-rpc-duration-micros”,“x-wc”],“count”:27},“contentType”:“application/json; charset=utf-8”,“body”:{“kind”:“stream”,“bytes”:600,“contentLength”:600},“sessionIdHash”:null,“wwwAuthenticateHash”:null,“mcpProtocolVersion”:null}}}}}
[2026-06-22T05:57:20.093Z] logger {“message”:“MCP OAuth state transition”,“metadata”:{“event”:“mcp_oauth_state_transition”,“cursorMcp”:{“oauth”:{“identifier”:“plugin-stripe-stripe”,“from”:“connecting”,“to”:“needsAuth”,“cause”:“connect_auth_error”,“transport”:“streamableHttp”,“refreshTokenPresent”:false,“host”:“mcp.stripe.com”,“origin”:“https://mcp.stripe.com”,“path”:“/”,“errorName”:“Error”,“errorMessage”:“Unauthorized”,“errorType”:“object”,“sdkErrorKind”:“generic_error”}}}}


— Cursor Agent Debug Session 2026-06-22T05:57:12.064Z —
{“event”:“debug-session-start”,“directory”:“/var/folders/gg/17p27swx3h1f72bhb6gqv3nw0000gn/T/cursor-agent-logs-501”,“logFile”:“/var/folders/gg/17p27swx3h1f72bhb6gqv3nw0000gn/T/cursor-agent-logs-501/session-2026-06-22T05-57-12-063Z-72311-1.log”,“pid”:72311,“startTime”:“2026-06-22T05:57:12.064Z”}
[2026-06-22T05:57:12.064Z] ripgrep.configureSuccess {“ripgrepPath”:“/Users/acaibird/.local/share/cursor-agent/versions/2026.06.19-20-24-33-653a7fb/rg”,“ripgrepSource”:“colocated”}
Stack trace:
at Q (/Users/acaibird/.local/share/cursor-agent/versions/2026.06.19-20-24-33-653a7fb/index.js:414:6255)
at S (/Users/acaibird/.local/share/cursor-agent/versions/2026.06.19-20-24-33-653a7fb/index.js:414:11459)
at /Users/acaibird/.local/share/cursor-agent/versions/2026.06.19-20-24-33-653a7fb/index.js:414:13073
[2026-06-22T05:57:12.064Z] sandbox.configureSuccess {“sandboxBinary”:“/Users/acaibird/.local/share/cursor-agent/versions/2026.06.19-20-24-33-653a7fb/cursorsandbox”,“sandboxSource”:“colocated”}
Stack trace:
at Q (/Users/acaibird/.local/share/cursor-agent/versions/2026.06.19-20-24-33-653a7fb/index.js:414:6255)
at B (/Users/acaibird/.local/share/cursor-agent/versions/2026.06.19-20-24-33-653a7fb/index.js:414:11712)
at /Users/acaibird/.local/share/cursor-agent/versions/2026.06.19-20-24-33-653a7fb/index.js:414:13077
[2026-06-22T05:57:12.065Z] analytics.track {“eventName”:“cli.launch”}
[2026-06-22T05:57:12.078Z] statsig.setupLazyInit {“endpoint”:“https://api2.cursor.sh”}
[2026-06-22T05:57:12.084Z] statsig.initialize.success {“fromCache”:true}
[2026-06-22T05:57:14.310Z] statsig.refresh.success {“clientInitialized”:true}


Contents of the two debug log files

Thanks for the logs. One important note: what you sent are startup logs, and in them the CLI starts and exits normally you can see first_paint and startup.metrics. So the actual hang is not in these logs. It happens after you enter a prompt and press Enter, when the agent takes a snapshot of your login shell environment.

To capture the exact hang:

  1. In fish, run agent --debug.
  2. Type any prompt and press Enter.
  3. Wait for it to hang, let it sit for about 10 to 15 seconds, then press Ctrl+C.
  4. Send the log file from $TMPDIR/cursor-agent-debug-<id>/session.log this is the one that will show which step it got stuck on.

A couple more things that will really help:

Since zsh works but fish and bash hang, it’s almost certainly something set in the fish or bash configs but not in .zshrc. A common culprit is proxy environment variables. Check ~/.config/fish/config.fish, ~/.bash_profile, and ~/.bashrc for HTTP_PROXY / HTTPS_PROXY / ALL_PROXY or any commands that could block during shell startup. The log also shows a network socket getting cut off, which fits this theory. The GUI works because it’s not launched from fish or bash, so it doesn’t inherit those variables.

Please share the contents of those three config files. That’ll help us find exactly what’s causing the block faster.

Also, can you confirm that in fish you tried it with the env prefix?

env SHELL=/bin/zsh agent

Without env just SHELL=/bin/zsh agent won’t work in fish. That’s bash or zsh syntax. Let me know how it goes.

I solved the problem. I followed the official Fish shell deletion tutorial to clean up some files, and then reinstalled Fish shell. The agent is now working correctly. Thank you.