05
Rebuild the access boundary for remote execution
A remote DeepSeek Harness setup is not simply a local setup with a different browser address. It introduces account management, remote login, network exposure, sleep behavior, and recovery responsibilities.
Create a dedicated macOS user for the Agent runtime. Give that account access only to the intended project directory. Keep these items separate:
- DeepSeek API Key.
- Source control credentials.
- SSH keys used for administration.
- macOS administrator privileges.
- Project files and build artifacts.
- Session logs and backup data.
Apple documents Remote Login as the SSH and SFTP access mechanism on macOS. In System Settings, open General → Sharing → Remote Login, enable it, and restrict access to selected users instead of all users. Apple also warns that enabling remote login can reduce security. Use Apple’s Remote Login instructions.
After enabling SSH, verify access from an administrator workstation:
Do not put the API key in the repository, shell history, issue tracker, or a deployment script committed to source control. Do not grant full disk access merely because a tool may need to read one project. Apple documents full-disk access options for remote users, but the least-privilege choice is to avoid enabling them unless the operational requirement is written down and approved.
Run the Web UI from the dedicated workspace:
cd /Users/dsh-agent/workspaces/test-project
npx @deepseek-ai/dsh web
The official guide notes that the invoking directory becomes the default filesystem location, but the fresh Web UI still requires an explicit workspace selection. That distinction matters: the process location is not a substitute for a reviewed workspace permission.
Avoid placing the Web UI directly on the public internet. A development UI that can read files and request command execution should sit behind a controlled access path, such as an authenticated private network, a restricted SSH tunnel, or an access gateway managed by the team. Public exposure creates an additional authentication and authorization problem that the npm command does not solve.