DeskPilot

0.5.0-preview0015

DeskPilot is a local, desktop-style web UI that fronts the ShellPilot engine to give non-technical users the full GitHub Copilot agent toolset (browse, read/write files, run commands, skills, instructions) with visible permissions and honest cost - no terminal or IDE required. The web UI is bundled in the module and served on loopback; ShellPilot and a Copilot-enabled
DeskPilot is a local, desktop-style web UI that fronts the ShellPilot engine to give non-technical users the full GitHub Copilot agent toolset (browse, read/write files, run commands, skills, instructions) with visible permissions and honest cost - no terminal or IDE required. The web UI is bundled in the module and served on loopback; ShellPilot and a Copilot-enabled GitHub account are required.
Show more

Minimum PowerShell version

7.0

This is a prerelease version of DeskPilot.
There is a newer prerelease version of this module available.
See the version list below for details.

Installation Options

Copy and Paste the following command to install this package using PowerShellGet More Info

Install-Module -Name DeskPilot -RequiredVersion 0.5.0-preview0015 -AllowPrerelease

Copy and Paste the following command to install this package using Microsoft.PowerShell.PSResourceGet More Info

Install-PSResource -Name DeskPilot -Version 0.5.0-preview0015 -Prerelease

You can deploy this package directly to Azure Automation. Note that deploying packages with dependencies will deploy all the dependencies to Azure Automation. Learn More

Manually download the .nupkg file to your system's default download location. Note that the file won't be unpacked, and won't include any dependencies. Learn More

Owners

Copyright

(c) Raimund Andree. MIT licensed.

Package Details

Author(s)

  • Raimund Andree

Tags

Copilot GitHubCopilot ShellPilot Agent AI GUI AgenticOperatingModel Windows Linux macOS

Functions

Start-DeskPilot

PSEditions

Core

Dependencies

This module has no dependencies.

Release Notes

## [0.5.0-preview0015] - 2026-08-24

### Added

- **Automatic response retries.** A Turn no longer stops at the first transient
 Engine failure or successful-but-empty response before work has begun. The new
 **Response retries** Setting controls how many extra attempts DeskPilot makes
 after the first (`0–100`, default `2`), with each wait capped at five seconds;
 `0` turns the behavior off, and Stop remains responsive during the wait.
 Retries stop as soon as any answer or Tool Activity has appeared, so DeskPilot
 never repeats a command or write behind the user's back. The Setting also says
 plainly that failed attempts can still consume time and Copilot credits, and
 the final token and cost Usage includes every attempt the Engine recorded
 rather than only the successful one.

- **MCP servers.** DeskPilot can now attach Model Context Protocol servers, so
 the agent gains tools from programs you choose — an issue tracker, a database,
 a document store — beside its own. A new **MCP servers** tab in Settings takes
 either a command DeskPilot runs or the path to an `mcp.json` you already keep
 for another editor (both the VS Code `servers` and the Claude `mcpServers`
 shapes are read). Each server reports what it is actually doing: whether it is
 running, which protocol version it negotiated, and exactly which tools it
 contributes. Nothing is ever discovered on its own — a file that can start a
 program has to be named by you — and a server's tools appear in the Activity
 panel as they are called, marked apart from DeskPilot's own so you can always
 tell whose code just ran.

 Three deliberate limits, because an MCP server is somebody else's program
 running with your privileges. **Secrets are never stored:** a server that needs
 a token names the environment variable, and DeskPilot reads the value from its
 own environment when it starts the server, so a settings backup cannot leak a
 key. **Reach can be narrowed:** *Only offer these tools* attaches a server for
 the two tools you want and keeps the rest away from the agent entirely. And a
 new **MCP servers** permission withholds every attached server's tools for a
 job without stopping the servers — while the panel states plainly that the
 other permissions limit DeskPilot's own tools and do not limit an attached
 server, which can bring file and shell tools of its own.

 Requires ShellPilot 0.4.0-preview0007 or later; on an older engine the panel
 says so and everything else works as before.

- **You can now watch the agent work.** The Activity panel only ever appeared
 once a job had finished, as an unordered list of what it had touched — so while
 the agent was working, the window said nothing beyond a spinner unless *Show
 the model's thinking* was on, and the only files it named live were the ones it
 wrote. Every tool the agent uses now appears in the panel the moment it is used,
 in order: the files it reads and writes, the folders it lists, the commands it
 runs, the **pages it fetches**, the searches it makes. A run of the same kind of
 action folds into one line — *Read 6 files*, *Fetched 2 pages* — which is open
 while the job runs and closed when it ends, leaving the whole panel as a single
 line the reader can open again. The account is kept with the message, so it
 survives a reload, and a job that was stopped or ran out of its step budget now
 keeps it too — those never receive a result, so until now they showed no
 activity at all. A fetched page is also finally named by its address rather than
 by the raw instruction that requested it.

- **One way to throw away a whole review.** Reviewing a set of changed files
 offered exactly one decision — *Undo this file* — so putting a whole change set
 back meant walking every file and undoing each one. The review footer now
 carries **Discard all changes**, which puts every file listed in the review
 back the way it was at the last save and deletes the files that were never
 saved. It appears only when there is more than one file to discard, sits at the
 opposite end of the footer from **Close** so a mis-click cannot reach it, and
 always asks first — naming how many files it is about to take, listing them,
 and saying plainly that it cannot be undone.

### Fixed

- **Attaching a photo no longer fails the whole message.** A camera-sized image
 attached to a Conversation ended the Turn at once with *Request Entity Too
 Large* and nothing in it to act on, while the same picture worked in Copilot
 Chat. DeskPilot was sending the original file at full resolution, and an image
 is written into the request encoded — about a third larger again — so one
 modern phone photo could overflow the request on its own, and attaching the
 same one twice made it certain. An image too large to send is now scaled down
 to the resolution the Models work at before it is uploaded, and DeskPilot says
 how many it resized rather than changing your file silently. An image that is
 already small enough is never touched, a PNG stays a PNG so screenshot text is
 not smeared, and an animated image — GIF, animated WebP or APNG — is left
 alone rather than being flattened to a single frame. If an oversized image
 still arrives — over Intercom, which has no browser to resize it — it is now
 refused up front with a message naming the file and its actual size, instead
 of costing a round trip and coming back as an unreadable error. A Turn refused
 this way hands your prompt and your Attachments back to the composer instead
 of discarding them.

- **Pasting a file into the chat is no longer slow.** Attaching a screenshot or a
 file with Ctrl+V left the composer waiting seconds before the attachment chip
 appeared, and the delay grew with the size of the file. Two things inside the
 upload handler were responsible: the request body was scanned for its part
 boundaries one byte at a time, and the file's own bytes were then copied into a
 structure that stored every single byte as a separate boxed object — several
 million of them for one pasted screenshot. Both are gone; a paste that took
 well over a second of server time now takes a few milliseconds. A binary upload
 is also no longer decoded as text on arrival, which was a second full pass over
 every byte for a string nothing ever read.

- **Starting a new conversation now closes the current one.** Clicking
 **+ New conversation** while the agent was still working opened the new chat
 but left the old turn running underneath it: **Stop** would have acted on the
 new conversation instead of the working one, and any message queued for the old
 chat was delivered to the new one. Starting a new conversation now ends the
 running turn first — asking before it does, and saying that everything produced
 so far is kept in the conversation being left behind.

- **Copying the prompt you just sent.** The copy icon on a message only appeared
 once that message had been stored, so for the whole length of a Turn the prompt
 on screen offered no way to copy it — the very moment you are most likely to
 want it back. Hovering a prompt now always reveals the same copy icon the
 answers carry; **Edit & resend** still waits for the message to be stored,
 because it re-runs the conversation from that point.

FileList

  • DeskPilot.nuspec
  • DeskPilot.psm1
  • web\assets\app.js
  • web\assets\questionnaire.js
  • web\assets\speech.js
  • web\assets\attachments.js
  • web\assets\logo-full.png
  • web\assets\logo-mark-dark.png
  • DeskPilot.psd1
  • web\assets\markdown.js
  • web\assets\logo-full-dark.png
  • web\assets\auth.js
  • web\index.html
  • web\assets\diff.js
  • web\assets\styles.css
  • web\assets\logo-mark.png

Version History

Version Downloads Last updated
0.5.0-previe... 3 9/8/2026
0.5.0-previe... 5 9/8/2026
0.5.0-previe... 5 9/8/2026
0.5.0-previe... 6 9/2/2026
0.5.0-previe... 3 9/1/2026
0.5.0-previe... 6 8/25/2026
0.5.0-previe... 3 8/24/2026
0.5.0-previe... 5 8/24/2026
0.5.0-previe... (current version) 3 8/24/2026
0.5.0-previe... 3 8/24/2026
0.5.0-previe... 4 8/19/2026
0.5.0-previe... 6 8/13/2026
0.5.0-previe... 5 8/12/2026
0.5.0-previe... 4 8/12/2026
0.5.0-previe... 2 8/11/2026
0.5.0-previe... 3 8/11/2026
0.5.0-previe... 3 8/11/2026
0.5.0-previe... 4 8/11/2026
0.5.0-previe... 2 8/11/2026
0.5.0-previe... 5 8/11/2026
0.5.0-previe... 3 8/11/2026
0.5.0-previe... 7 8/10/2026
0.5.0-previe... 4 8/9/2026
0.4.1-previe... 4 8/9/2026
0.4.0 29 8/9/2026
0.4.0-previe... 3 8/9/2026
0.4.0-previe... 4 8/6/2026
0.3.1-previe... 3 8/5/2026
0.3.0 23 7/23/2026
0.3.0-previe... 3 7/23/2026
0.3.0-previe... 9 7/9/2026
0.2.0 15 7/9/2026
0.2.0-previe... 3 7/9/2026
0.2.0-previe... 5 7/9/2026
0.2.0-previe... 5 7/9/2026
0.2.0-previe... 9 7/9/2026
0.2.0-previe... 8 7/8/2026
Show less