DeskPilot

0.5.0-preview0009

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-preview0009 -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-preview0009 -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-preview0009] - 2026-08-11

### Added

- **A job that runs out of steps now tells you, and keeps its work.** The step
 budget rose from 25 to 50 — 25 cut off real work such as auditing a repository
 or running a build and diagnosing it — and is now capped at 200 so a typo
 cannot start an expensive runaway. The agent is also told how many steps it
 has, so it can spend them deliberately instead of being cut off mid-thought.
 When a job does hit the limit it no longer disappears into an error: it ends
 like a stopped job, explains that it ran out of budget, points at the setting,
 and keeps everything it had already said and planned.
- **Workspace-wide instructions now actually apply.** An instruction file that
 applies to everything was only ever *offered* to the agent, which had to decide
 to go and fetch it — and often did not, so rules you had written were quietly
 not in force. Instruction files whose `applyTo` is `**` are now put straight
 into the agent's brief at the start of every job. Instructions scoped to
 particular files are unchanged: the agent still fetches those when they become
 relevant. A new **Always apply workspace-wide instructions** setting turns this
 off if you would rather save the context on a small model.
- **See what the agent said while it worked.** A job that used several tools
 narrated its way through them — "let me check the branch first", "the counts
 differ, so I will find out why" — and every word of it was thrown away the
 moment the job finished, leaving only the final answer. Those notes are now
 kept in a **Steps** section above the answer, one entry per tool the agent
 reached for. It is collapsed by default, it survives a reload, and a job you
 stop keeps whatever it had already said — which is often the only record of
 what it was doing.
- **Watch the files being edited, while they are edited.** Until a job finished,
 the only place that named the file the agent was writing was the thinking
 trace — so with **Show the model's thinking** switched off, nothing named it at
 all. A card now appears under the answer as the job runs and lists each file
 the moment the agent starts writing it. When the job ends, the reviewed card
 you already know — with the `+`/`−` counts, **Keep** and **Undo** — takes its
 place. A job you stop, or one in a folder that is not a repository, keeps the
 list instead of clearing it, so you can still see what was written.
- **Pick the model from your phone.** Intercom could switch the conversation, the
 agent and the project, but not the model, so choosing one still meant walking
 back to the machine. `/models` lists the models your account is offered, marks
 the one your next instruction would run on and gives you a button per model;
 `/model 2` picks one and `/model default` goes back to the standard one.
 `/status` now names the model too. A switch applies to your next instruction —
 it never disturbs a job already running — and it changes both the default and
 the conversation you are in, so the model you were told about is the model that
 actually runs. While a job is running and the list has never been loaded,
 `/models` says so and asks you to try again afterwards rather than freezing
 DeskPilot to go and fetch it.
- **Switch agent and project from your phone.** Intercom could switch
 conversations but not the two things that decide *how* and *where* the agent
 works. `/agents` lists the agents you have, marks the one in use and gives you
 a button per agent; `/agent 2` picks one and `/agent none` goes back to the
 default. `/projects` does the same for your projects and says on every line
 which ones you are allowed to work in from your phone, so you learn that before
 you send an instruction rather than from a refusal. `/project new C:\Git\Notes`
 registers a folder as a project — creating that last folder if it does not
 exist yet — and `/status` now names the agent in use. A project added from your
 phone is deliberately **not** remote-controllable until you switch that on at
 the machine.
- **Dictate and read aloud in German.** Voice used to follow whatever language
 your browser was set to, so speaking German into an English Windows produced
 transcription nonsense and had your answers read back in an English accent.
 **Settings → General → Voice language** now lets you choose: German (Germany,
 Austria, Switzerland), English (US, UK), or Auto to keep following the browser.
 A **Voice** setting sits underneath it, listing every voice installed for that
 language so you can pick the one you like — or leave it on Automatic, which
 picks the best one for you.
- **Asking for choices now gets you choices.** "Give me a list to choose from"
 or "what are my options" used to be answered with a written list you could only
 read. The agent now offers those as a real question you can answer — a
 questionnaire in the window, tappable buttons on your phone — so picking one
 actually carries on the conversation. It still will not turn a simple request
 into a wizard: it never asks to confirm something it can just do.
- **Tap to answer, instead of typing.** When the agent asks a question with a
 list of choices, Telegram now shows a button for each one — tap it and that is
 your answer. `/chats` gives you a button per conversation too, so switching no
 longer means reading a list and typing a number. You can still reply in writing
 whenever you prefer, and questions that let you pick several answers at once
 still ask for a written reply, because one tap cannot say "these two".
- **Rewind a conversation to before a prompt.** Every message you send now
 carries a **Restore Checkpoint** marker above it. Clicking it takes you back to
 the moment just before you hit send: the message and everything after it leave
 the conversation, your prompt goes back into the box so you can reword it, and
 any file DeskPilot changed since is put back the way it was. Files you edited
 yourself are left alone, and DeskPilot asks before it discards anything. The
 marker appears as soon as the turn finishes — you do not have to reopen the
 conversation to see it.
- **Undo from your phone.** Send `/undo` to Intercom and DeskPilot tells you
 exactly what it would throw away — how many messages, how many files — then
 waits. `/undo confirm` takes you back to just before your last instruction,
 puts back the files it changed, and sends your prompt back so you can reword it
 and try again. It refuses while a job is running, so send `/stop` first.

### Changed

- **The Thinking panel now tells you the time.** When a job takes minutes, the
 panel gave you no way to tell whether the wait was the model thinking, a tool
 running, or DeskPilot stuck. Every divider and every tool call now starts with
 the clock, so the pause between two steps is there to read: `14:07:09` on one
 divider and `14:07:31` on the next is twenty-two seconds you can now account
 for. The time is the moment the agent actually did it, not the moment your
 browser drew it, so a busy screen cannot flatter the numbers.

- **The model's thinking is now readable.** Every time the agent used a tool, the
 Thinking panel showed the raw instruction it sent — one endless line in which
 each line break of a file it was writing appeared as a literal `\n` and every
 Windows path came out doubled, like `C:\\Users\\you`. It now reads as what it
 is: the tool's name, then each of its inputs on its own line, with the text laid
 out the way it will actually be written. The `=== iteration 4 (chat) ===`
 markers became plain dividers, and the panel keeps its own height and scrolls
 by itself, so a long think no longer pushes the answer off the screen.

- **You can watch the agent think while it writes.** The Thinking panel sits
 above the answer, so as soon as the answer filled a screen the panel scrolled
 out of sight and all that was left was the spinner — which looks exactly the
 same whether the agent is busy or stuck. The newest line of the thinking now
 runs beside that spinner just above the box you type in, where a long answer
 cannot push it away, and clicking it takes you back to the full panel. The
 conversation also follows new output only while you are already at the bottom,
 so scrolling up to read along is no longer undone by the next word.

- **New conversations start on Claude Opus 5.** DeskPilot used to inherit
 whatever model the engine happened to name as its default, which trails the
 newest one by months. It now asks for Opus 5 whenever your account is offered
 it, and falls back to the engine's own choice when it is not — so nothing
 breaks if it is unavailable to you. Picking a model yourself, in Settings or on
 a single conversation, still wins.

### Fixed

- **Stopping a job no longer throws away its thinking.** With **Show the model's
 thinking** on, the pane filled up while the job ran — and pressing **Stop**
 blanked it on the next reload, because the trace was only ever held in the
 browser and the stopped message was saved with nothing in it. The thinking you
 watched is now saved with the message, so a stopped job still explains itself
 afterwards.
- **Intercom now tells you where the phone-control switch actually is.** When a
 project was not cleared for phone control, Intercom said "Remote control is
 switched off … turn it on under Settings > Intercom" — a tab that holds no such
 switch, and which the message was printed on while it plainly read
 "On — connected". It now names the checkbox you are looking for and the tab
 that carries it: tick **allow phone control** on the project under
 **Settings → Projects**. The same correction applies when you switch to a
 project from your phone, when you add one with `/project new`, and in the
 getting-started guide.
- **Read aloud no longer sounds like a robot from ten years ago.** It used the
 first voice the system happene

FileList

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

Version History

Version Downloads Last updated
0.5.0-previe... 3 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... (current version) 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... 3 8/11/2026
0.5.0-previe... 3 8/11/2026
0.5.0-previe... 6 8/10/2026
0.5.0-previe... 4 8/9/2026
0.4.1-previe... 4 8/9/2026
0.4.0 14 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 more