Scheduled Tasks
Run tasks unattended on a cron schedule, deliver results to messaging channels, and model freezing, notification policies, and troubleshooting logs.
- Creating: the scheduled tasks page is a two-pane "list + detail" layout: tasks are listed on the left, and the selected task's schedule, prompt, notification policy, and run history are shown on the right. Tasks can be created either through the form or by asking Klaus in natural language to create one. Tasks that Klaus creates on your behalf are enabled by default — you do not need to add "remember to turn it on"; one-off tasks are automatically disabled after their single run.
- Running: tasks are scheduled by cron expressions with time zone support. In addition to writing your own expression, presets are available for daily, weekly, monthly, and Weekdays schedules, and you can trigger a manual "Run now". Each run produces a run record.
- Model and effort level: the model and thinking effort selected in a task are frozen into that task and used for every run, independent of the global selection you change in the input box. This is deliberate: a task that runs every night should not change behavior just because you switched models during the day.
- Enable/disable: each task can be enabled or disabled. One-off tasks are automatically disabled after they finish running — disabled, not deleted: the card, the run records, and that run's session history all remain, so re-enabling it is all it takes to run it again.
- Behavior constraints: scheduled tasks run unattended in the background, and permissions are granted automatically. The default timeout for a single run is 5 minutes; the task's own "timeout seconds" setting is what the scheduler actually honors, with an upper limit of 24 hours, so long-running tasks can raise this value.
- Notification policies come in two levels: "notify on failure only" (the default — a successful run does not bother you) and "notify on every run". Tasks that deliver to messaging channels use channel binding instead.
- Delivery to messaging channels: a task can be bound to a channel conversation, and each run's reply is sent directly into that chat; when a run fails, a failure notice is sent instead, so you will not mistake it for a successful run. The binding is decided at creation time and cannot be changed afterwards — to change the target, delete the task and recreate it.
- Prevent sleep: a toggle on the tasks page. While it is on, Klaus holds a lock that only prevents idle sleep and does not wake the screen; turning it off or quitting the app releases the lock, and reopening the app restores it automatically. It cannot prevent sleep caused by closing the laptop lid, so do not close the lid if you rely on scheduled tasks overnight.
- Troubleshooting: scheduling and delivery logs are written to
~/.klaus/electron-host.log, as the lines whosekindiscron.