[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DA385P0S838W8ZXQ7SVDFM":3,"skill-same:01M6DA385P0S838W8ZXQ7SVDFM":80},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":47,"linkOnly":48,"markdownContent":49,"markdownBody":50,"frontMatter":51,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":55,"repositoryHtmlUrl":56,"repositoryHomepageUrl":6,"ownerHtmlUrl":57,"ownerBlogUrl":58,"ownerDescription":6,"updatedAt":59,"install":60,"resources":73},"01M6DA385P0S838W8ZXQ7SVDFM","scion-web-serving",null,"How to serve a web page, app, API or other HTTP service from inside your agent so a person or program can reach it through the Hub's port proxy: scion expose and unexpose, the URL to hand over, what the proxy carries, and scion tunnel for full apps. The link serves web protocols only; for a non-HTTP port, point the person to scion tunnel. Use before running scion expose. For web pages and apps, also read references\u002Fweb-apps.md.","GoogleCloudPlatform\u002Fscion","GoogleCloudPlatform","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F2810941?v=4","01M6DA2FX07AS0KCQ4FBRS84A2","Google Cloud Platform","01M6DA2G1EA6A2E5MKG6THG0KK",2110,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FGoogleCloudPlatform\u002Fscion\u002Fblob\u002Fmain\u002Fresources\u002Fplatform_skills\u002Fscion-web-serving\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"serving","scion web serving","web","tunnel","program","running","point","for","hand","URL","how to","apps","app","pages","service","full","what the","references","hub","only","use","read","page","how","api","proxy","protocols","http","2026-11-10 10:12:30",false,"---\nname: scion-web-serving\ndescription: >-\n  How to serve a web page, app, API or other HTTP service from inside your\n  agent so a person or program can reach it through the Hub's port proxy:\n  scion expose and unexpose, the URL to hand over, what the proxy carries,\n  and scion tunnel for full apps. The link serves web protocols only; for a\n  non-HTTP port, point the person to scion tunnel. Use before running scion\n  expose. For web pages and apps, also read references\u002Fweb-apps.md.\n---\n\n# Serving web content from your agent through the port proxy\n\nServices inside your agent are not reachable from outside it. `scion expose`\nregisters a local port with the Hub, which then serves it at a URL that\npeople with access to your agent can open.\n\nThe link serves web protocols only (HTTP, and WebSockets where supported; see\nbelow). For a non-HTTP port (a database, a debugger, SSH or another TCP\nservice), the person uses `scion tunnel` instead, and the port must stay\nexposed (see Full apps: scion tunnel).\n\n## Steps\n\n1. Run the service on `127.0.0.1` on a free port (1024 or above; 9810 and\n   18380 cannot be exposed). Only loopback services can be exposed.\n2. Run: `scion expose \u003Cport> --label \"\u003Cwhat it is>\"`\n3. Check it works the way the person will use it (see What the proxy\n   carries; for pages, references\u002Fweb-apps.md).\n4. Give the person the URL **exactly as printed**, including the trailing\n   `\u002F`. Do not hand out tokens, and do not build the URL by hand.\n\n## Commands\n\n- `scion expose \u003Cport> --label \"\u003Cwhat it is>\"` exposes a port and prints its\n  URL. Exposing a port that is already exposed succeeds and prints the same\n  URL; it does not change the label (unexpose and expose again to relabel).\n- `scion expose --list` lists your exposed ports with their labels and URLs,\n  and whether auto-expose is on.\n- `scion unexpose \u003Cport>` stops exposing a port. It succeeds if the port was\n  not exposed. If auto-expose is on, a port that is still listening may be\n  exposed again on its next scan.\n- An agent can have at most 10 ports exposed at once. Unexpose ports you no\n  longer need.\n- These commands work only inside an agent with a Hub connection.\n\n## What the proxy carries\n\n- HTTP requests of any method, with the path below the URL and the query\n  string passed through to your service. Programs such as scripts and `curl`\n  can call the URL too, with the Hub credentials of someone who has access to\n  the agent.\n- Your service does not learn who is calling. Do not build a login on top\n  of the link.\n- WebSockets and streamed responses (for example server-sent events) work\n  only when the Hub runs its conduit transport, the same setting\n  `scion tunnel` needs. Without it, a WebSocket request is refused with an\n  error, each response is delivered whole once your service has finished\n  it, and request bodies are limited to 32 MiB.\n- Your service must start answering within 60 seconds (the Hub's default),\n  or the caller gets a timeout error. Without the conduit transport, the\n  whole response must arrive within that time.\n- What a page opened in a browser through the link can load depends on the\n  Hub: with its page view on, the page's relative URLs load; with it off, the\n  page can only use what is inside it. See references\u002Fweb-apps.md before\n  serving a web page or app.\n\n## Full apps: scion tunnel\n\nFor a full multi-file web app, a dev server, or anything the proxy does not\ncarry, the person can run `scion tunnel` on their own machine with the scion\nCLI, if their Hub has `scion tunnel` turned on and they have port access to\nthe agent. Keep the port exposed with `scion expose \u003Cport>` (the tunnel only\nreaches exposed ports), then suggest:\n\n    scion tunnel \u003Cagent> --port \u003Cport>\n\nThe service then opens on a local port on their machine and works as it does\ninside the agent, for any protocol. See\nhttps:\u002F\u002Fgooglecloudplatform.github.io\u002Fscion\u002Fhosted\u002Fuser\u002Fport-forwarding\u002F\n\n## Web pages and apps\n\nFor anything a person opens in a browser through the link, read\nreferences\u002Fweb-apps.md: what loads with and without the Hub's page view,\nbuild settings, what does not work in a page, routing, and how to verify it\nhonestly.\n","# Serving web content from your agent through the port proxy\n\nServices inside your agent are not reachable from outside it. `scion expose`\nregisters a local port with the Hub, which then serves it at a URL that\npeople with access to your agent can open.\n\nThe link serves web protocols only (HTTP, and WebSockets where supported; see\nbelow). For a non-HTTP port (a database, a debugger, SSH or another TCP\nservice), the person uses `scion tunnel` instead, and the port must stay\nexposed (see Full apps: scion tunnel).\n\n## Steps\n\n1. Run the service on `127.0.0.1` on a free port (1024 or above; 9810 and\n   18380 cannot be exposed). Only loopback services can be exposed.\n2. Run: `scion expose \u003Cport> --label \"\u003Cwhat it is>\"`\n3. Check it works the way the person will use it (see What the proxy\n   carries; for pages, references\u002Fweb-apps.md).\n4. Give the person the URL **exactly as printed**, including the trailing\n   `\u002F`. Do not hand out tokens, and do not build the URL by hand.\n\n## Commands\n\n- `scion expose \u003Cport> --label \"\u003Cwhat it is>\"` exposes a port and prints its\n  URL. Exposing a port that is already exposed succeeds and prints the same\n  URL; it does not change the label (unexpose and expose again to relabel).\n- `scion expose --list` lists your exposed ports with their labels and URLs,\n  and whether auto-expose is on.\n- `scion unexpose \u003Cport>` stops exposing a port. It succeeds if the port was\n  not exposed. If auto-expose is on, a port that is still listening may be\n  exposed again on its next scan.\n- An agent can have at most 10 ports exposed at once. Unexpose ports you no\n  longer need.\n- These commands work only inside an agent with a Hub connection.\n\n## What the proxy carries\n\n- HTTP requests of any method, with the path below the URL and the query\n  string passed through to your service. Programs such as scripts and `curl`\n  can call the URL too, with the Hub credentials of someone who has access to\n  the agent.\n- Your service does not learn who is calling. Do not build a login on top\n  of the link.\n- WebSockets and streamed responses (for example server-sent events) work\n  only when the Hub runs its conduit transport, the same setting\n  `scion tunnel` needs. Without it, a WebSocket request is refused with an\n  error, each response is delivered whole once your service has finished\n  it, and request bodies are limited to 32 MiB.\n- Your service must start answering within 60 seconds (the Hub's default),\n  or the caller gets a timeout error. Without the conduit transport, the\n  whole response must arrive within that time.\n- What a page opened in a browser through the link can load depends on the\n  Hub: with its page view on, the page's relative URLs load; with it off, the\n  page can only use what is inside it. See references\u002Fweb-apps.md before\n  serving a web page or app.\n\n## Full apps: scion tunnel\n\nFor a full multi-file web app, a dev server, or anything the proxy does not\ncarry, the person can run `scion tunnel` on their own machine with the scion\nCLI, if their Hub has `scion tunnel` turned on and they have port access to\nthe agent. Keep the port exposed with `scion expose \u003Cport>` (the tunnel only\nreaches exposed ports), then suggest:\n\n    scion tunnel \u003Cagent> --port \u003Cport>\n\nThe service then opens on a local port on their machine and works as it does\ninside the agent, for any protocol. See\nhttps:\u002F\u002Fgooglecloudplatform.github.io\u002Fscion\u002Fhosted\u002Fuser\u002Fport-forwarding\u002F\n\n## Web pages and apps\n\nFor anything a person opens in a browser through the link, read\nreferences\u002Fweb-apps.md: what loads with and without the Hub's page view,\nbuild settings, what does not work in a page, routing, and how to verify it\nhonestly.\n",{"name":5,"description":7},"main","d2283cad8aa80efb245b118b91c4accb684e287e","resources\u002Fplatform_skills\u002Fscion-web-serving",310,"https:\u002F\u002Fgithub.com\u002FGoogleCloudPlatform\u002Fscion","https:\u002F\u002Fgithub.com\u002FGoogleCloudPlatform","https:\u002F\u002Fcloud.google.com","2026-11-12 03:31:17",{"source":8,"skillName":5,"commands":61,"prompt":71,"zipAvailable":72},[62,65,68],{"tool":63,"command":64},"npx","npx skills add GoogleCloudPlatform\u002Fscion --skill scion-web-serving",{"tool":66,"command":67},"bunx","bunx skills add GoogleCloudPlatform\u002Fscion --skill scion-web-serving",{"tool":69,"command":70},"pnpm","pnpm dlx skills add GoogleCloudPlatform\u002Fscion --skill scion-web-serving","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FGoogleCloudPlatform\u002Fscion\u002Fblob\u002Fmain\u002Fresources\u002Fplatform_skills\u002Fscion-web-serving\u002FSKILL.md",true,[74],{"path":75,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":78,"sourceHtmlUrl":79},"references\u002Fweb-apps.md","REFERENCE","参考文档",8493,"https:\u002F\u002Fgithub.com\u002FGoogleCloudPlatform\u002Fscion\u002Fblob\u002Fmain\u002Fresources\u002Fplatform_skills\u002Fscion-web-serving\u002Freferences\u002Fweb-apps.md",[81,118,142,160,171,188],{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":92,"publishedAt":47},"01M6DA3C2RTK8R5TQ9YZVBYT1D","team-creation","Create or extend scion agent team templates from a high-level description of roles and workflow. Use when the user describes a multi-agent team, panel, crew, pipeline, or any scenario requiring coordinated LLM agents with distinct roles. Also use when adding new roles to an existing team, modifying workflows, or restructuring agent coordination. Produces ready-to-use template directories in .scion\u002Ftemplates\u002F by default, or in a custom path if specified.","https:\u002F\u002Fgithub.com\u002FGoogleCloudPlatform\u002Fscion\u002Fblob\u002Fmain\u002Fresources\u002Fplatform_skills\u002Fteam-creation\u002FSKILL.md",[87],{"categoryNo":88,"categoryName":89,"taxonomyType":90,"taxonomyTypeDesc":91},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[93,94,95,96,97,98,39,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117],"creation","team","team creation","ready","pipeline","default","llm agents","workflows","workflow","coordination","roles","create","agent team","template","crew","templates","scenario","multi-agent","user","directories","agent coordination","new","when","path","extend",{"skillNo":119,"name":120,"nameZh":6,"description":121,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":124,"publishedAt":47},"01M6DA35JGKREZP9ZM2ZYH0J7M","scion-scheduler","Schedule one-shot and recurring events for agents using the Scion CLI. Covers when to use scheduled events vs inline message delays, recurring cron schedules, lifecycle management, and the blocked-wait pairing rule.","https:\u002F\u002Fgithub.com\u002FGoogleCloudPlatform\u002Fscion\u002Fblob\u002Fmain\u002Fresources\u002Fplatform_skills\u002Fscion-scheduler\u002FSKILL.md",[],[125,126,127,128,129,130,39,131,132,133,26,134,135,115,136,137,138,139,140,141],"scheduler","scion scheduler","recurring","message","cli","lifecycle","management","schedule","cron","schedules","scheduled","inline","when to use","rule","wait","pairing","events",{"skillNo":143,"name":144,"nameZh":6,"description":145,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":146,"categories":147,"keywords":148,"publishedAt":47},"01M6DA328HMWYY0R65MVVJJG3S","scion-messaging","Use when sending messages to users or agents with scion message, choosing conversations and mentions, or interpreting incoming messages. Covers user-facing formatting, agent delivery, and reading conversation history.","https:\u002F\u002Fgithub.com\u002FGoogleCloudPlatform\u002Fscion\u002Fblob\u002Fmain\u002Fresources\u002Fplatform_skills\u002Fscion-messaging\u002FSKILL.md",[],[149,150,39,128,151,152,153,154,155,156,157,158,159,111,115],"messaging","scion messaging","conversation","delivery","history","conversations","messages","users","with","reading","formatting",{"skillNo":161,"name":162,"nameZh":6,"description":163,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":164,"categories":165,"keywords":166,"publishedAt":47},"01M6DA2YXJ384EVWJX6RPHDZ9R","scion-conversation","How to use the scion conversation command for managing conversations. Covers listing, creating, viewing, participant management, and message retrieval. Complements the scion-messaging skill.","https:\u002F\u002Fgithub.com\u002FGoogleCloudPlatform\u002Fscion\u002Fblob\u002Fmain\u002Fresources\u002Fplatform_skills\u002Fscion-conversation\u002FSKILL.md",[],[151,167,149,128,168,42,39,131,154,26,29,169,170],"scion conversation","command","listing","retrieval",{"skillNo":172,"name":173,"nameZh":6,"description":174,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":175,"categories":176,"keywords":177,"publishedAt":47},"01M6DA2WCR1XJK9A3NSV2VGP56","scion-cli-operations","Operational constraints for Scion agents running in containerized sandboxes. Covers prohibited commands and hub-only API access. Complements the scion CLI reference and messaging skills.","https:\u002F\u002Fgithub.com\u002FGoogleCloudPlatform\u002Fscion\u002Fblob\u002Fmain\u002Fresources\u002Fplatform_skills\u002Fscion-cli-operations\u002FSKILL.md",[],[129,178,179,149,37,180,38,181,182,43,183,24,26,184,185,186,187],"operations","scion cli operations","commands","reference","access","constraints","cli reference","sandboxes","operational constraints","containerized",{"skillNo":189,"name":190,"nameZh":6,"description":191,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":192,"categories":193,"keywords":195,"publishedAt":47},"01M6DA2SNFM7QDR29R12HZGNQH","scion-agent-manage","Manage concurrent LLM-based code agents with scion - orchestrate parallel agents with isolated workspaces, troubleshoot and recover stuck agents","https:\u002F\u002Fgithub.com\u002FGoogleCloudPlatform\u002Fscion\u002Fblob\u002Fmain\u002Fresources\u002Fplatform_skills\u002Fscion-agent-manage\u002FSKILL.md",[194],{"categoryNo":88,"categoryName":89,"taxonomyType":90,"taxonomyTypeDesc":91},[196,197,198,199,200,201,202,203,204,157],"manage","scion agent manage","parallel","orchestrate","workspaces","troubleshoot","parallel agents","code","code agents"]