dsh-app-launcher
其他 活跃维护

dsh-app-launcher

TerricSH/dsh-app-launcher

轻量级开源Web界面组件,可在会话头部右侧工具区域新增分割式工作区启动控制,支持快速切换、启动不同工作区,无需修改原有界面逻辑,即装即用。

0
Stars 标星
0
Forks 分支
0
Watchers 关注
0
Open Issues
JavaScript
主要语言
MIT
开源协议
35 KB
仓库大小
1 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:TerricSH/dsh-app-launcher
git clone https://github.com/TerricSH/dsh-app-launcher.git
git clone git@github.com:TerricSH/dsh-app-launcher.git
README.md main

@terricsh/dsh-app-launcher

Workspace launcher for the DeepSeek Harness Web GUI.

Adds a split control to the session header's right-aligned utilities row
(beside session export):

  • 主按钮「打开」:以文件夹形式打开当前工作区(资源管理器)。
  • 「命令行」:在当前工作区目录打开一个 cmd 窗口(cmd /k,窗口保持),
    方便直接执行命令。
  • 右侧「▾」下拉:切换用其他工具打开工作区,如 VS Code(code)、
    opencode、Cursor——仅显示本机实际安装的工具;也可在「管理工具…」中
    自行添加/删除(名称 + 命令,支持可执行文件名或完整路径)。
  • 菜单与按钮显示 Windows 系统图标(文件夹图标取自 shell32.dll;
    工具图标从其真实 exe 提取)。

Installation

Add the plugin row to the host patch layer (e.g.
$DSH_HOME/profiles/<profile>/cordis.patch.yml):

- insert:
    - id: app-launcher
      name: '@terricsh/dsh-app-launcher'

Install the package where the profile can resolve it (the profile's
node_modules, e.g. via a junction to a local checkout), then restart the
dsh web server.

How it works

  • Host half (lib/index.js) registers three HTTP routes:
    • POST /dsh-launcher/launch — { kind: 'folder', path } opens the folder
      in Explorer; { kind: 'terminal', path } opens a persistent cmd /k
      window at the path; { kind: 'tool', command, path } resolves the real
      .exe (skipping .cmd/.bat shims so no extra console window appears)
      and starts it with Start-Process <exe> "<path>" (falling back to the raw
      command for terminal tools such as opencode).
    • POST /dsh-launcher/check — probes where.exe for a command.
    • POST /dsh-launcher/icon — extracts the folder icon from shell32.dll
      or a tool's associated icon and returns it as a PNG data URL (cached).
  • Client half (lib/client.js) renders the split launcher into
    conversation.session.header.utilities, derives the current workspace from
    the session/workspace snapshots, and calls the routes with fetch.

Launching is an explicit desktop action, so the host executes it with the
danger-full-access sandbox policy (the deployment default workspace-write
has no usable Windows ACL runner on this host).

Windows only. Requires the shell and sandboxPolicy services (shipped with
the default web profile).

License

MIT