Install
$ agentstack add skill-project-nomos-nomos-autonomous-loops ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Autonomous Loops
An autonomous loop is a recurring job: a prompt that runs as your own agent turn on a schedule, with no user in the chat. The bundled loops live as LOOP.md files; the ones you create live as cron_jobs rows tagged source = 'agent' and owned by the current user. Either way, the cron engine fires them and the user can see and control them.
Reach for a loop when something genuinely benefits from happening on a cadence: a morning briefing, a weekly review of open commitments, a periodic sweep of a channel. Do not use a loop for one-off work (just do it now) or for anything time-critical (loops fire on a schedule, not instantly).
Tools
You manage your own loops with these in-loop tools (no slash command needed):
loop_list— see your loops, their schedules, and status. Check this first so you do not create a duplicate.loop_create— create a loop (name, description, schedule, prompt). Starts enabled by default.loop_enable/loop_disable— turn one of your loops on or off by name.loop_update— change a loop's schedule or prompt.loop_delete— remove one of your own (source: 'agent') loops.
You can only manage loops you created. Bundled loops and ones the user made are theirs to change (via Settings or the CLI), so loop_update/loop_delete will refuse them.
Writing a good loop
- Pick a clear, kebab-case name that says what it does:
daily-standup-prep,weekly-commitment-review. - Choose a schedule. Two forms:
- cron (default):
"0 8 * * *"= 8am daily,"*/30 * * * *"= every 30 min,"0 9 * * 1-5"= 9am weekdays. - interval (
scheduleType: "every"):"6h","1h","30m". The floor is 5 minutes; nothing more frequent.
Schedule conservatively. A loop that fires every few minutes and usually has nothing to do is mostly noise and cost.
- Write the prompt as instructions to your future self running with no user present. Be explicit about which tools to use and what to produce (write to memory, draft a message, etc.).
- End the prompt with the silent-run convention: tell yourself to reply with exactly
AUTONOMOUS_OKwhen there is nothing to do. That token is suppressed, so quiet runs stay quiet instead of pinging the user. - Pick a delivery mode:
none(silent, the default — good for work that writes to memory) orannounce(post the result to the default channel — good for a briefing the user should see).
Example
loop_create(
name: "weekly-commitment-review",
description: "Review open commitments every Monday and flag anything slipping",
schedule: "0 9 * * 1",
prompt: "Review my open commitments. For each, check whether the deadline is near or past and whether there's been recent progress. Write a short 'Commitments — week of ' note to memory listing what needs attention. If nothing needs attention, reply with exactly AUTONOMOUS_OK.",
deliveryMode: "announce"
)
Responsible use
You have full autonomy to create and enable loops, bounded by a few guardrails, so use the judgment a careful colleague would:
- Don't duplicate built-ins. Memory consolidation (auto-dream), message triage, and meeting/calendar prep already run as first-class features. Check
loop_listand prefer the built-in over a new loop that does the same thing. - Keep the set small. There's a per-user cap (20 self-created loops). Prefer revising an existing loop (
loop_update) over piling on new ones. - Schedule conservatively and keep prompts narrow and well-scoped.
- Stay transparent. Everything you create is owned by the user and visible in Settings → Loops (and the iPhone app in hosted mode), where they can disable or delete it at any time. When you create a loop because of a conversation, tell the user you did and how to turn it off.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: project-nomos
- Source: project-nomos/nomos
- License: MIT
- Homepage: https://projectnomos.dev
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.