DSH plugin bundling the pixinsight-pipeline skill + file-based PixInsight IPC bridge (astro processing, WBPP automation)
Overview
— automated deep-sky astrophotography processing driven from DSH through a file-based IPC bridge into a running PixInsight 1.9.4. It bundles three things so it works as a normal DSH plugin: 1. the (skills/pixinsight-pipeline/SKILL.md + reference/ knowledge base), 2. the (lib/pixinsight-mcp/scripts/pi-tool.mjs) and its ops modules, 3. the (lib/pixinsight-mcp/pjsr/pixinsight-mcp-watcher.js) plus the headless wrapper (lib/pixinsight-mcp/run-wbpp.ps1). This package is only the side. Before calling pi-tool, PixInsight must be running with the bundled loaded, otherwise every call fails with PixInsight process not found. The exact launch / verify / drive / shutdown steps are in — start there, then read skills/pixinsight-pipeline/SKILL.md for the processing order. It backs up the profile package.json, copies the package into the profile node_modules, deploys the bridge toolkit to %DSH_HOME%\pixinsight-mcp, and appends the package to dsh.profile.bundles. Then .
README
dsh-pixinsight-pipeline
A DeepSeek Harness (DSH) plugin that packages the pixinsight-pipeline skill — automated
deep-sky astrophotography processing driven from DSH through a file-based IPC bridge into a
running PixInsight 1.9.4.
It bundles three things so it works as a normal DSH plugin:
- the skill (
skills/pixinsight-pipeline/SKILL.md+reference/knowledge base), - the bridge CLI (
lib/pixinsight-mcp/scripts/pi-tool.mjs) and its ops modules, - the PJSR watcher (
lib/pixinsight-mcp/pjsr/pixinsight-mcp-watcher.js) plus the headless WBPP wrapper (lib/pixinsight-mcp/run-wbpp.ps1).
DSH agent ── pi-tool.mjs ──> ~/.pixinsight-mcp/bridge/commands/{id}.json
│
PixInsight ── pixinsight-mcp-watcher.js (PJSR poll loop)
│ reads command, runs PJSR, writes result
▼
~/.pixinsight-mcp/bridge/results/{id}.json
For AI agents (read me first)
This package is only the director side. Before calling pi-tool, PixInsight must be
running with the bundled watcher script loaded, otherwise every call fails with
PixInsight process not found. The exact launch / verify / drive / shutdown steps are in
AGENTS.md — start there, then read skills/pixinsight-pipeline/SKILL.md
for the processing order.
Requirements
| Item | Notes |
|---|---|
| PixInsight | 1.9.4+ with BXT / NXT / SXT installed (RC Astro modules) |
| Node.js | ≥ 20 |
| DSH | profile with dsh.profile.bundles (desktop/web) |
| OS | Windows primarily (watcher #include paths point at C:/Program Files/PixInsight/src/scripts/AdP/*). macOS/Linux: adjust those paths. |
Install
A. As a DSH plugin (recommended)
powershell -ExecutionPolicy Bypass -File scripts\install-as-plugin.ps1 -Profile desktop
It backs up the profile package.json, copies the package into the profile node_modules,
deploys the bridge toolkit to %DSH_HOME%\pixinsight-mcp, and appends the package to
dsh.profile.bundles. Then fully restart DSH.
Uninstall: ... -Uninstall.
B. As a plain skill-root install
powershell -ExecutionPolicy Bypass -File scripts\install-into-dsh.ps1
Copies the skill to %DSH_HOME%\skills\pixinsight-pipeline and the toolkit to
%DSH_HOME%\pixinsight-mcp. Use one of A / B, not both (otherwise the skill appears twice).
First run
- Open PixInsight and load the watcher:
Script > Run Script File…→%DSH_HOME%\pixinsight-mcp\pjsr\pixinsight-mcp-watcher.js. Keep PixInsight open. The watcher logsPixInsight MCP Watcher v0.1.0and polls every ~1 s. - Verify the bridge:
node "%DSH_HOME%\pixinsight-mcp\scripts\pi-tool.mjs" list_open_images '{}'[]means alive.
Usage
The agent reads skills/pixinsight-pipeline/SKILL.md for the processing order and parameter
guide, then drives each step. Prefer the @ JSON form on Windows (PowerShell mangles
inner double quotes):
$args = Join-Path $env:TEMP 'piargs.json'
'{"view_id":"MyTarget","denoise":0.25,"detail":0.15}' | Set-Content $args -Encoding UTF8
node "%DSH_HOME%\pixinsight-mcp\scripts\pi-tool.mjs" run_nxt "@$args"
Headless WBPP (preprocessing) does not need the watcher — run the official automation mode:
powershell -ExecutionPolicy Bypass -File "%DSH_HOME%\pixinsight-mcp\run-wbpp.ps1" `
-InputDir "" -OutputDir ""
Layout
package.json # dsh.bundle.patch -> cordis.patch.yml
cordis.patch.yml # - insert: id: pixinsight-pipeline, name: dsh-pixinsight-pipeline
AGENTS.md # step-by-step PixInsight watcher setup for AI agents
lib/index.js # registers the bundled skill via ctx.skills.registerProvider()
lib/pixinsight-mcp/ # bridge toolkit (pi-tool CLI, PJSR watcher, WBPP wrapper)
skills/pixinsight-pipeline/ # SKILL.md + reference/*.md
scripts/ # install-as-plugin.ps1, install-into-dsh.ps1
Notes / gotchas
pi-tool’ssave_preview/save_variantuse forward-slash paths; Windows backslash paths get their\Uetc. eaten inside PJSR strings.ImageWindow.open()returns an array; usewins[0].mainView.- PixInsight is memory-hungry — call
w.purge()between heavy steps and close intermediates. - The watcher runs in PixInsight’s PJSR engine;
Ctrl+F11(or ashutdownsentinel file in the bridge dir) stops it. - Data processed with this plugin is local-only; never upload the user’s raw frames.
Credits
- Bridge design adapted from aescaffre/pixinsight-mcp (MIT).
- Star-stretch / Seti method: Seti Astro (Bill Blanshan).
- GHS: GHS Script (Mike Cranfield & Mark Shelley).
- BXT / NXT / SXT are commercial PixInsight modules by RC Astro (not redistributed).
License
MIT — see LICENSE.
Recommended Tools
Try a different keyword or remove a filter.
Install
npx skillfish add a5899/dsh-pixinsight-pipeline