Agent skill
fly-sprites
Operate Fly.io Sprites via the `sprite` CLI as persistent remote Linux machines. Use when asked to create, list, select, inspect, use, or destroy a Sprite; run commands with `sprite exec`, open an interactive shell with `sprite console`, install packages, clone repos, edit files, serve or expose an app, check or change a Sprite URL, proxy ports, create/list/inspect/restore checkpoints, or troubleshoot common Sprite workflows including wake-up behavior, wrong target selection, auth, networking, and storage.
Install this agent skill to your Project
npx add-skill https://github.com/kaofelix/dotfiles/tree/main/pi/.pi/agent/skills/fly-sprites
SKILL.md
Fly.io Sprites
Use this skill as the default operator guide for Fly.io Sprites. Assume the CLI is installed and authenticated.
Mental Model
Treat a Sprite like a small persistent Linux machine:
- Disk persists: files, packages, repos, and on-disk state survive sleep.
- RAM does not persist: running processes and in-memory state do not survive idle.
- HTTP can wake the Sprite.
- URLs stay private by default unless the user explicitly wants public access.
Top Commands
Select a Sprite
sprite list
sprite ls
sprite use my-sprite
sprite -o my-org -s my-sprite exec pwd
Prefer local .sprite context when present. Use explicit -o and -s when the target is ambiguous.
Create or destroy
sprite create my-sprite
sprite destroy my-sprite
Only destroy when the user explicitly wants permanent deletion.
Run commands
Use sprite exec for one-off commands and automation:
sprite exec echo "hello"
sprite exec bash -c "cd /home/sprite && ls -la"
sprite x python3 --version
Use sprite console for interactive work:
sprite console
sprite c
Work with files and tools
Good default paths:
/home/spritefor user files and repos/home/sprite/.localfor user-installed tools/varfor app state and databases
sprite exec bash -c "echo 'hello from sprite' > /home/sprite/greeting.txt"
sprite exec cat /home/sprite/greeting.txt
sprite exec pip install requests
sprite exec npm install -g typescript
sprite exec cargo install ripgrep
sprite exec df -h
Use the URL
sprite url
sprite url update --auth public
sprite url update --auth sprite
Keep URLs private unless the user explicitly wants public access.
Proxy ports
sprite proxy 5432
sprite proxy 3001:3000
sprite proxy 3000 8080 5432
Use this for databases, dev servers, and other private ports.
Checkpoint and restore
sprite checkpoint create
sprite checkpoint create --comment "before upgrade"
sprite checkpoint list
sprite checkpoint info <id>
sprite restore <id>
Create a checkpoint before risky upgrades, migrations, or destructive experiments.
Common Tasks
Run a command in the machine
sprite exec bash -c "cd /home/sprite/app && git status"
Open an interactive shell
sprite console
Serve a quick app
sprite url
sprite exec python -m http.server 8080
Use this for quick demos, not for apps that must reliably come back after sleep.
Inspect machine state
sprite exec ps aux
sprite exec df -h
sprite exec free -h
Check selection issues
sprite list
sprite use my-sprite
Rules and Gotchas
- Filesystem changes persist; process state does not.
- Prefer
sprite execfor scripted work andsprite consolefor exploration. - Suggest a checkpoint before risky changes.
- Do not make a URL public unless the user asks.
- Verify exact flags with live help when unsure.
Verify with Live Help
Start here:
sprite --help
Then inspect the exact command you are about to use:
sprite exec --help
sprite url --help
sprite checkpoint --help
Advanced References
Read only when needed:
- Wake-safe services / long-lived HTTP processes:
references/services-and-wakeup.md - Advanced access, SSHFS mounting, env vars:
references/networking-and-access.md
Version-Sensitive Notes
This skill is based on the docs plus a live sprite --help run. If docs mention a command that local help does not show, verify before relying on it.
In particular:
- The docs mention detachable TTY sessions, but the local help used here did not list a
sessionscommand. - The docs mention
sprite-env services ...for wake-safe services. Verify thatsprite-envexists before depending on it.
Output Expectations
When using this skill:
- State which Sprite and org you are targeting.
- Show concrete commands.
- Call out persistence, security, or restore implications when relevant.
- Mention when behavior is documented but should still be verified against local CLI help.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
gob
Process manager for long-running background processes. Use when starting development servers, watching files, or running commands that need to continue in the background while agent continues working.
beads
Tracks complex, multi-session work using the Beads issue tracker and dependency graphs, and provides persistent memory that survives conversation compaction. Use when work spans multiple sessions, has complex dependencies, or needs persistent context across compaction cycles. Trigger with phrases like "create task for", "what's ready to work on", "show task", "track this work", "what's blocking", or "update status".
ast-grep
Guide for writing ast-grep rules to perform structural code search and analysis. Use when users need to search codebases using Abstract Syntax Tree (AST) patterns, find specific code structures, or perform complex code queries that go beyond simple text search. This skill should be used when users ask to search for code patterns, find specific language constructs, or locate code with particular structural characteristics.
dex
Manage tasks via dex CLI. Use when breaking down complex work, tracking implementation items, or persisting context across sessions.
dex-plan
Create dex task from markdown planning documents (plans, specs, design docs, roadmaps)
edit-article
Edit and improve articles by restructuring sections, improving clarity, and tightening prose. Use when user wants to edit, revise, or improve an article draft.
Didn't find tool you were looking for?