StarNet is a local-first desktop harness for creating AI agents and arranging them in a pixel-art space station whose layout represents their capabilities, permissions, and workflow. It lets people run real model calls and tools through multiple bounded agents, using their own provider keys or accounts and optionally messaging the station through chat services. The catalogue entries are skills that extend or support work performed by StarNet agents.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add androoAGI/starnet --skill persistent-remindersgit clone --depth 1 https://github.com/androoAGI/starnetWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/androoagi/starnet/persistent-reminders)<a href="https://agentmods.dev/skills/androoagi/starnet/persistent-reminders"><img src="https://agentmods.dev/badge/skills/androoagi/starnet/persistent-reminders/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/androoagi/starnet/persistent-reminders"><img src="https://agentmods.dev/badge/skills/androoagi/starnet/persistent-reminders.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00052 | $0.01445 |
| Opus 5.5 | $0.00021 | $0.00578 |
| Sonnet 5.5 | $0.00010 | $0.00289 |
| Haiku 4.5 | $0.00005 | $0.00145 |
Grade A, and why
persistent-reminders scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 41 lines — stays where its author put it; the contents beside it link to each section on GitHub.
A reminder that fires once is easy to miss; one that nags is soon muted. Keep a plain file of what is owed, nudge on the cadence the Commander chose, get shorter each time, and stop the moment they say it is done.
Method
- Keep one file.
reminders/reminders.md: a header with the time zone, the default nudge cadence and the weekly-summary day, then one line per item:id | what | due | repeat | nudge | last nudged | snoozed until | status. Example:R7 | Pay electricity bill | 2026-10-05 | monthly on 5 | daily | - | - | open. Read it withfs.read; create it withfs.writeif it is missing. - Add a reminder. You need what, the due date, whether it repeats, and how often to nudge (the header default if unsaid). Ask only for what is missing. Add the line with
fs.edit, re-read the file, and confirm in one line with the weekday spelled out. - Set repeats carefully.
monthly on 5for bills,every 30dfor refills,weekly Satfor chores,yearly 03-14. Ask once whether it repeats from the due date (bills) or from the day it was done (refills, filters). "On the 31st" means the last day of a shorter month. - Close on the Commander's word. When they say it is done, in any chat: a one-off gets status
doneand the date; a repeating item movesdueto its next date and clearslast nudged.fs.edit, re-read, confirm: "R7 done. Next: Thu 5 Nov." - Snooze. "Snooze R7 3d" sets
snoozed until; the due date stays. No nudges before that day. - Create the nudging routine once (chat runs only). Check
routine.listfirst. Thenroutine.createfrom the chat that should receive the nudges: a schedule at the finest cadence any item uses (usually0 9 * * *), thetimezone, your ownagentId(the file lives in your workspace),deliver: origin, andattachToSession: trueso a "done R7" reply lands in the same conversation. The prompt must carry steps 7 to 10, the file path and the[SILENT]rule in full. Report the tool's answer: armed or not, and the next run. - Each scheduled run: decide what is due. Read the file, then read
routine.notepad(its own record: last nudge date and count per id, and the date of the last weekly line). Be sure of today's date: use the date the run states, or read one from a tool (for exampleweather[0].datefromweb_fetchofhttps://wttr.in/<city>?format=j1); if you cannot tell, nudge nothing and say so in one line. An item is due for a nudge when it is open, its due date has arrived, it is not snoozed, and its last nudge is at least one cadence old. Nothing due: reply exactly[SILENT]. - Nudge with escalating brevity. One reply, one line per item, most overdue first, at most seven lines, then "+N more". First nudge: what, the due date, and how to answer ("done R7" or "snooze R7 3d"). Second: what, and days overdue. Third and later: the id, three words, days overdue. Shorter each time, never louder: no capitals, no guilt, no exclamation marks.
- Record every nudge. Write the date and count to
routine.notepad, which always works in a scheduled run, and updatelast nudgedin the file withfs.edit. If the edit is refused (an unattended run is not always allowed to write files), carry on; the later of the two dates counts. - Add the weekly line. On the first run of the chosen weekday add "Still open: 4. Oldest: R3 passport renewal, 12 days." If that is all there is to say, send only that; if nothing is open,
[SILENT].
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 12d ago First seen · 41 lines · 52 tokens per session scan A a1ed9b18cbd1
persistent-reminders is a skill published in the GitHub repository androoAGI/starnet (1,468 stars, last pushed 3d ago), licensed MIT. It adds 52 tokens to every session and 1,445 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-04.
Other skills, from other repositories
orbit-general
Open Orbit briefing skill — selected by the Orbit pipeline when the user has two or more connectors connected. Pulls the past 24 hours of activity from every authenticated connector (GitHub, Linear, Notion, Slack, 飞书, Calendar, Gmail, Drive, Sentry, Vercel, …) and renders a single adaptive bento-grid dashboard at the…
orbit-gmail
Open Orbit briefing skill — selected by the Orbit pipeline when Gmail is the user's only connected connector, or when the user explicitly scopes their daily digest to Gmail. Pulls the past 24 hours of inbox activity (replies awaited, mentions, cc, auto- categorized bulk) from the user's authenticated Gmail connection…
orbit-notion
Open Orbit briefing skill — selected by the Orbit pipeline when Notion is the user's only connected connector, or when the user explicitly scopes their daily digest to Notion. Pulls the past 24 hours of document edits, comments, mentions, and database row changes from the user's authenticated Notion connection and…
discovery-question-form
Structured clarification form for unresolved material requirements.
cron
Use this skill only for scheduled or recurring tasks. Manage jobs with qwenpaw cron list/create/get/state/update/pause/resume/delete/run, and always pass --agent-id explicitly.
cron
A procedure for creating and managing tasks that run automatically at a future time or repeat on a schedule. It uses QwenPaw's scheduling commands and requires an agent identifier.