Introduction

The core philosophy of DeepSeek Harness (DSH) is that “everything is a plugin.” For SketchUp developers or users, integrating local AI capabilities directly into modeling software typically presents compatibility challenges: the built-in Chromium engine in SketchUp 2024 lacks modern JavaScript standard APIs, and it has no built-in Agent interaction interface.

dsh-sketchup solves these two issues. It is a bundle of a standalone DeepSeek Harness Host plugin and a SketchUp Ruby extension. It provides an authenticated Harness chat interface inside SketchUp, establishes a local bridge over WebSocket, and adds the compatibility shims needed by Chromium.

Plugin Overview

  • Name: dsh-sketchup
  • Positioning: Standalone DSH Host plugin + SketchUp Ruby extension
  • Maintainer: leolee9086
  • License: MIT

This plugin aims to let SketchUp act as a DSH host, enabling reading of model data, execution of structured operations, and deep integration with local Agents.

Core Features

The plugin provides a full set of capabilities from reading model data to performing operations, and it is optimized for the WebView in SketchUp 2024.

  1. Model Interaction

    • Read model information, selection sets, and the current editing path.
    • Read limited entity geometry information and audit events.
  2. Structured Operations

    • Perform operations such as creating geometry (boxes, cylinders), selecting/deleting entities, switching active tags, and saving the model.
  3. Communication and Binding

    • Dispatch commands to an explicitly specified SketchUp instance or the current session.
    • Open an authenticated Harness chat interface inside SketchUp.
  4. Compatibility Shims

    • Execute the core-js/stable shim before application modules load in the embedded window, adding standard APIs such as Iterator, Set operations, grouping, and array copying.
  5. Ruby Plugin Management

    • Enable writing and reloading Ruby plugins inside a specified Plugins subdirectory on demand.

Installation and Activation

The plugin is currently available as a prerelease (v0.1.0-alpha.1), verified on Windows + SketchUp 2024 (24.0.484, Ruby 3.2.2). The following are three installation methods:

Option 1: Using the Full Installer Bundle

  1. Download dsh-sketchup-0.1.0-alpha.1.zip from the GitHub release page.
  2. Extract the ZIP file.
  3. Run install.ps1 in PowerShell.
    • The script automatically registers the precompiled Host package with a DSH profile and installs the Ruby extension into the SketchUp Plugins directory.
    • You can specify paths via arguments or use -DryRun to preview operations.
  4. After installation, restart DSH to load the new Host files, then save the model and restart SketchUp to load the new Ruby files.

Option 2: Using the SketchUp Extension Manager

  1. In SketchUp, click Extensions → Extension Manager → Install Extension.
  2. Install the downloaded dsh-sketchup-0.1.0-alpha.1.rbz.
  3. After installation, select Install DSH Host for SketchUp… from the SketchUp Extensions menu.
  4. The bootstrap installer verifies files using SHA256 and completes the process in a separate PowerShell window.

Option 3: Using the DSH CLI

If DSH is already installed, you can directly register the Host package:

dsh plugin --profile web add --save-exact ./leolee9086-dsh-sketchup-0.1.0-alpha.1.tgz

Use Cases and Considerations

Permissions and Security

  • Permissions Off by Default: The Host configuration included with the package sets allowPluginWrite and allowPluginLoad to false by default. Once enabled, Ruby code obtains SketchUp process permissions. Each write or reload requires passing confirm: true. Although there is no generic eval command, loading Ruby files constitutes code execution, so be sure to review the source code before enabling.
  • Identity Verification: Loopback address checks and the fixed sketchup://dsh-bridge Origin are used to constrain browser origins, but they cannot verify the identity of a malicious local process. Therefore, use it only in a trusted local environment.

Networking and Connectivity

  • Disconnection Handling: After a disconnection, tasks for that connection that have not yet been executed are discarded. Network queues have size limits, and writes have timeout limits. A cancellation does not undo native model modifications that have already started.
  • Session Binding: WebView session binding is a client-side coordination mechanism, not an atomic permission boundary. Avoid binding the same session simultaneously to different SketchUp instances across multiple windows.

Technical Limitations

  • CEF Compatibility: Shims cannot upgrade CSS, codecs, browser permissions, or unsupported JavaScript syntax. Web Workers have isolated execution environments and require separate compatibility handling.
  • Platform Support: Currently, only the bridge and embedded chat on Windows + SketchUp 2024 have been verified. Other versions have not yet been tested.

Summary

dsh-sketchup provides a stable path to run DSH inside SketchUp 2024. It addresses the missing standard APIs in the WebView and provides a secure Ruby script execution environment. For scenarios requiring deep integration of modeling automation or local AI-assisted development, it is a practical tool.

Project URL: https://github.com/leolee9086/dsh-sketchup