CronSAFE
Ultra-lightweight, open-source, self-hosted personal AI agent framework in Python with WebUI, tools, memory, MCP, multi-agent workflows, automation, and chat apps
Overview
Ultra-lightweight, open-source, self-hosted personal AI agent framework in Python with WebUI, tools, memory, MCP, multi-agent workflows, automation, and chat apps
59e883b22cc8OBSERVED · 2026-09-29What it tells the agent
The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.
--- name: cron description: Schedule reminders and recurring tasks. --- # Cron Use the `cron` tool to schedule reminders or recurring tasks that should report back to the originating chat/session when they run. Do not use `cron` for periodic background checks that should stay quiet when there is nothing useful to report. For those, update `HEARTBEAT.md`; the protected heartbeat job runs those checks and only delivers results that pass the notification gate. ## Three Modes 1. **Reminder** - message is sent directly to user 2. **Task** - message is a task description, agent executes and sends result 3. **One-time** - runs once at a specific time, then auto-deletes ## Examples Fixed reminder: ``` cron(action="add", message="Time to take a break!", every_seconds=1200) ``` Dynamic task (agent executes each time): ``` cron(action="add", message="Check HKUDS/nanobot GitHub stars and report", every_seconds=600) ``` One-time scheduled task (compute ISO datetime from current time): ``` cron(action="add", message="Remind me about the meeting", at="<ISO datetime>") ``` Timezone-aware cron: ``` cron(action="add", message="Morning standup", cron_expr="0 9 * * 1-5", tz="America/Vancouver") ``` List/remove: ``` cron(action="list") cron(action="remove", job_id="abc123") ``` ## Time Expressions | User says | Parameters | |-----------|------------| | every 20 minutes | every_seconds: 1200 | | every hour | every_seconds: 3600 | | every day at 8am | cron_expr: "0 8 * * *" | | weekdays at 5pm | cron_expr: "0 17 * * 1-5" | | 9am Vancouver time daily | cron_expr: "0 9 * * *", tz: "America/Vancouver" | | at a specific time | at: ISO datetime string (compute from current time) | ## Timezone Use `tz` with `cron_expr` to schedule in a specific IANA timezone. Without `tz`, the server's local timezone is used.
Trust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | NA |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- none-observed
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (0)
No findings outside the package's declared scope.
Gates applied: no_behavioural_pass.
59e883b22cc8full audit observations/trust-audit/skill/hkuds__cron.json · Report an issue / request a re-scanAudit history
Every audit this skill has had.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-09-29 | 59e883b22cc8 | SAFE | B | 89 | first audit |
Questions
What does the Cron skill do?
Ultra-lightweight, open-source, self-hosted personal AI agent framework in Python with WebUI, tools, memory, MCP, multi-agent workflows, automation, and chat apps
Is Cron safe to install?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean skill reads B.
What can Cron access on my machine?
The audit observed no filesystem, network or shell use at all in its source.
How current is this page?
The grade is for one exact copy of the source (59e883b22cc8), read on 2026-09-29. The repository is watched, and a new audit runs when it changes — this is the first audit.