Introduction

When DeepSeek Harness (DSH) runs agent tasks, it often needs to wait for permission approval in background sessions or browser tabs. When approval requests pile up, developers frequently have to switch context windows to handle these popups. The wxjgit/permission-popup plugin aggregates pending approval requests from the current session and background sessions into a card stack in the page corner, allowing you to process approvals quickly without navigating away.

Plugin Overview

This is a community-maintained plugin, currently licensed under MIT. The plugin uses DeepSeek Harness’s Web UI plugin mechanism to intercept and display pending permission requests.

Core Positioning: Displays approval cards in the page corner and provides quick “Allow once” or “Reject” actions.

Verified Facts:
* Author: wxjgit
* Category: Client
* License: MIT

Core Features

The plugin has the following features:

  1. Multi-Session Aggregation: Displays a stack of pending approval cards for the current and background sessions in the page corner.
  2. Information Display: Shows the conversation title, tool name, approval reason, and Shell command when available.
  3. Quick Actions: Performs “Allow once” or “Reject” actions on cards through the existing DSH approval channel.
  4. Trigger Policies: Supports three trigger policies: background (background), always (always), and hidden-only (only when hidden).
  5. Local Persistence: Automatically saves corner position, stack size, visibility, notification settings, and title reminder preferences.
  6. Background Notifications: Can send desktop notifications when the browser tab is hidden.
  7. Non-Intrusive: Does not add prompt text, model requests, token usage, or KV cache content to the page.

Installation and Activation

Install it into the Web configuration file using DSH’s command-line tool.

dsh plugin --profile web add github:wxjgit/permission-popup

After installation, restart the Web UI to load the plugin layer:

dsh web

Usage

The plugin is automatically activated under the Web configuration. When the configured trigger policy is met, the cards appear in the specified corner.

  1. Allow once: Approves only the currently displayed request.
  2. Reject: Rejects the currently displayed request.
  3. Open session: Click the amber strip on the card to jump to the session window that issued the request.
  4. Configuration Management: Click the gear button on the card stack to configure the trigger policy, card position, maximum stack count, desktop notification toggle, and tab title reminder.

Browser Tab Hidden Scenario

When the browser tab is minimized or hidden, the cards in the page corner may not be directly visible. In this case, enable “Desktop notify while hidden” (send desktop notification while hidden) in the plugin settings and grant the website notification permission. After receiving the system notification, clicking the notification focuses the browser and opens the relevant session.

Use Cases and Notes

  • Environment Requirements: DeepSeek Harness is currently in pre-release. Plugin APIs and compatibility requirements may change before the first tagged release. Use it in a DSH environment compatible with the 0.1.1-rc.2 client package.
  • Permission Safety: The plugin does not bypass DSH permission checks. Decisions are executed through the existing PendingWait response channel. The card disappears only after the host broadcasts approval/resolved.
  • Notification Content: Desktop notifications include only the conversation title and the approval reason or tool name. For privacy, they do not include full command arguments.
  • Data Storage: User preferences are stored in the browser’s localStorage under the key dsh-permission-popup.prefs.
  • Source Review: Because this is a community project, in sensitive environments, be sure to review the third-party plugin source code and pin it to a trusted commit.

Conclusion

This plugin simplifies interaction steps in multi-session environments by aggregating the approval flow. For more details and source code, refer to the project directory page or GitHub repository.