Schedules
Tasks that start themselves, once at a time or on a repeat, while VS Code is open, and what happens when the time is missed.
A schedule is a task with a time attached: once on Tuesday at 22:00, every day at 22:00, every Monday at 07:00, or every 90 minutes. When the time comes, Deskfish starts the task exactly as if you had typed it into the chat. The agent is not involved until then; she is free to do other work in the meantime.
Creating one#
Run Deskfish: Schedule a Task… from the … menu of the chat or the command palette. It asks when, then what. Write the task the way you would in the chat, and since nobody may be watching when it runs, be explicit about limits and what you want reported:
Deskfish: Scheduled Tasks… lists what is scheduled, with the next time and the last outcome, and lets you run one now or remove it. Schedules are kept in a small file in the agent's storage, so they survive reloads, restarts and any number of shutdowns.
What happens at the due time#
- Deskfish is open and the agent is free. A new chat opens with the task, the desktop turns on if it was off, and the task runs like any other. You get a notification when it starts. Results land in the chat, and the run is journaled like every task, so she remembers last Monday's order next Monday.
- The agent is busy. The task waits and starts as soon as she finishes, however long that takes. Busy never means skipped.
- Deskfish was not running. A schedule only fires while VS Code is open with Deskfish loaded. If the laptop was off or VS Code closed at the due time and you open it later, the occurrence is missed: a notice appears in the chat, the log and her journal, and the task waits for its next time. A coffee ordered at 7:40 for a 7:00 pickup is not what you asked for. The one exception is a short grace, five minutes by default (
deskfish.scheduleGraceMinutes), for the case where you opened VS Code a moment late.
Shutting the laptop ten times before Monday changes nothing. Only the due moment matters.
Things to know#
- The agent is told in the task that it was scheduled and that nobody is necessarily watching. If a site asks for a code only you have, she knocks on the glass and waits; the task sits paused until you look. Sites that need two-factor codes are poor candidates.
- Money on a timer needs a fence. Put the spending limit and the "skip if" conditions in the task text, and consider
deskfish.maxCostUsdfor the run itself. - Times are local. A one-off schedule is removed after it fires or is missed.
- There is no way yet to run schedules without VS Code open. An always-on Deskfish is a separate, larger step.