macOS Seatbelt sandbox blocks outbound DNS resolution in Agent mode
Summary
Shell commands that require outbound network access (e.g. fetching YouTube content) fail with DNS resolution errors in Agent mode, but work correctly in YOLO mode on the same machine.
Environment
- deepseek-tui 0.8.1
- macOS (Apple Silicon, aarch64)
- Sandbox: macos-seatbelt (as reported by
deepseek doctor)
- sandbox_mode: workspace-write (default)
Steps to Reproduce
- Start DeepSeek TUI in Agent mode (default).
- Ask the agent to fetch or process content from an external URL (e.g. YouTube).
- The agent attempts a shell command involving DNS resolution (curl, wget, etc.).
- DNS resolution fails.
Expected Behavior
After the user approves the shell command, it should execute with full network access, same as running the command directly in the terminal.
Actual Behavior
The command runs inside the Seatbelt sandbox, which blocks DNS resolution. Error message:
DNS resolution failed for YouTube. This is a network issue — the sandbox can't reach YouTube's servers.
Workaround
Switching to YOLO mode resolves the issue, as commands bypass the Seatbelt sandbox wrapper.
Investigation
- Confirmed the issue is not a general network problem — Claude Code and OpenAI Codex execute identical network commands without issue on the same machine.
- Adding
sandbox_mode = "danger-full-access" and configuring [network] default = "allow" with explicit domain allowlists in config.toml had no effect. Only switching to YOLO mode resolved it.
- This suggests the Seatbelt profile compiled into the binary restricts outbound network access at the OS level, and user-facing config options cannot override it.
Suggestion
Consider either:
- Allowing outbound network access in the Seatbelt profile after the user has explicitly approved the command (the approval step already provides the safety gate).
- Exposing a config option that controls whether approved shell commands run inside or outside the Seatbelt sandbox.
- Documenting this limitation for macOS users.
macOS Seatbelt sandbox blocks outbound DNS resolution in Agent mode
Summary
Shell commands that require outbound network access (e.g. fetching YouTube content) fail with DNS resolution errors in Agent mode, but work correctly in YOLO mode on the same machine.
Environment
deepseek doctor)Steps to Reproduce
Expected Behavior
After the user approves the shell command, it should execute with full network access, same as running the command directly in the terminal.
Actual Behavior
The command runs inside the Seatbelt sandbox, which blocks DNS resolution. Error message:
Workaround
Switching to YOLO mode resolves the issue, as commands bypass the Seatbelt sandbox wrapper.
Investigation
sandbox_mode = "danger-full-access"and configuring[network] default = "allow"with explicit domain allowlists in config.toml had no effect. Only switching to YOLO mode resolved it.Suggestion
Consider either: