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 daily-briefinggit 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/daily-briefing)<a href="https://agentmods.dev/skills/androoagi/starnet/daily-briefing"><img src="https://agentmods.dev/badge/skills/androoagi/starnet/daily-briefing/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/daily-briefing"><img src="https://agentmods.dev/badge/skills/androoagi/starnet/daily-briefing.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.00047 | $0.01239 |
| Opus 5.5 | $0.00019 | $0.00496 |
| Sonnet 5.5 | $0.00009 | $0.00248 |
| Haiku 4.5 | $0.00005 | $0.00124 |
Grade A, and why
daily-briefing 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 morning briefing is read once, on a phone, before the day starts. It fits one screen, holds only what changes the Commander's day, and names what it could not read instead of guessing.
Method
- Know the basics. City, time zone, units, and what counts as "needs a reply". Look with
notebook.read; ask once for anything missing and save it withnotebook.write(no NOTEBOOK: keep it at the top ofbriefing/open-items.md). - Find the calendar and mail tools. Use the connected Google account's calendar and mail tools: find them with
tool.search, check what is connected withconnectors.list, and never guess a tool name. If Google is not connected, build the rest and close with "Calendar and mail not read: connect Google in ABILITIES." - Today's calendar. Today's events in the Commander's time zone: start time, title, place or call link. Mark overlaps and back-to-back runs with no gap. Take today's date from what the tools return, never from memory.
- Mail that needs a reply. Messages since yesterday evening where a person is waiting on the Commander: a direct question, a request, a deadline. Skip newsletters, receipts and automatic notices. At most five lines: who, and the ask in a few words.
- Open tasks and promises. In a chat run,
task.listfor open tasks,notebook.readfor commitments, andfs.readof the Commander's notes file (defaultbriefing/open-items.md). Due today or overdue first; at most five. - Weather.
web_fetchhttps://wttr.in/<city>?format=j1(no sign-up needed). The part you see holdscurrent_condition(temp_C,weatherDesc); today's date, high, low and rain chance (weather[0]:date,maxtempC,mintempC, hourlychanceofrain) sit further in, so read them withfs.readfrom the full copy the tool saves and names. One line, in the Commander's units. If it fails, write "Weather could not be read." - One "watch today" line. The single thing most likely to go wrong or matter most: a clash, a deadline landing today, rain over an outdoor plan, someone who has waited three days. One sentence; leave it out when nothing stands out.
- Assemble one screen. Fixed order: Watch today, Calendar, Needs a reply, Open, Weather, Not read. Plain short lines, no tables. An empty section is dropped, not announced.
- Deliver. Send it with
channel.sendto a chat thatchannel.targetslists; if the Commander asked from that same chat, your reply is the delivery. No chat connected:fs.writetobriefing/YYYY-MM-DD.mdand name it withdeliverable_note. Report what the tool answered. - Offer to make it a morning routine (chat runs only). Check
routine.list, thenroutine.createfrom the chat that should receive it: a schedule such as0 7 * * 1-5, thetimezone,deliver: origin, your ownagentId(the notes file lives in your workspace), and a prompt that carries everything: city, units, the reply bar, the notes file path, the section order, and "if there are no events, no mail needing a reply and no open items, reply exactly[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 · 47 tokens per session scan A 4cda236f59cc
daily-briefing is a skill published in the GitHub repository androoAGI/starnet (1,468 stars, last pushed 3d ago), licensed MIT. It adds 47 tokens to every session and 1,239 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.