Agent Scripts is a repository of shared instructions, reusable skills, helper scripts, and local safeguards for coding-agent workflows across multiple workspaces. It is for maintaining common agent behavior and portable development utilities between repositories.
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 steipete/agent-scripts --skill fleet-maintenancegit clone --depth 1 https://github.com/steipete/agent-scriptsWrote 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/steipete/agent-scripts/fleet-maintenance)<a href="https://agentmods.dev/skills/steipete/agent-scripts/fleet-maintenance"><img src="https://agentmods.dev/badge/skills/steipete/agent-scripts/fleet-maintenance/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/steipete/agent-scripts/fleet-maintenance"><img src="https://agentmods.dev/badge/skills/steipete/agent-scripts/fleet-maintenance.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to high
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- high Agent Snooping · line 23 Skill reads from agent configuration directories (.claude/, .codex/, .gemini/). These directories may contain API keys, personal settings, and other credentials that the skill has no legitimate need to access.Fix: Remove all code or instructions that access agent configuration directories (.claude/, .codex/, .gemini/). If configuration values are needed, pass them explicitly as parameters or environment variabl
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.00060 | $0.04148 |
| Opus 5.5 | $0.00024 | $0.01659 |
| Sonnet 5.5 | $0.00012 | $0.00830 |
| Haiku 4.5 | $0.00006 | $0.00415 |
Grade B, and why
fleet-maintenance scanned grade B with 2 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 1mo 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.
Reads agent configuration directorieslowAgent snooping
.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.
- Require Claude Code and Claude Desktop coding sessions to omit AI attribution. Audit `~/.claude/settings.json` with `scripts/claude-attribution-audit.sh`; `--repair` preserves unrelated settings while disabling commit Downgraded: this mod is about security review, or the phrase is quoted, so it is likely naming the pattern rather than instructing it.
Recursive force deletemediumDestructive command
rm -rf with a variable or a broad path is one typo away from removing the wrong tree.
find "$trash_real" -mindepth 1 -maxdepth 1 -exec rm -rf {} + Downgraded: this mod is about security review, or the phrase is quoted, so it is likely naming the pattern rather than instructing it.
How it starts
The opening of the file, as written. The whole thing — 219 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Fleet Maintenance
Maintain Peter's Macs while protecting ambiguous local work. Package updates are explicitly allowed during active sessions and may disrupt the software being upgraded. Use $remote-mac for inventory/SSH and $xcode-sync for all Xcode work.
Desired state
- Read
~/Projects/manager/fleet/inventory.jsonfor desired software and local-account escrow references. Readreferences/fleet-schema.mdbefore changing its schema or adopting packages. - Keep exactly two profiles unless Peter explicitly changes the model:
full: daily-driver Macs with the complete development, communication, media, and agentic toolset.worker: lean remote Macs that mainly run Codex, Claude, OpenClaw nodes, and supporting agent infrastructure.
- Treat profile policy as
minimum: install required entries and report extras without removing them. Never silently turn observed software into desired state. - Keep topology, SSH routing, and handed-off status in
~/Projects/manager/computers.yaml. Do not duplicate live topology in this skill. - Keep passwords, recovery keys, and private keys in 1Password. The inventory stores opaque item IDs only. Invoke
$one-passwordbefore anyopcommand; apendingreference is not an error during package maintenance. - Require the classic OpenSSH mesh named by
ssh_meshon both profiles. The manager fleet setup document owns the canonical peer list and live proof. Use the symmetric Tailscale TCP 22 grant plus per-hostauthorized_keys; macOS GUI Tailscale clients cannot act as Tailscale SSH servers. Distribute public keys only, keep private keys host-local, verify both directions withBatchMode=yesand a finite timeout, and leave offline or provider-blocked directions pending. - Require the stable 1Password CLI integrity baseline on every fleet Mac. Require the file-backed service-account profile block unless that host has a documented
requirement_exceptionssecurity boundary in inventory. Audit eligible hosts withscripts/op-profile-audit.sh; audit token-exempt hosts withscripts/op-profile-audit.sh --cli-only. Repair only after$one-passwordis loaded and the mode-0600 token file is provisioned; never print or store the token in inventory. - Require the agent skill mirror on every fleet Mac. Audit it with
scripts/agent-skill-links-audit.sh; its--repairinvokes broad canonical sync only when both canonical repos exist. Sync preserves real directories and files, accepting same-directory local ownership and reporting other real destination conflicts. Forreason=nested-self-link, invoke the reviewed sync owner directly by absolute path with--repair-nested-self-links --dry-run -- NAME..., then omit--dry-runto remove only validated nested leaves; preserve the real Claude skill directories and Codex backlinks. This narrow loop check is not an exhaustive graph validator. Seereferences/fleet-schema.mdfor scope and~/Projects/manager/docs/fleet-setup.mdfor fleet setup. - Require the shared global Git ignore on every fleet Mac. Audit it with
scripts/global-gitignore-audit.sh;--repaircreates~/.config/git/ignore, preserves unrelated entries, adds the inventory's macOS metadata patterns, and pointscore.excludesFileat it. An already-configured alternate excludes file requires manual review so existing rules are never discarded. - Require Claude Code and Claude Desktop coding sessions to omit AI attribution. Audit
~/.claude/settings.jsonwithscripts/claude-attribution-audit.sh;--repairpreserves unrelated settings while disabling commit trailers, pull-request footers, and remote-session links. - Require the official Codex and Claude Code CLIs on both profiles. Package ownership comes from the profile's
codexandclaude-codeHomebrew casks; the separateclaudecask is Claude Desktop and does not satisfy the CLI requirement. Audit versions and non-interactive authentication withscripts/agent-cli-audit.sh; use--livefor bounded, tool-free, non-persistent model turns. Never copy normal Claude OAuth credentials between Macs: refresh each host independently through$anthropicand leave locked-Keychain, account-selection, or offline cases pending. - Require Octopool as the GitHub cache on both profiles with
requirements.github_cache: "octopool". Package presence alone is insufficient:scripts/octopool-audit.shmust prove that non-interactive and login zsh resolveghthrough the Octopool shim, the client login has complete identity metadata, and every configured pool identity is healthy. Use--repairto log in through the existing authenticated stable-path GitHub CLI, install the zsh shim, and repair macOS login PATH ordering when needed; it never installs packages or prints credentials.
What ships with it
17 files 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.
- agents/openai.yaml 213 B
- references/fleet-schema.md 8.7 KB
- scripts/admin-membership.mjs 357 B runs code
- scripts/agent-cli-audit.sh 4.5 KB runs code
- scripts/agent-skill-links-audit.sh 3.3 KB runs code
- scripts/claude-attribution-audit.sh 6.0 KB runs code
- scripts/fleet-profile.mjs 21 KB runs code
- scripts/fleet-profile.test.mjs 799 B runs code
- scripts/global-gitignore-audit.sh 3.6 KB runs code
- scripts/host-health-audit.sh 4.3 KB runs code
- scripts/octopool-audit.sh 5.2 KB runs code
- scripts/op-profile-audit.sh 16 KB runs code
- scripts/repo-sync-audit.sh 4.3 KB runs code
- scripts/repo-sync-update.sh 11 KB runs code
- scripts/test-agent-cli-audit.sh 2.1 KB runs code
- scripts/test-fleet-profile.sh 1.8 KB runs code
- scripts/test-octopool-audit.sh 5.3 KB runs code
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.
- 1mo ago Changed a4a713595409
- 1mo ago First seen · 219 lines · 60 tokens per session scan B 60669646cb66
fleet-maintenance is a skill published in the GitHub repository steipete/agent-scripts (7,379 stars, last pushed yesterday), licensed MIT. It adds 60 tokens to every session and 4,148 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it B with 2 findings (reads agent configuration directories, recursive force delete). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
local-ai-agents
Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…
next-cache-components-adoption
Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…
chronicle
Analyze Copilot session history for standup reports, usage tips, session search, and session reindexing. Use when the user asks for a standup, daily summary, usage tips, workflow recommendations, wants to search or find past sessions by keyword/file/PR, wants to reindex their session store, or asks about deleting…
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
chat-pet-sprite-creation
Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.
component-fixtures
Use when creating or updating component fixtures for screenshot testing or their shared infrastructure, or when designing UI components to be fixture-friendly. Covers fixture file structure, theming, service setup, CSS scoping, async rendering, validation, and common pitfalls.