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.
-
Model Interaction
- Read model information, selection sets, and the current editing path.
- Read limited entity geometry information and audit events.
-
Structured Operations
- Perform operations such as creating geometry (boxes, cylinders), selecting/deleting entities, switching active tags, and saving the model.
-
Communication and Binding
- Dispatch commands to an explicitly specified SketchUp instance or the current session.
- Open an authenticated Harness chat interface inside SketchUp.
-
Compatibility Shims
- Execute the
core-js/stableshim before application modules load in the embedded window, adding standard APIs such as Iterator, Set operations, grouping, and array copying.
- Execute the
-
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¶
- Download
dsh-sketchup-0.1.0-alpha.1.zipfrom the GitHub release page. - Extract the ZIP file.
- Run
install.ps1in 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
-DryRunto preview operations.
- 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¶
- In SketchUp, click Extensions → Extension Manager → Install Extension.
- Install the downloaded
dsh-sketchup-0.1.0-alpha.1.rbz. - After installation, select Install DSH Host for SketchUp… from the SketchUp Extensions menu.
- 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
allowPluginWriteandallowPluginLoadtofalseby default. Once enabled, Ruby code obtains SketchUp process permissions. Each write or reload requires passingconfirm: true. Although there is no genericevalcommand, 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-bridgeOrigin 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