Last weekend I added scheduled tasks to Airut. Tasks are configured in Airut’s server settings and allow running Claude Code within the Airut sandbox on a schedule. Two modes are supported:
- Prompt mode: The task starts an Airut conversation with the given prompt. This maps very cleanly to Airut’s model; instead of emailing the agent every day to, for example, check if CI is passing, you can configure this conversation to auto-start on a schedule.
- Command mode: In this mode Airut runs a command within its sandbox and then starts a conversation using the command’s output and exit code as the prompt. If the command exits cleanly with no output, no conversation is created. This allows, for example, cost-efficient periodic CI checks with a script that runs the tests. The script provides output only if something fails, which then triggers Claude Code in the Airut conversation to investigate.
While Claude Code has scheduled tasks on the web, Airut’s native email conversation model really works in its favor here. CI starts failing because a dependency has a vulnerability. Airut sends an email. You spot an opportunity to improve further and just reply to the email to task Claude to keep working on it. Zero friction.
Beyond CI checks
In addition to automating CI fixes, I’ve already set up some useful automations using Airut’s scheduled tasks.
Nightly pentest: I have a prompt asking Claude to attempt to escape Airut’s sandbox daily. Each morning I have a pentest report waiting in my email. So far no escapes. Eagerly waiting for Mythos.
Daily briefing: I set up another repository with a more relaxed network allowlist and no sensitive data, where I have a lightweight daily briefing workflow. Claude reads several news sources and compiles a news briefing based on a description of my interests. The daily briefing is stored so Claude can review past topics and avoid repetition, and it also provides a trend watch. This all took some tens of minutes and a small number of prompts to set up. This has immediately become the daily newsletter that I actually enjoy reading, and it sometimes even offers valuable insights.
Analysis pipeline refinement: Claude now periodically conducts an in-depth review of randomly selected incoming diagnostics logs and compares the results to the automated analysis pipeline’s findings. If it finds room for improvement, it creates a PR. This closes the loop between automatic and agentic analysis in our support pipeline (see From One-Shot to Agentic Diagnostic Analysis).