Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/ericrisco/rsc-harnessnpx agentmods add skills/ericrisco/rsc-harness/fly-ioWrote 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/ericrisco/rsc-harness/fly-io)<a href="https://agentmods.dev/skills/ericrisco/rsc-harness/fly-io"><img src="https://agentmods.dev/badge/skills/ericrisco/rsc-harness/fly-io/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/ericrisco/rsc-harness/fly-io"><img src="https://agentmods.dev/badge/skills/ericrisco/rsc-harness/fly-io.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00087 | $0.02860 |
| Opus 5.5 | $0.00035 | $0.01144 |
| Sonnet 5.5 | $0.00017 | $0.00572 |
| Haiku 4.5 | $0.00009 | $0.00286 |
Grade A, and why
fly-io 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 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.
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 — 198 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Deploy on Fly.io
You are deploying an app to Fly.io: a fly.toml, Machines (Firecracker microVMs) placed in regions close to users, optional region-pinned Volumes, secrets, and the right scaling lever. Get the mental model right first, then the config follows. If none of that placement control matters, ../railway/SKILL.md is the git-push PaaS with no Machines/regions model.
Mental model
- App is the logical unit. It owns a name, a
primary_region, and config infly.toml. Why: every command targets an app. - Process groups (
[processes], e.g.web,worker) split one image into roles. Why: a web group takes traffic, a worker group does not — they bind services and VMs separately. - Machines are Firecracker microVMs running your image. Each runs in exactly one region. Why: latency and volumes are per-Machine, so placement is the whole game.
- Fly Proxy is the anycast front door. It routes a request to the nearest running Machine, can start a stopped one, and obeys
fly-replayheaders. Why: it is what makes "global" cheap — you do not run a load balancer. - Volumes are local NVMe disks pinned to one Machine in one region. No replication. Why: this single fact dictates every stateful architecture decision below.
Deploy fast (4 commands)
fly launch # detects framework, generates fly.toml + Dockerfile, creates the app
fly secrets set DATABASE_URL=postgres://... # restarts every Machine; never put this in [env]
fly deploy # builds image, runs release_command, rolls out Machines
fly scale count 2 --region iad,ams # place Machines in Virginia + Amsterdam
fly launch is interactive and writes a starter fly.toml. Treat that file as a draft — review it against the next section before the first real deploy. Run fly status and fly logs after any deploy.
A fly.toml that works
app = "my-api"
primary_region = "iad" # 3-letter region code: iad, ord, ams, syd, gru, nrt...
[build]
# dockerfile = "Dockerfile" # Fly builds from your Dockerfile; see ../docker/SKILL.md
[deploy]
release_command = "npm run migrate" # one-shot Machine that runs BEFORE the new version goes live
strategy = "rolling" # rolling | bluegreen | canary | immediate
[processes]
web = "node server.js"
worker = "node worker.js"
[http_service]
internal_port = 8080
force_https = true
auto_stop_machines = "stop" # "off" | "stop" | "suspend" — set WITH auto_start_machines
auto_start_machines = true
min_machines_running = 0 # 0 = scale to zero; honored only in primary_region
processes = ["web"]
[http_service.concurrency]
type = "requests"
soft_limit = 200 # Proxy starts spreading load past this
hard_limit = 250 # Proxy stops sending past this
[[vm]] # formerly [[compute]]
size = "shared-cpu-1x"
memory = "512mb"
cpu_kind = "shared" # "shared" | "performance"
processes = ["web"]
[[mounts]]
source = "data" # volume NAME, created with `fly volumes create data`
destination = "/data"
processes = ["web"]
initial_size = "1gb"
What ships with it
5 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.
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 First seen · 198 lines · 87 tokens per session scan A 7041770bc772
fly-io is a skill published in the GitHub repository ericrisco/rsc-harness (289 stars, last pushed yesterday), licensed MIT. It adds 87 tokens to every session and 2,860 once invoked, about $0.0003 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-09-03.
Other skills, from other repositories
huawei-cloud-deployment-task-management
Huawei Cloud CloudDeploy (CodeArts Deploy / 部署) management, execution, and failure analysis using the KooCLI hcloud command-line client. Covers deploy application listing and creation, deployment task listing/detail/creation, task start, task deletion, deployment failure root-cause analysis (agent offline, timeout…
deployment
Kubernetes Deployment 管理.
kubernetes-operator
Deploy and manage applications on Kubernetes. Covers deployments, services, ingress, HPA, secrets, and production-grade cluster configuration.
flow-nexus-platform
Comprehensive Flow Nexus platform management - authentication, sandboxes, app deployment, payments, and challenges.
04-security
A security and operations guide for deploying Dify, an open-source platform for building AI applications, in production.
huawei-cloud-apig-instance-management
Manage Huawei Cloud APIG (API Gateway, dedicated instances) via hcloud CLI: instance lifecycle (create/list/delete), API groups, API create/update/delete, publish/offline, request throttling policies, signature keys, access control (ACL) policies, and public ingress EIP binding, plus read-only diagnosis of public…