DeskPilot
0.4.0-preview0002
Minimum PowerShell version
7.0
See the version list below for details.
Installation Options
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
PSEditions
Dependencies
This module has no dependencies.
Release Notes
## [0.4.0-preview0002] - 2026-08-09
### Added
- **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.
### Fixed
- **Undoing a file now clears it from the review list.** The diff viewer kept the
file list it opened with, so after you confirmed an undo the file was still
listed, still showed its old diff, and still offered a second **Undo this
file** for a change that was already gone. The viewer now re-reads the change
set after every Keep or Undo: a file that no longer differs drops out, the
selection moves to the next file, and the viewer closes when nothing is left
to review. A file put back through Git also stops being reported as an
unreviewed DeskPilot change.
- **The window keeps up with your phone.** Archiving, unarchiving, deleting or
starting a conversation from Telegram now updates the DeskPilot sidebar within
a few seconds, instead of leaving a deleted conversation listed and
unclickable. Clicking a conversation that has since gone says so and refreshes
the list, rather than doing nothing at all.
- **An archived conversation no longer accepts new work.** Sending, regenerating
or editing a turn in an archived conversation — from the window or from your
phone — is refused with a message telling you to unarchive it first. Archiving
is you saying you are done with it.
- **Deleting the conversation your phone was working in is now an error.**
Intercom used to fall through to "the most recent one" and quietly do the work
somewhere you never chose. It now refuses and asks you to pick one with
`/chats` or start one with `/new`.
- **Deleting a conversation asks first.** The ✕ button beside a conversation now
**archives** it (reversible); deleting moved into the ⋯ menu — also reachable
by right-clicking the row — and always confirms.
- **Linking your phone to Intercom no longer requires hunting for a chat id.**
Intercom ignores every chat until you confirm one, which meant your bot stayed
silent — even to `/start` — and there was no way to discover the number from
it. **Settings → Intercom → Link my phone** now listens for five minutes,
shows you the message it saw, and links the chat when you click **This is me**.
Nothing is ever linked automatically, and nothing you send during that window
is executed.
- **A model with no published rate no longer reads as free.** The engine prices a
turn from a table keyed by exact model id; a model newer than that table (for
example `claude-opus-5`) comes back with *no* price, and DeskPilot was showing
that as a confident `$0.0000 · 0 credits` — over a million tokens could look
free. Such a turn now says **cost unknown — no published rate for this model**,
session and all-time totals show a `≥` prefix and count how many turns could
not be priced, and the per-model list says **no rate** instead of `0 cr`. The
fix for the *number* is a rate for the model in the engine's price table; this
fix is DeskPilot no longer misreporting its absence.
### Added
- **Copy your own messages with one click.** Hovering a message you sent now
shows a ⧉ button beside the edit one, the same as on DeskPilot's replies — no
more selecting a prompt by hand to reuse it. Both also fall back to an older
copy method if the browser refuses clipboard access.
- **Send files from your phone.** Attach a document, photo, voice note or video
in Telegram — with or without a caption — and DeskPilot saves it into your
project folder and puts the agent to work on it; photos also go to the model's
vision input. Previously an attachment was ignored without so much as a reply.
Files up to 20 MB (Telegram's own limit), and only from a project with **allow
phone control** ticked.
- **Choose how a message is sent.** **Settings → General → Send a message with**
offers **Ctrl+Enter** (the new default, with Enter making a new line) or
**Enter** (with Shift+Enter making a new line). Ctrl+Enter by default so a
stray Enter mid-thought cannot fire a half-written instruction at an agent that
can change files and run commands.
- **Tidy up conversations from your phone.** `/archive 2` hides one from the
list, `/unarchive 2` brings it back, and `/chats all` lists the archived ones
so you can see their numbers; `/delete 2` removes one for good and asks you to
confirm first, offering `/archive` as the reversible alternative.
- **Watch a phone-driven job from the machine.** While a job you sent from
Telegram is running, the DeskPilot window marks that conversation and shows the
answer being written — including the model's thinking when that is switched on.
No page refresh.
- **Telegram messages are formatted properly.** The agent writes Markdown and
Telegram renders none of it, so answers used to arrive as a wall of `##`, `**`
and pipe-delimited tables. Headings, bold, bullets, links, code and tables now
come through readable, and a message Telegram cannot render is resent as plain
text rather than lost. Telegram has no tables at all, so a narrow one is shown
as an aligned block and a wide one as one labelled record per row — long tables
are trimmed with a note pointing you back to DeskPilot for the rest.
- **Switch conversations from your phone.** Intercom gains `/chats` to list your
conversations (newest first, marking the one you are in), `/chat 2` to switch
to one, and `/new` to start a fresh one. Asking the *agent* to switch chats
never worked and never could — which conversation is open is DeskPilot's state,
not something the agent can see or change. Listing and switching run nothing,
so they work even when no project is open; `/new <text>` still needs a project
with **allow phone control** ticked, because that runs work.
- **Reach DeskPilot from your phone (Intercom).** When the agent needs an
answer, finishes, fails, or goes quiet, DeskPilot messages you on Telegram —
and you can reply to answer it, send a new instruction, `/stop` the job,
`/steer` it somewhere else, or `/new` a fresh conversation, without a remote
desktop session. It is **off by default** and stays off for every project until
you tick **allow phone control** on that project, so nothing can be driven
remotely by accident. Exactly one Telegram chat is allowed; anything else is
counted and thrown away without being read as an instruction. The bot token is
encrypted for your Windows account in its own file, so a settings backup can
never carry it. DeskPilot also keeps one silently-updating status message on
your phone that always states the time of its next check-in — if that time has
passed, DeskPilot has stopped. Set it up under **Settings → Intercom**; the
[getting-started guide](docs/intercom-getting-started.md) walks through it.
- **The files panel is resizable.** Drag its left edge to make it as wide as you
need (up to 60 % of the window), double-click the edge to snap back to the
default, or focus it and use `←`/`→` — `Shift` for bigger steps, `Home` to
reset. The width is remembered on this machine.
- **Save all your changes at once, without knowing Git.** The Changes panel gains
a **Save all…** button (also in the Branch Wizard when you have unsaved work,
and in the command palette) that opens one dialog: it lists every uncommitted
file with its added and removed line counts, prefills an editable one-line
description, and records the lot as a single entry in the project's history.
No staging, no `git add`, no terminal — and nothing is sent anywhere until you
choose **Send to server**. Saving a file also stops DeskPilot reporting it as
an unreviewed change, because a file you saved is a file you reviewed.
- **Let DeskPilot write the description.** A ✨ button beside the box reads your
changes and suggests a one-line description, the way GitHub Copilot's commit
box does. It only ever fills the box — you read the words and decide — and it
runs on your click, never on its own.
- **DeskPilot now remembers what it changed until you decide.** Before every turn
it records how your files looked, so the edits the agent makes stay listed as
*not reviewed yet* — acro
FileList
- DeskPilot.nuspec
- DeskPilot.psm1
- web\assets\questionnaire.js
- web\assets\logo-full.png
- web\assets\styles.css
- DeskPilot.psd1
- web\assets\logo-mark-dark.png
- web\assets\diff.js
- web\assets\logo-full-dark.png
- web\assets\logo-mark.png
- web\assets\app.js
- web\assets\markdown.js
- web\index.html
- web\assets\attachments.js
- web\assets\auth.js
Version History
| Version | Downloads | Last updated |
|---|---|---|
| 0.5.0-previe... | 3 | 8/10/2026 |
| 0.5.0-previe... | 4 | 8/9/2026 |
| 0.4.1-previe... | 4 | 8/9/2026 |
| 0.4.0 | 7 | 8/9/2026 |
| 0.4.0-previe... (current version) | 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 |