[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-fly-io-spritesdev-api":3,"mdc--u8j5c-key":38,"related-org-fly-io-spritesdev-api":1401,"related-repo-fly-io-spritesdev-api":1492},{"slug":4,"name":5,"fn":6,"description":7,"org":8,"tags":13,"stars":27,"repoUrl":28,"updatedAt":29,"license":30,"forks":31,"topics":32,"repo":33,"sourceUrl":36,"mdContent":37},"spritesdev-api","Sprites.dev API","manage Fly.io Sprites cloud sandboxes","This skill should be used when the user asks about \"sprites\", \"sprite API\",\n\"Sprites.dev\", \"cloud sandbox\", \"remote execution with sprites\", \"sprite CLI\",\n\"sprite filesystem API\", \"sprite sessions\", or needs guidance on working with\nSprites.dev cloud development environments.\n",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},"fly-io","Fly.io","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Ffly-io.png","superfly",[14,18,21,24],{"name":15,"slug":16,"type":17},"Sandboxing","sandboxing","tag",{"name":19,"slug":20,"type":17},"CLI","cli",{"name":22,"slug":23,"type":17},"Code Execution","code-execution",{"name":25,"slug":26,"type":17},"Infrastructure","infrastructure",2,"https:\u002F\u002Fgithub.com\u002Fsuperfly\u002Fclaude-plugins","2026-07-12T07:53:43.638927",null,0,[],{"repoUrl":28,"stars":27,"forks":31,"topics":34,"description":35},[],"An unofficial Claude Code plugin marketplace from Fly.io","https:\u002F\u002Fgithub.com\u002Fsuperfly\u002Fclaude-plugins\u002Ftree\u002FHEAD\u002Fsprite-handoff\u002Fskills\u002Fsprites-api","---\nname: Sprites.dev API\ndescription: |\n  This skill should be used when the user asks about \"sprites\", \"sprite API\",\n  \"Sprites.dev\", \"cloud sandbox\", \"remote execution with sprites\", \"sprite CLI\",\n  \"sprite filesystem API\", \"sprite sessions\", or needs guidance on working with\n  Sprites.dev cloud development environments.\nversion: 1.0.0\n---\n\n# Sprites.dev API Knowledge\n\n## Overview\n\nSprites.dev provides persistent cloud sandboxes (called \"sprites\") for running code remotely. Key features:\n- Persistent ext4 filesystems that survive hibernation\n- Auto-hibernation after 30 seconds of inactivity (no compute cost when idle)\n- Instant wake on any request\n- Session management for long-running processes\n- Filesystem API for direct file operations\n\n## CLI Reference\n\n### Sprite Management\n```bash\nsprite create \u003Cname>          # Create new sprite\nsprite list                   # List all sprites\nsprite use \u003Cname>             # Set active sprite for directory\nsprite use                    # Show current active sprite\nsprite destroy \u003Cname>         # Delete sprite (permanent)\n```\n\n### Command Execution\n```bash\nsprite exec \"command\"                    # One-off execution\nsprite exec -detachable \"command\"        # Detachable session\nsprite exec -env KEY=VAL \"command\"       # With environment variables\nsprite exec -dir \u002Fpath \"command\"         # With working directory\nsprite exec -file local:\u002Fremote \"cmd\"    # Upload file before exec\n```\n\n### Session Management\n```bash\nsprite sessions list          # List running sessions\nsprite sessions attach \u003Cid>   # Reattach to session\nsprite sessions kill \u003Cid>     # Terminate session\n```\n**Detach from session**: Press `Ctrl+\\` (keeps running in background)\n\n### Port Forwarding\n```bash\nsprite proxy \u003Cport>           # Forward sprite port to localhost\n```\n\n## Filesystem API\n\nBase URL: `https:\u002F\u002Fapi.sprites.dev\u002Fv1`\nAuth: `Authorization: Bearer \u003Ctoken>`\n\n### Write File\n```bash\ncurl -X PUT \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Foctet-stream\" \\\n  --data-binary \"@localfile.txt\" \\\n  \"https:\u002F\u002Fapi.sprites.dev\u002Fv1\u002Fsprites\u002FNAME\u002Ffs\u002Fwrite?path=remote.txt&workingDir=\u002Fhome\u002Fsprite&mkdir=true\"\n```\n\n### Read File\n```bash\ncurl -H \"Authorization: Bearer $TOKEN\" \\\n  \"https:\u002F\u002Fapi.sprites.dev\u002Fv1\u002Fsprites\u002FNAME\u002Ffs\u002Fread?path=file.txt&workingDir=\u002Fhome\u002Fsprite\"\n```\n\n### List Directory\n```bash\ncurl -H \"Authorization: Bearer $TOKEN\" \\\n  \"https:\u002F\u002Fapi.sprites.dev\u002Fv1\u002Fsprites\u002FNAME\u002Ffs\u002Flist?path=.&workingDir=\u002Fhome\u002Fsprite\"\n```\n\n### Delete\n```bash\ncurl -X DELETE \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"path\":\"file.txt\",\"workingDir\":\"\u002Fhome\u002Fsprite\",\"recursive\":false,\"asRoot\":false}' \\\n  \"https:\u002F\u002Fapi.sprites.dev\u002Fv1\u002Fsprites\u002FNAME\u002Ffs\u002Fdelete\"\n```\n\n## Authentication\n\nToken stored in `~\u002F.sprites\u002Fsprites.json` after running `sprite org auth`.\n\nExtract token:\n```bash\njq -r '.token' ~\u002F.sprites\u002Fsprites.json\n```\n\n## Best Practices\n\n1. **Use detachable sessions** for long-running processes (dev servers, builds, tests)\n2. **Sync git-tracked files** rather than entire directories to avoid bloat\n3. **Port forward** for accessing web UIs running in sprites\n4. **Check sessions** before creating new ones to avoid orphaned processes\n5. **Sprites hibernate automatically** - no need to manually stop them\n6. **Use checkpoints** for creating clean restore points (filesystem snapshots)\n\n## Common Patterns\n\n### Development Server\n```bash\nsprite create my-dev\nsprite use my-dev\n# sync files\nsprite exec -detachable \"npm run dev\"\nsprite proxy 3000\n# Access at localhost:3000\n```\n\n### CI-style Execution\n```bash\nsprite exec \"npm install && npm test && npm run build\"\n```\n\n### Background Build\n```bash\nsprite exec -detachable \"npm run build:watch\"\nsprite sessions list  # to monitor\n```\n",{"data":39,"body":41},{"name":5,"description":7,"version":40},"1.0.0",{"type":42,"children":43},"root",[44,53,60,66,96,102,109,269,275,462,468,572,591,597,639,645,664,670,797,803,858,864,918,924,1045,1051,1072,1077,1115,1121,1185,1191,1197,1297,1303,1334,1340,1395],{"type":45,"tag":46,"props":47,"children":49},"element","h1",{"id":48},"spritesdev-api-knowledge",[50],{"type":51,"value":52},"text","Sprites.dev API Knowledge",{"type":45,"tag":54,"props":55,"children":57},"h2",{"id":56},"overview",[58],{"type":51,"value":59},"Overview",{"type":45,"tag":61,"props":62,"children":63},"p",{},[64],{"type":51,"value":65},"Sprites.dev provides persistent cloud sandboxes (called \"sprites\") for running code remotely. Key features:",{"type":45,"tag":67,"props":68,"children":69},"ul",{},[70,76,81,86,91],{"type":45,"tag":71,"props":72,"children":73},"li",{},[74],{"type":51,"value":75},"Persistent ext4 filesystems that survive hibernation",{"type":45,"tag":71,"props":77,"children":78},{},[79],{"type":51,"value":80},"Auto-hibernation after 30 seconds of inactivity (no compute cost when idle)",{"type":45,"tag":71,"props":82,"children":83},{},[84],{"type":51,"value":85},"Instant wake on any request",{"type":45,"tag":71,"props":87,"children":88},{},[89],{"type":51,"value":90},"Session management for long-running processes",{"type":45,"tag":71,"props":92,"children":93},{},[94],{"type":51,"value":95},"Filesystem API for direct file operations",{"type":45,"tag":54,"props":97,"children":99},{"id":98},"cli-reference",[100],{"type":51,"value":101},"CLI Reference",{"type":45,"tag":103,"props":104,"children":106},"h3",{"id":105},"sprite-management",[107],{"type":51,"value":108},"Sprite Management",{"type":45,"tag":110,"props":111,"children":116},"pre",{"className":112,"code":113,"language":114,"meta":115,"style":115},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","sprite create \u003Cname>          # Create new sprite\nsprite list                   # List all sprites\nsprite use \u003Cname>             # Set active sprite for directory\nsprite use                    # Show current active sprite\nsprite destroy \u003Cname>         # Delete sprite (permanent)\n","bash","",[117],{"type":45,"tag":118,"props":119,"children":120},"code",{"__ignoreMap":115},[121,167,184,218,235],{"type":45,"tag":122,"props":123,"children":126},"span",{"class":124,"line":125},"line",1,[127,133,139,145,150,156,161],{"type":45,"tag":122,"props":128,"children":130},{"style":129},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[131],{"type":51,"value":132},"sprite",{"type":45,"tag":122,"props":134,"children":136},{"style":135},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[137],{"type":51,"value":138}," create",{"type":45,"tag":122,"props":140,"children":142},{"style":141},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[143],{"type":51,"value":144}," \u003C",{"type":45,"tag":122,"props":146,"children":147},{"style":135},[148],{"type":51,"value":149},"nam",{"type":45,"tag":122,"props":151,"children":153},{"style":152},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[154],{"type":51,"value":155},"e",{"type":45,"tag":122,"props":157,"children":158},{"style":141},[159],{"type":51,"value":160},">",{"type":45,"tag":122,"props":162,"children":164},{"style":163},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[165],{"type":51,"value":166},"          # Create new sprite\n",{"type":45,"tag":122,"props":168,"children":169},{"class":124,"line":27},[170,174,179],{"type":45,"tag":122,"props":171,"children":172},{"style":129},[173],{"type":51,"value":132},{"type":45,"tag":122,"props":175,"children":176},{"style":135},[177],{"type":51,"value":178}," list",{"type":45,"tag":122,"props":180,"children":181},{"style":163},[182],{"type":51,"value":183},"                   # List all sprites\n",{"type":45,"tag":122,"props":185,"children":187},{"class":124,"line":186},3,[188,192,197,201,205,209,213],{"type":45,"tag":122,"props":189,"children":190},{"style":129},[191],{"type":51,"value":132},{"type":45,"tag":122,"props":193,"children":194},{"style":135},[195],{"type":51,"value":196}," use",{"type":45,"tag":122,"props":198,"children":199},{"style":141},[200],{"type":51,"value":144},{"type":45,"tag":122,"props":202,"children":203},{"style":135},[204],{"type":51,"value":149},{"type":45,"tag":122,"props":206,"children":207},{"style":152},[208],{"type":51,"value":155},{"type":45,"tag":122,"props":210,"children":211},{"style":141},[212],{"type":51,"value":160},{"type":45,"tag":122,"props":214,"children":215},{"style":163},[216],{"type":51,"value":217},"             # Set active sprite for directory\n",{"type":45,"tag":122,"props":219,"children":221},{"class":124,"line":220},4,[222,226,230],{"type":45,"tag":122,"props":223,"children":224},{"style":129},[225],{"type":51,"value":132},{"type":45,"tag":122,"props":227,"children":228},{"style":135},[229],{"type":51,"value":196},{"type":45,"tag":122,"props":231,"children":232},{"style":163},[233],{"type":51,"value":234},"                    # Show current active sprite\n",{"type":45,"tag":122,"props":236,"children":238},{"class":124,"line":237},5,[239,243,248,252,256,260,264],{"type":45,"tag":122,"props":240,"children":241},{"style":129},[242],{"type":51,"value":132},{"type":45,"tag":122,"props":244,"children":245},{"style":135},[246],{"type":51,"value":247}," destroy",{"type":45,"tag":122,"props":249,"children":250},{"style":141},[251],{"type":51,"value":144},{"type":45,"tag":122,"props":253,"children":254},{"style":135},[255],{"type":51,"value":149},{"type":45,"tag":122,"props":257,"children":258},{"style":152},[259],{"type":51,"value":155},{"type":45,"tag":122,"props":261,"children":262},{"style":141},[263],{"type":51,"value":160},{"type":45,"tag":122,"props":265,"children":266},{"style":163},[267],{"type":51,"value":268},"         # Delete sprite (permanent)\n",{"type":45,"tag":103,"props":270,"children":272},{"id":271},"command-execution",[273],{"type":51,"value":274},"Command Execution",{"type":45,"tag":110,"props":276,"children":278},{"className":112,"code":277,"language":114,"meta":115,"style":115},"sprite exec \"command\"                    # One-off execution\nsprite exec -detachable \"command\"        # Detachable session\nsprite exec -env KEY=VAL \"command\"       # With environment variables\nsprite exec -dir \u002Fpath \"command\"         # With working directory\nsprite exec -file local:\u002Fremote \"cmd\"    # Upload file before exec\n",[279],{"type":45,"tag":118,"props":280,"children":281},{"__ignoreMap":115},[282,314,347,385,423],{"type":45,"tag":122,"props":283,"children":284},{"class":124,"line":125},[285,289,294,299,304,309],{"type":45,"tag":122,"props":286,"children":287},{"style":129},[288],{"type":51,"value":132},{"type":45,"tag":122,"props":290,"children":291},{"style":135},[292],{"type":51,"value":293}," exec",{"type":45,"tag":122,"props":295,"children":296},{"style":141},[297],{"type":51,"value":298}," \"",{"type":45,"tag":122,"props":300,"children":301},{"style":135},[302],{"type":51,"value":303},"command",{"type":45,"tag":122,"props":305,"children":306},{"style":141},[307],{"type":51,"value":308},"\"",{"type":45,"tag":122,"props":310,"children":311},{"style":163},[312],{"type":51,"value":313},"                    # One-off execution\n",{"type":45,"tag":122,"props":315,"children":316},{"class":124,"line":27},[317,321,325,330,334,338,342],{"type":45,"tag":122,"props":318,"children":319},{"style":129},[320],{"type":51,"value":132},{"type":45,"tag":122,"props":322,"children":323},{"style":135},[324],{"type":51,"value":293},{"type":45,"tag":122,"props":326,"children":327},{"style":135},[328],{"type":51,"value":329}," -detachable",{"type":45,"tag":122,"props":331,"children":332},{"style":141},[333],{"type":51,"value":298},{"type":45,"tag":122,"props":335,"children":336},{"style":135},[337],{"type":51,"value":303},{"type":45,"tag":122,"props":339,"children":340},{"style":141},[341],{"type":51,"value":308},{"type":45,"tag":122,"props":343,"children":344},{"style":163},[345],{"type":51,"value":346},"        # Detachable session\n",{"type":45,"tag":122,"props":348,"children":349},{"class":124,"line":186},[350,354,358,363,368,372,376,380],{"type":45,"tag":122,"props":351,"children":352},{"style":129},[353],{"type":51,"value":132},{"type":45,"tag":122,"props":355,"children":356},{"style":135},[357],{"type":51,"value":293},{"type":45,"tag":122,"props":359,"children":360},{"style":135},[361],{"type":51,"value":362}," -env",{"type":45,"tag":122,"props":364,"children":365},{"style":135},[366],{"type":51,"value":367}," KEY=VAL",{"type":45,"tag":122,"props":369,"children":370},{"style":141},[371],{"type":51,"value":298},{"type":45,"tag":122,"props":373,"children":374},{"style":135},[375],{"type":51,"value":303},{"type":45,"tag":122,"props":377,"children":378},{"style":141},[379],{"type":51,"value":308},{"type":45,"tag":122,"props":381,"children":382},{"style":163},[383],{"type":51,"value":384},"       # With environment variables\n",{"type":45,"tag":122,"props":386,"children":387},{"class":124,"line":220},[388,392,396,401,406,410,414,418],{"type":45,"tag":122,"props":389,"children":390},{"style":129},[391],{"type":51,"value":132},{"type":45,"tag":122,"props":393,"children":394},{"style":135},[395],{"type":51,"value":293},{"type":45,"tag":122,"props":397,"children":398},{"style":135},[399],{"type":51,"value":400}," -dir",{"type":45,"tag":122,"props":402,"children":403},{"style":135},[404],{"type":51,"value":405}," \u002Fpath",{"type":45,"tag":122,"props":407,"children":408},{"style":141},[409],{"type":51,"value":298},{"type":45,"tag":122,"props":411,"children":412},{"style":135},[413],{"type":51,"value":303},{"type":45,"tag":122,"props":415,"children":416},{"style":141},[417],{"type":51,"value":308},{"type":45,"tag":122,"props":419,"children":420},{"style":163},[421],{"type":51,"value":422},"         # With working directory\n",{"type":45,"tag":122,"props":424,"children":425},{"class":124,"line":237},[426,430,434,439,444,448,453,457],{"type":45,"tag":122,"props":427,"children":428},{"style":129},[429],{"type":51,"value":132},{"type":45,"tag":122,"props":431,"children":432},{"style":135},[433],{"type":51,"value":293},{"type":45,"tag":122,"props":435,"children":436},{"style":135},[437],{"type":51,"value":438}," -file",{"type":45,"tag":122,"props":440,"children":441},{"style":135},[442],{"type":51,"value":443}," local:\u002Fremote",{"type":45,"tag":122,"props":445,"children":446},{"style":141},[447],{"type":51,"value":298},{"type":45,"tag":122,"props":449,"children":450},{"style":135},[451],{"type":51,"value":452},"cmd",{"type":45,"tag":122,"props":454,"children":455},{"style":141},[456],{"type":51,"value":308},{"type":45,"tag":122,"props":458,"children":459},{"style":163},[460],{"type":51,"value":461},"    # Upload file before exec\n",{"type":45,"tag":103,"props":463,"children":465},{"id":464},"session-management",[466],{"type":51,"value":467},"Session Management",{"type":45,"tag":110,"props":469,"children":471},{"className":112,"code":470,"language":114,"meta":115,"style":115},"sprite sessions list          # List running sessions\nsprite sessions attach \u003Cid>   # Reattach to session\nsprite sessions kill \u003Cid>     # Terminate session\n",[472],{"type":45,"tag":118,"props":473,"children":474},{"__ignoreMap":115},[475,496,535],{"type":45,"tag":122,"props":476,"children":477},{"class":124,"line":125},[478,482,487,491],{"type":45,"tag":122,"props":479,"children":480},{"style":129},[481],{"type":51,"value":132},{"type":45,"tag":122,"props":483,"children":484},{"style":135},[485],{"type":51,"value":486}," sessions",{"type":45,"tag":122,"props":488,"children":489},{"style":135},[490],{"type":51,"value":178},{"type":45,"tag":122,"props":492,"children":493},{"style":163},[494],{"type":51,"value":495},"          # List running sessions\n",{"type":45,"tag":122,"props":497,"children":498},{"class":124,"line":27},[499,503,507,512,516,521,526,530],{"type":45,"tag":122,"props":500,"children":501},{"style":129},[502],{"type":51,"value":132},{"type":45,"tag":122,"props":504,"children":505},{"style":135},[506],{"type":51,"value":486},{"type":45,"tag":122,"props":508,"children":509},{"style":135},[510],{"type":51,"value":511}," attach",{"type":45,"tag":122,"props":513,"children":514},{"style":141},[515],{"type":51,"value":144},{"type":45,"tag":122,"props":517,"children":518},{"style":135},[519],{"type":51,"value":520},"i",{"type":45,"tag":122,"props":522,"children":523},{"style":152},[524],{"type":51,"value":525},"d",{"type":45,"tag":122,"props":527,"children":528},{"style":141},[529],{"type":51,"value":160},{"type":45,"tag":122,"props":531,"children":532},{"style":163},[533],{"type":51,"value":534},"   # Reattach to session\n",{"type":45,"tag":122,"props":536,"children":537},{"class":124,"line":186},[538,542,546,551,555,559,563,567],{"type":45,"tag":122,"props":539,"children":540},{"style":129},[541],{"type":51,"value":132},{"type":45,"tag":122,"props":543,"children":544},{"style":135},[545],{"type":51,"value":486},{"type":45,"tag":122,"props":547,"children":548},{"style":135},[549],{"type":51,"value":550}," kill",{"type":45,"tag":122,"props":552,"children":553},{"style":141},[554],{"type":51,"value":144},{"type":45,"tag":122,"props":556,"children":557},{"style":135},[558],{"type":51,"value":520},{"type":45,"tag":122,"props":560,"children":561},{"style":152},[562],{"type":51,"value":525},{"type":45,"tag":122,"props":564,"children":565},{"style":141},[566],{"type":51,"value":160},{"type":45,"tag":122,"props":568,"children":569},{"style":163},[570],{"type":51,"value":571},"     # Terminate session\n",{"type":45,"tag":61,"props":573,"children":574},{},[575,581,583,589],{"type":45,"tag":576,"props":577,"children":578},"strong",{},[579],{"type":51,"value":580},"Detach from session",{"type":51,"value":582},": Press ",{"type":45,"tag":118,"props":584,"children":586},{"className":585},[],[587],{"type":51,"value":588},"Ctrl+\\",{"type":51,"value":590}," (keeps running in background)",{"type":45,"tag":103,"props":592,"children":594},{"id":593},"port-forwarding",[595],{"type":51,"value":596},"Port Forwarding",{"type":45,"tag":110,"props":598,"children":600},{"className":112,"code":599,"language":114,"meta":115,"style":115},"sprite proxy \u003Cport>           # Forward sprite port to localhost\n",[601],{"type":45,"tag":118,"props":602,"children":603},{"__ignoreMap":115},[604],{"type":45,"tag":122,"props":605,"children":606},{"class":124,"line":125},[607,611,616,620,625,630,634],{"type":45,"tag":122,"props":608,"children":609},{"style":129},[610],{"type":51,"value":132},{"type":45,"tag":122,"props":612,"children":613},{"style":135},[614],{"type":51,"value":615}," proxy",{"type":45,"tag":122,"props":617,"children":618},{"style":141},[619],{"type":51,"value":144},{"type":45,"tag":122,"props":621,"children":622},{"style":135},[623],{"type":51,"value":624},"por",{"type":45,"tag":122,"props":626,"children":627},{"style":152},[628],{"type":51,"value":629},"t",{"type":45,"tag":122,"props":631,"children":632},{"style":141},[633],{"type":51,"value":160},{"type":45,"tag":122,"props":635,"children":636},{"style":163},[637],{"type":51,"value":638},"           # Forward sprite port to localhost\n",{"type":45,"tag":54,"props":640,"children":642},{"id":641},"filesystem-api",[643],{"type":51,"value":644},"Filesystem API",{"type":45,"tag":61,"props":646,"children":647},{},[648,650,656,658],{"type":51,"value":649},"Base URL: ",{"type":45,"tag":118,"props":651,"children":653},{"className":652},[],[654],{"type":51,"value":655},"https:\u002F\u002Fapi.sprites.dev\u002Fv1",{"type":51,"value":657},"\nAuth: ",{"type":45,"tag":118,"props":659,"children":661},{"className":660},[],[662],{"type":51,"value":663},"Authorization: Bearer \u003Ctoken>",{"type":45,"tag":103,"props":665,"children":667},{"id":666},"write-file",[668],{"type":51,"value":669},"Write File",{"type":45,"tag":110,"props":671,"children":673},{"className":112,"code":672,"language":114,"meta":115,"style":115},"curl -X PUT \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Foctet-stream\" \\\n  --data-binary \"@localfile.txt\" \\\n  \"https:\u002F\u002Fapi.sprites.dev\u002Fv1\u002Fsprites\u002FNAME\u002Ffs\u002Fwrite?path=remote.txt&workingDir=\u002Fhome\u002Fsprite&mkdir=true\"\n",[674],{"type":45,"tag":118,"props":675,"children":676},{"__ignoreMap":115},[677,700,730,754,779],{"type":45,"tag":122,"props":678,"children":679},{"class":124,"line":125},[680,685,690,695],{"type":45,"tag":122,"props":681,"children":682},{"style":129},[683],{"type":51,"value":684},"curl",{"type":45,"tag":122,"props":686,"children":687},{"style":135},[688],{"type":51,"value":689}," -X",{"type":45,"tag":122,"props":691,"children":692},{"style":135},[693],{"type":51,"value":694}," PUT",{"type":45,"tag":122,"props":696,"children":697},{"style":152},[698],{"type":51,"value":699}," \\\n",{"type":45,"tag":122,"props":701,"children":702},{"class":124,"line":27},[703,708,712,717,722,726],{"type":45,"tag":122,"props":704,"children":705},{"style":135},[706],{"type":51,"value":707},"  -H",{"type":45,"tag":122,"props":709,"children":710},{"style":141},[711],{"type":51,"value":298},{"type":45,"tag":122,"props":713,"children":714},{"style":135},[715],{"type":51,"value":716},"Authorization: Bearer ",{"type":45,"tag":122,"props":718,"children":719},{"style":152},[720],{"type":51,"value":721},"$TOKEN",{"type":45,"tag":122,"props":723,"children":724},{"style":141},[725],{"type":51,"value":308},{"type":45,"tag":122,"props":727,"children":728},{"style":152},[729],{"type":51,"value":699},{"type":45,"tag":122,"props":731,"children":732},{"class":124,"line":186},[733,737,741,746,750],{"type":45,"tag":122,"props":734,"children":735},{"style":135},[736],{"type":51,"value":707},{"type":45,"tag":122,"props":738,"children":739},{"style":141},[740],{"type":51,"value":298},{"type":45,"tag":122,"props":742,"children":743},{"style":135},[744],{"type":51,"value":745},"Content-Type: application\u002Foctet-stream",{"type":45,"tag":122,"props":747,"children":748},{"style":141},[749],{"type":51,"value":308},{"type":45,"tag":122,"props":751,"children":752},{"style":152},[753],{"type":51,"value":699},{"type":45,"tag":122,"props":755,"children":756},{"class":124,"line":220},[757,762,766,771,775],{"type":45,"tag":122,"props":758,"children":759},{"style":135},[760],{"type":51,"value":761},"  --data-binary",{"type":45,"tag":122,"props":763,"children":764},{"style":141},[765],{"type":51,"value":298},{"type":45,"tag":122,"props":767,"children":768},{"style":135},[769],{"type":51,"value":770},"@localfile.txt",{"type":45,"tag":122,"props":772,"children":773},{"style":141},[774],{"type":51,"value":308},{"type":45,"tag":122,"props":776,"children":777},{"style":152},[778],{"type":51,"value":699},{"type":45,"tag":122,"props":780,"children":781},{"class":124,"line":237},[782,787,792],{"type":45,"tag":122,"props":783,"children":784},{"style":141},[785],{"type":51,"value":786},"  \"",{"type":45,"tag":122,"props":788,"children":789},{"style":135},[790],{"type":51,"value":791},"https:\u002F\u002Fapi.sprites.dev\u002Fv1\u002Fsprites\u002FNAME\u002Ffs\u002Fwrite?path=remote.txt&workingDir=\u002Fhome\u002Fsprite&mkdir=true",{"type":45,"tag":122,"props":793,"children":794},{"style":141},[795],{"type":51,"value":796},"\"\n",{"type":45,"tag":103,"props":798,"children":800},{"id":799},"read-file",[801],{"type":51,"value":802},"Read File",{"type":45,"tag":110,"props":804,"children":806},{"className":112,"code":805,"language":114,"meta":115,"style":115},"curl -H \"Authorization: Bearer $TOKEN\" \\\n  \"https:\u002F\u002Fapi.sprites.dev\u002Fv1\u002Fsprites\u002FNAME\u002Ffs\u002Fread?path=file.txt&workingDir=\u002Fhome\u002Fsprite\"\n",[807],{"type":45,"tag":118,"props":808,"children":809},{"__ignoreMap":115},[810,842],{"type":45,"tag":122,"props":811,"children":812},{"class":124,"line":125},[813,817,822,826,830,834,838],{"type":45,"tag":122,"props":814,"children":815},{"style":129},[816],{"type":51,"value":684},{"type":45,"tag":122,"props":818,"children":819},{"style":135},[820],{"type":51,"value":821}," -H",{"type":45,"tag":122,"props":823,"children":824},{"style":141},[825],{"type":51,"value":298},{"type":45,"tag":122,"props":827,"children":828},{"style":135},[829],{"type":51,"value":716},{"type":45,"tag":122,"props":831,"children":832},{"style":152},[833],{"type":51,"value":721},{"type":45,"tag":122,"props":835,"children":836},{"style":141},[837],{"type":51,"value":308},{"type":45,"tag":122,"props":839,"children":840},{"style":152},[841],{"type":51,"value":699},{"type":45,"tag":122,"props":843,"children":844},{"class":124,"line":27},[845,849,854],{"type":45,"tag":122,"props":846,"children":847},{"style":141},[848],{"type":51,"value":786},{"type":45,"tag":122,"props":850,"children":851},{"style":135},[852],{"type":51,"value":853},"https:\u002F\u002Fapi.sprites.dev\u002Fv1\u002Fsprites\u002FNAME\u002Ffs\u002Fread?path=file.txt&workingDir=\u002Fhome\u002Fsprite",{"type":45,"tag":122,"props":855,"children":856},{"style":141},[857],{"type":51,"value":796},{"type":45,"tag":103,"props":859,"children":861},{"id":860},"list-directory",[862],{"type":51,"value":863},"List Directory",{"type":45,"tag":110,"props":865,"children":867},{"className":112,"code":866,"language":114,"meta":115,"style":115},"curl -H \"Authorization: Bearer $TOKEN\" \\\n  \"https:\u002F\u002Fapi.sprites.dev\u002Fv1\u002Fsprites\u002FNAME\u002Ffs\u002Flist?path=.&workingDir=\u002Fhome\u002Fsprite\"\n",[868],{"type":45,"tag":118,"props":869,"children":870},{"__ignoreMap":115},[871,902],{"type":45,"tag":122,"props":872,"children":873},{"class":124,"line":125},[874,878,882,886,890,894,898],{"type":45,"tag":122,"props":875,"children":876},{"style":129},[877],{"type":51,"value":684},{"type":45,"tag":122,"props":879,"children":880},{"style":135},[881],{"type":51,"value":821},{"type":45,"tag":122,"props":883,"children":884},{"style":141},[885],{"type":51,"value":298},{"type":45,"tag":122,"props":887,"children":888},{"style":135},[889],{"type":51,"value":716},{"type":45,"tag":122,"props":891,"children":892},{"style":152},[893],{"type":51,"value":721},{"type":45,"tag":122,"props":895,"children":896},{"style":141},[897],{"type":51,"value":308},{"type":45,"tag":122,"props":899,"children":900},{"style":152},[901],{"type":51,"value":699},{"type":45,"tag":122,"props":903,"children":904},{"class":124,"line":27},[905,909,914],{"type":45,"tag":122,"props":906,"children":907},{"style":141},[908],{"type":51,"value":786},{"type":45,"tag":122,"props":910,"children":911},{"style":135},[912],{"type":51,"value":913},"https:\u002F\u002Fapi.sprites.dev\u002Fv1\u002Fsprites\u002FNAME\u002Ffs\u002Flist?path=.&workingDir=\u002Fhome\u002Fsprite",{"type":45,"tag":122,"props":915,"children":916},{"style":141},[917],{"type":51,"value":796},{"type":45,"tag":103,"props":919,"children":921},{"id":920},"delete",[922],{"type":51,"value":923},"Delete",{"type":45,"tag":110,"props":925,"children":927},{"className":112,"code":926,"language":114,"meta":115,"style":115},"curl -X DELETE \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"path\":\"file.txt\",\"workingDir\":\"\u002Fhome\u002Fsprite\",\"recursive\":false,\"asRoot\":false}' \\\n  \"https:\u002F\u002Fapi.sprites.dev\u002Fv1\u002Fsprites\u002FNAME\u002Ffs\u002Fdelete\"\n",[928],{"type":45,"tag":118,"props":929,"children":930},{"__ignoreMap":115},[931,951,978,1002,1029],{"type":45,"tag":122,"props":932,"children":933},{"class":124,"line":125},[934,938,942,947],{"type":45,"tag":122,"props":935,"children":936},{"style":129},[937],{"type":51,"value":684},{"type":45,"tag":122,"props":939,"children":940},{"style":135},[941],{"type":51,"value":689},{"type":45,"tag":122,"props":943,"children":944},{"style":135},[945],{"type":51,"value":946}," DELETE",{"type":45,"tag":122,"props":948,"children":949},{"style":152},[950],{"type":51,"value":699},{"type":45,"tag":122,"props":952,"children":953},{"class":124,"line":27},[954,958,962,966,970,974],{"type":45,"tag":122,"props":955,"children":956},{"style":135},[957],{"type":51,"value":707},{"type":45,"tag":122,"props":959,"children":960},{"style":141},[961],{"type":51,"value":298},{"type":45,"tag":122,"props":963,"children":964},{"style":135},[965],{"type":51,"value":716},{"type":45,"tag":122,"props":967,"children":968},{"style":152},[969],{"type":51,"value":721},{"type":45,"tag":122,"props":971,"children":972},{"style":141},[973],{"type":51,"value":308},{"type":45,"tag":122,"props":975,"children":976},{"style":152},[977],{"type":51,"value":699},{"type":45,"tag":122,"props":979,"children":980},{"class":124,"line":186},[981,985,989,994,998],{"type":45,"tag":122,"props":982,"children":983},{"style":135},[984],{"type":51,"value":707},{"type":45,"tag":122,"props":986,"children":987},{"style":141},[988],{"type":51,"value":298},{"type":45,"tag":122,"props":990,"children":991},{"style":135},[992],{"type":51,"value":993},"Content-Type: application\u002Fjson",{"type":45,"tag":122,"props":995,"children":996},{"style":141},[997],{"type":51,"value":308},{"type":45,"tag":122,"props":999,"children":1000},{"style":152},[1001],{"type":51,"value":699},{"type":45,"tag":122,"props":1003,"children":1004},{"class":124,"line":220},[1005,1010,1015,1020,1025],{"type":45,"tag":122,"props":1006,"children":1007},{"style":135},[1008],{"type":51,"value":1009},"  -d",{"type":45,"tag":122,"props":1011,"children":1012},{"style":141},[1013],{"type":51,"value":1014}," '",{"type":45,"tag":122,"props":1016,"children":1017},{"style":135},[1018],{"type":51,"value":1019},"{\"path\":\"file.txt\",\"workingDir\":\"\u002Fhome\u002Fsprite\",\"recursive\":false,\"asRoot\":false}",{"type":45,"tag":122,"props":1021,"children":1022},{"style":141},[1023],{"type":51,"value":1024},"'",{"type":45,"tag":122,"props":1026,"children":1027},{"style":152},[1028],{"type":51,"value":699},{"type":45,"tag":122,"props":1030,"children":1031},{"class":124,"line":237},[1032,1036,1041],{"type":45,"tag":122,"props":1033,"children":1034},{"style":141},[1035],{"type":51,"value":786},{"type":45,"tag":122,"props":1037,"children":1038},{"style":135},[1039],{"type":51,"value":1040},"https:\u002F\u002Fapi.sprites.dev\u002Fv1\u002Fsprites\u002FNAME\u002Ffs\u002Fdelete",{"type":45,"tag":122,"props":1042,"children":1043},{"style":141},[1044],{"type":51,"value":796},{"type":45,"tag":54,"props":1046,"children":1048},{"id":1047},"authentication",[1049],{"type":51,"value":1050},"Authentication",{"type":45,"tag":61,"props":1052,"children":1053},{},[1054,1056,1062,1064,1070],{"type":51,"value":1055},"Token stored in ",{"type":45,"tag":118,"props":1057,"children":1059},{"className":1058},[],[1060],{"type":51,"value":1061},"~\u002F.sprites\u002Fsprites.json",{"type":51,"value":1063}," after running ",{"type":45,"tag":118,"props":1065,"children":1067},{"className":1066},[],[1068],{"type":51,"value":1069},"sprite org auth",{"type":51,"value":1071},".",{"type":45,"tag":61,"props":1073,"children":1074},{},[1075],{"type":51,"value":1076},"Extract token:",{"type":45,"tag":110,"props":1078,"children":1080},{"className":112,"code":1079,"language":114,"meta":115,"style":115},"jq -r '.token' ~\u002F.sprites\u002Fsprites.json\n",[1081],{"type":45,"tag":118,"props":1082,"children":1083},{"__ignoreMap":115},[1084],{"type":45,"tag":122,"props":1085,"children":1086},{"class":124,"line":125},[1087,1092,1097,1101,1106,1110],{"type":45,"tag":122,"props":1088,"children":1089},{"style":129},[1090],{"type":51,"value":1091},"jq",{"type":45,"tag":122,"props":1093,"children":1094},{"style":135},[1095],{"type":51,"value":1096}," -r",{"type":45,"tag":122,"props":1098,"children":1099},{"style":141},[1100],{"type":51,"value":1014},{"type":45,"tag":122,"props":1102,"children":1103},{"style":135},[1104],{"type":51,"value":1105},".token",{"type":45,"tag":122,"props":1107,"children":1108},{"style":141},[1109],{"type":51,"value":1024},{"type":45,"tag":122,"props":1111,"children":1112},{"style":135},[1113],{"type":51,"value":1114}," ~\u002F.sprites\u002Fsprites.json\n",{"type":45,"tag":54,"props":1116,"children":1118},{"id":1117},"best-practices",[1119],{"type":51,"value":1120},"Best Practices",{"type":45,"tag":1122,"props":1123,"children":1124},"ol",{},[1125,1135,1145,1155,1165,1175],{"type":45,"tag":71,"props":1126,"children":1127},{},[1128,1133],{"type":45,"tag":576,"props":1129,"children":1130},{},[1131],{"type":51,"value":1132},"Use detachable sessions",{"type":51,"value":1134}," for long-running processes (dev servers, builds, tests)",{"type":45,"tag":71,"props":1136,"children":1137},{},[1138,1143],{"type":45,"tag":576,"props":1139,"children":1140},{},[1141],{"type":51,"value":1142},"Sync git-tracked files",{"type":51,"value":1144}," rather than entire directories to avoid bloat",{"type":45,"tag":71,"props":1146,"children":1147},{},[1148,1153],{"type":45,"tag":576,"props":1149,"children":1150},{},[1151],{"type":51,"value":1152},"Port forward",{"type":51,"value":1154}," for accessing web UIs running in sprites",{"type":45,"tag":71,"props":1156,"children":1157},{},[1158,1163],{"type":45,"tag":576,"props":1159,"children":1160},{},[1161],{"type":51,"value":1162},"Check sessions",{"type":51,"value":1164}," before creating new ones to avoid orphaned processes",{"type":45,"tag":71,"props":1166,"children":1167},{},[1168,1173],{"type":45,"tag":576,"props":1169,"children":1170},{},[1171],{"type":51,"value":1172},"Sprites hibernate automatically",{"type":51,"value":1174}," - no need to manually stop them",{"type":45,"tag":71,"props":1176,"children":1177},{},[1178,1183],{"type":45,"tag":576,"props":1179,"children":1180},{},[1181],{"type":51,"value":1182},"Use checkpoints",{"type":51,"value":1184}," for creating clean restore points (filesystem snapshots)",{"type":45,"tag":54,"props":1186,"children":1188},{"id":1187},"common-patterns",[1189],{"type":51,"value":1190},"Common Patterns",{"type":45,"tag":103,"props":1192,"children":1194},{"id":1193},"development-server",[1195],{"type":51,"value":1196},"Development Server",{"type":45,"tag":110,"props":1198,"children":1200},{"className":112,"code":1199,"language":114,"meta":115,"style":115},"sprite create my-dev\nsprite use my-dev\n# sync files\nsprite exec -detachable \"npm run dev\"\nsprite proxy 3000\n# Access at localhost:3000\n",[1201],{"type":45,"tag":118,"props":1202,"children":1203},{"__ignoreMap":115},[1204,1220,1235,1243,1271,1288],{"type":45,"tag":122,"props":1205,"children":1206},{"class":124,"line":125},[1207,1211,1215],{"type":45,"tag":122,"props":1208,"children":1209},{"style":129},[1210],{"type":51,"value":132},{"type":45,"tag":122,"props":1212,"children":1213},{"style":135},[1214],{"type":51,"value":138},{"type":45,"tag":122,"props":1216,"children":1217},{"style":135},[1218],{"type":51,"value":1219}," my-dev\n",{"type":45,"tag":122,"props":1221,"children":1222},{"class":124,"line":27},[1223,1227,1231],{"type":45,"tag":122,"props":1224,"children":1225},{"style":129},[1226],{"type":51,"value":132},{"type":45,"tag":122,"props":1228,"children":1229},{"style":135},[1230],{"type":51,"value":196},{"type":45,"tag":122,"props":1232,"children":1233},{"style":135},[1234],{"type":51,"value":1219},{"type":45,"tag":122,"props":1236,"children":1237},{"class":124,"line":186},[1238],{"type":45,"tag":122,"props":1239,"children":1240},{"style":163},[1241],{"type":51,"value":1242},"# sync files\n",{"type":45,"tag":122,"props":1244,"children":1245},{"class":124,"line":220},[1246,1250,1254,1258,1262,1267],{"type":45,"tag":122,"props":1247,"children":1248},{"style":129},[1249],{"type":51,"value":132},{"type":45,"tag":122,"props":1251,"children":1252},{"style":135},[1253],{"type":51,"value":293},{"type":45,"tag":122,"props":1255,"children":1256},{"style":135},[1257],{"type":51,"value":329},{"type":45,"tag":122,"props":1259,"children":1260},{"style":141},[1261],{"type":51,"value":298},{"type":45,"tag":122,"props":1263,"children":1264},{"style":135},[1265],{"type":51,"value":1266},"npm run dev",{"type":45,"tag":122,"props":1268,"children":1269},{"style":141},[1270],{"type":51,"value":796},{"type":45,"tag":122,"props":1272,"children":1273},{"class":124,"line":237},[1274,1278,1282],{"type":45,"tag":122,"props":1275,"children":1276},{"style":129},[1277],{"type":51,"value":132},{"type":45,"tag":122,"props":1279,"children":1280},{"style":135},[1281],{"type":51,"value":615},{"type":45,"tag":122,"props":1283,"children":1285},{"style":1284},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[1286],{"type":51,"value":1287}," 3000\n",{"type":45,"tag":122,"props":1289,"children":1291},{"class":124,"line":1290},6,[1292],{"type":45,"tag":122,"props":1293,"children":1294},{"style":163},[1295],{"type":51,"value":1296},"# Access at localhost:3000\n",{"type":45,"tag":103,"props":1298,"children":1300},{"id":1299},"ci-style-execution",[1301],{"type":51,"value":1302},"CI-style Execution",{"type":45,"tag":110,"props":1304,"children":1306},{"className":112,"code":1305,"language":114,"meta":115,"style":115},"sprite exec \"npm install && npm test && npm run build\"\n",[1307],{"type":45,"tag":118,"props":1308,"children":1309},{"__ignoreMap":115},[1310],{"type":45,"tag":122,"props":1311,"children":1312},{"class":124,"line":125},[1313,1317,1321,1325,1330],{"type":45,"tag":122,"props":1314,"children":1315},{"style":129},[1316],{"type":51,"value":132},{"type":45,"tag":122,"props":1318,"children":1319},{"style":135},[1320],{"type":51,"value":293},{"type":45,"tag":122,"props":1322,"children":1323},{"style":141},[1324],{"type":51,"value":298},{"type":45,"tag":122,"props":1326,"children":1327},{"style":135},[1328],{"type":51,"value":1329},"npm install && npm test && npm run build",{"type":45,"tag":122,"props":1331,"children":1332},{"style":141},[1333],{"type":51,"value":796},{"type":45,"tag":103,"props":1335,"children":1337},{"id":1336},"background-build",[1338],{"type":51,"value":1339},"Background Build",{"type":45,"tag":110,"props":1341,"children":1343},{"className":112,"code":1342,"language":114,"meta":115,"style":115},"sprite exec -detachable \"npm run build:watch\"\nsprite sessions list  # to monitor\n",[1344],{"type":45,"tag":118,"props":1345,"children":1346},{"__ignoreMap":115},[1347,1375],{"type":45,"tag":122,"props":1348,"children":1349},{"class":124,"line":125},[1350,1354,1358,1362,1366,1371],{"type":45,"tag":122,"props":1351,"children":1352},{"style":129},[1353],{"type":51,"value":132},{"type":45,"tag":122,"props":1355,"children":1356},{"style":135},[1357],{"type":51,"value":293},{"type":45,"tag":122,"props":1359,"children":1360},{"style":135},[1361],{"type":51,"value":329},{"type":45,"tag":122,"props":1363,"children":1364},{"style":141},[1365],{"type":51,"value":298},{"type":45,"tag":122,"props":1367,"children":1368},{"style":135},[1369],{"type":51,"value":1370},"npm run build:watch",{"type":45,"tag":122,"props":1372,"children":1373},{"style":141},[1374],{"type":51,"value":796},{"type":45,"tag":122,"props":1376,"children":1377},{"class":124,"line":27},[1378,1382,1386,1390],{"type":45,"tag":122,"props":1379,"children":1380},{"style":129},[1381],{"type":51,"value":132},{"type":45,"tag":122,"props":1383,"children":1384},{"style":135},[1385],{"type":51,"value":486},{"type":45,"tag":122,"props":1387,"children":1388},{"style":135},[1389],{"type":51,"value":178},{"type":45,"tag":122,"props":1391,"children":1392},{"style":163},[1393],{"type":51,"value":1394},"  # to monitor\n",{"type":45,"tag":1396,"props":1397,"children":1398},"style",{},[1399],{"type":51,"value":1400},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1402,"total":1491},[1403,1410,1421,1437,1447,1457,1467,1477],{"slug":4,"name":5,"fn":6,"description":7,"org":1404,"tags":1405,"stars":27,"repoUrl":28,"updatedAt":29},{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1406,1407,1408,1409],{"name":19,"slug":20,"type":17},{"name":22,"slug":23,"type":17},{"name":25,"slug":26,"type":17},{"name":15,"slug":16,"type":17},{"slug":1411,"name":1411,"fn":1412,"description":1413,"org":1414,"tags":1415,"stars":31,"repoUrl":1419,"updatedAt":1420},"sprites","manage persistent microVMs with Sprites","Use when working with Sprites from Antigravity, including creating persistent microVMs, running commands, managing services, using checkpoints, syncing files, or applying Sprites safety practices.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1416,1417,1418],{"name":22,"slug":23,"type":17},{"name":25,"slug":26,"type":17},{"name":15,"slug":16,"type":17},"https:\u002F\u002Fgithub.com\u002Fsuperfly\u002Fsprites-antigravity-plugin","2026-07-12T07:53:44.907849",{"slug":1422,"name":1422,"fn":1423,"description":1424,"org":1425,"tags":1426,"stars":31,"repoUrl":1419,"updatedAt":1436},"sprites-checkpoint","manage Sprite checkpoints and snapshots","Creates, lists, inspects, or restores Sprite checkpoints. Use before risky changes or when the user asks for rollback, snapshots, or restore points.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1427,1430,1433],{"name":1428,"slug":1429,"type":17},"Automation","automation",{"name":1431,"slug":1432,"type":17},"Maintenance","maintenance",{"name":1434,"slug":1435,"type":17},"Operations","operations","2026-07-12T07:53:52.923861",{"slug":1438,"name":1438,"fn":1439,"description":1440,"org":1441,"tags":1442,"stars":31,"repoUrl":1419,"updatedAt":1446},"sprites-cleanup","clean up stale Sprites and environments","Finds and safely cleans up stale Sprites, services, and exec sessions. Use when the user asks to tidy, prune, delete old environments, or reduce Sprite clutter.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1443,1444,1445],{"name":1428,"slug":1429,"type":17},{"name":1431,"slug":1432,"type":17},{"name":1434,"slug":1435,"type":17},"2026-07-12T07:53:50.408418",{"slug":1448,"name":1448,"fn":1449,"description":1450,"org":1451,"tags":1452,"stars":31,"repoUrl":1419,"updatedAt":1456},"sprites-list","list and inspect Fly.io Sprites","Lists and summarizes Sprites. Use when the user asks to see Sprites, find stale Sprites, inspect running services, or choose an active Sprite.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1453,1454,1455],{"name":19,"slug":20,"type":17},{"name":25,"slug":26,"type":17},{"name":15,"slug":16,"type":17},"2026-07-12T07:53:49.182186",{"slug":1458,"name":1458,"fn":1459,"description":1460,"org":1461,"tags":1462,"stars":31,"repoUrl":1419,"updatedAt":1466},"sprites-new","create isolated Sprite development environments","Creates a new Sprite for a task. Use when the user wants a fresh Sprite, isolated environment, sandbox, preview environment, or persistent development microVM.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1463,1464,1465],{"name":22,"slug":23,"type":17},{"name":25,"slug":26,"type":17},{"name":15,"slug":16,"type":17},"2026-07-12T07:53:46.694896",{"slug":1468,"name":1468,"fn":1469,"description":1470,"org":1471,"tags":1472,"stars":31,"repoUrl":1419,"updatedAt":1476},"sprites-run","run commands inside Fly.io Sprites","Runs commands inside a Sprite with clear confirmation and result summaries. Use when the user asks to execute, test, inspect, install, or debug inside a Sprite.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1473,1474,1475],{"name":19,"slug":20,"type":17},{"name":22,"slug":23,"type":17},{"name":15,"slug":16,"type":17},"2026-07-12T07:53:47.930678",{"slug":1478,"name":1478,"fn":1479,"description":1480,"org":1481,"tags":1482,"stars":31,"repoUrl":1419,"updatedAt":1490},"sprites-service","manage long-running services in Sprites","Manages long-running services in a Sprite. Use when the user wants to start, stop, restart, expose, inspect, or debug web servers and background services.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1483,1486,1489],{"name":1484,"slug":1485,"type":17},"Debugging","debugging",{"name":1487,"slug":1488,"type":17},"Deployment","deployment",{"name":1434,"slug":1435,"type":17},"2026-07-12T07:53:51.651996",8,{"items":1493,"total":125},[1494],{"slug":4,"name":5,"fn":6,"description":7,"org":1495,"tags":1496,"stars":27,"repoUrl":28,"updatedAt":29},{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1497,1498,1499,1500],{"name":19,"slug":20,"type":17},{"name":22,"slug":23,"type":17},{"name":25,"slug":26,"type":17},{"name":15,"slug":16,"type":17}]