[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71CGYBKSV521SB977N7C4D6":3,"skill-same:01M71CGYBKSV521SB977N7C4D6":62},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":35,"linkOnly":36,"markdownContent":37,"markdownBody":38,"frontMatter":39,"refName":40,"commitSha":41,"skillDirectory":42,"forksCount":43,"repositoryHtmlUrl":44,"repositoryHomepageUrl":6,"ownerHtmlUrl":45,"ownerBlogUrl":46,"ownerDescription":6,"updatedAt":47,"install":48,"resources":61},"01M71CGYBKSV521SB977N7C4D6","cogbox-remote-access",null,"Connect to this sandbox from outside with SSH, VS Code, scp, sftp, port forwards or mosh, and explain what users it is shared with can and cannot do.","illustris\u002Fcogbox","illustris","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F3948275?v=4","01M71CGEWJV83CKXRREGQKXXQH","01M71CGEXJJK2726RZ2EJDC1PM",3,"MIT","https:\u002F\u002Fgithub.com\u002Fillustris\u002Fcogbox\u002Fblob\u002Fmaster\u002Fskills\u002Fcogbox-remote-access\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34],"access","cogbox remote access","remote","it","ssh","port","with","users","can","explain","code","mosh","connect","sandbox","scp","do","shared","2026-11-10 10:12:30",false,"---\nname: cogbox-remote-access\ndescription: Connect to this sandbox from outside with SSH, VS Code, scp, sftp, port forwards or mosh, and explain what users it is shared with can and cannot do.\n---\n\nRead `\u002Frun\u002Fcogbox\u002Fenvironment.json` as `cogbox-environment` describes.\n\n- `local`: the user connects from their host with `cogbox ssh` (add `-n \u003Cname>` unless the instance is `default`; `cogbox ssh -n \u003Cname> -- \u003Ccommand>` runs one command). It uses cogbox's own key and adds no agent forwarding, and mosh does not connect to a local cogbox. Never run `cogbox` inside this guest.\n- `unknown`, missing or malformed: ask whether the user runs local cogbox or cogworx.\n- `cogworx`: the rest of this skill applies.\n\n## The SSH command and keys\n\nCopy the command from the `ssh` row on the sandbox's Overview tab; it has the form `ssh \u003Caccount-id>-\u003Csandbox-name>@\u003Cgateway-host> -p \u003Cport>`. The user name is the owner's full instance id, which this sandbox's `instance` name alone does not give, so never build it yourself. Compare the fingerprint under \"host key\" on first connect. \"SSH available once running\" means the sandbox is not running yet (stopped or still starting); no `ssh` row at all means the gateway is off or this backend has no SSH. Users the sandbox is shared with use the same command with their own keys.\n\nKeys: the user pastes public keys under \"Add public keys\" in the SSH keys section of the account Settings page and presses \"Add keys\", or uses \"Import from \u003Cprovider>\". Certificates are refused, and RSA keys under 2048 bits and unregistered keys fail authentication. Never generate a key for the user or ask for their private key.\n\n## What works over it\n\n- Shells, `ssh ... \u003Ccommand>`, `scp`, `sftp`, `rsync` (it is in the image) and `ssh -L` local forwards. A forward is opened inside the sandbox: `-L 3080:127.0.0.1:3080` reaches a service listening there, and a forward to another host obeys this sandbox's network rules.\n- Refused: `ssh -R`, X11, Unix-socket forwards and every other channel type.\n- VS Code Remote-SSH: a `Host` entry in the user's `~\u002F.ssh\u002Fconfig` with `HostName`, `Port` and `User` taken from that command. Keep VS Code's `remote.SSH.remoteServerListenOnSocket` setting off, because Unix-socket forwards are refused, and the sandbox must be able to download the VS Code server (a public host, allowed by default in `rules` mode).\n\n## Agent forwarding\n\nAgent forwarding (`ssh -A`) works unless the operator turned it off. The agent is usable only while that connection is open and only by processes that inherit its `SSH_AUTH_SOCK`: check with `ssh-add -l` in the shell that needs it; a shell started elsewhere, such as the web console's, does not have it. While it is open anyone with a shell in the sandbox can use it, so forward it only into a sandbox the user trusts. It is what makes an `ssh` git remote work (`cogbox-git`).\n\n## mosh\n\nWhen the Overview row also shows a `mosh --ssh='ssh -p \u003Cport>' ...` command, use that. It works on container, gcp and proxmox sandboxes, never in network mode `none`. If it never connects, a container sandbox needs a restart, and a gcp sandbox built from an older image needs an image upgrade.\n\n## Limits and errors\n\nAt most 8 connections per account at once (`too many concurrent SSH sessions; close one and retry`), and every connection ends after 24 hours, so run long jobs in tmux inside the sandbox. `access denied or instance not found` means a wrong user name or no access to that sandbox; `sandbox not running; start it first` means it is stopped or still booting; `could not reach sandbox` or `could not establish sandbox connection` means the gateway could not get through to it (retry; if it persists, tell the user).\n\n## Network mode none\n\nOn gcp and proxmox there is no SSH (`SSH is unavailable for this sandbox: its network mode is none`), no mosh and no app access, and the web console is the serial console on the Overview tab. On the container backend SSH still works, but mosh and app access do not.\n\n## Apps without an Apps tab\n\nWhen this deployment has no Apps tab (no app proxy), the user adds `-L 3080:127.0.0.1:3080` to the command from the Overview `ssh` row and opens `http:\u002F\u002F127.0.0.1:3080\u002F` in their own browser; load `app-relay` for starting the app.\n\n## Sharing\n\nThe owner (or an admin) shares and unshares on the Sharing tab. People it is shared with can open its console and shell (including over SSH, as above), reach its app ports at the `sandbox` level and request network rules. They cannot start, stop or restart it, change sharing, resources, plugins, git access or app port levels, or delete network rules. Every session runs as root, so everything in the sandbox, `~\u002Fwork` and a forwarded agent included, is reachable by everyone it is shared with. Sharing suspends every git grant and Vault binding until it is private again (`cogbox-git`, `cogbox-vault`); setting an app port's level is not sharing. Sharing does not pause credentials bound for injection (Secrets page, plugin credentials) or the owner's Claude connection: requests from anyone it is shared with get them added, and a shared user who starts a harness uses the owner's Claude account unless they log in themselves.\n","Read `\u002Frun\u002Fcogbox\u002Fenvironment.json` as `cogbox-environment` describes.\n\n- `local`: the user connects from their host with `cogbox ssh` (add `-n \u003Cname>` unless the instance is `default`; `cogbox ssh -n \u003Cname> -- \u003Ccommand>` runs one command). It uses cogbox's own key and adds no agent forwarding, and mosh does not connect to a local cogbox. Never run `cogbox` inside this guest.\n- `unknown`, missing or malformed: ask whether the user runs local cogbox or cogworx.\n- `cogworx`: the rest of this skill applies.\n\n## The SSH command and keys\n\nCopy the command from the `ssh` row on the sandbox's Overview tab; it has the form `ssh \u003Caccount-id>-\u003Csandbox-name>@\u003Cgateway-host> -p \u003Cport>`. The user name is the owner's full instance id, which this sandbox's `instance` name alone does not give, so never build it yourself. Compare the fingerprint under \"host key\" on first connect. \"SSH available once running\" means the sandbox is not running yet (stopped or still starting); no `ssh` row at all means the gateway is off or this backend has no SSH. Users the sandbox is shared with use the same command with their own keys.\n\nKeys: the user pastes public keys under \"Add public keys\" in the SSH keys section of the account Settings page and presses \"Add keys\", or uses \"Import from \u003Cprovider>\". Certificates are refused, and RSA keys under 2048 bits and unregistered keys fail authentication. Never generate a key for the user or ask for their private key.\n\n## What works over it\n\n- Shells, `ssh ... \u003Ccommand>`, `scp`, `sftp`, `rsync` (it is in the image) and `ssh -L` local forwards. A forward is opened inside the sandbox: `-L 3080:127.0.0.1:3080` reaches a service listening there, and a forward to another host obeys this sandbox's network rules.\n- Refused: `ssh -R`, X11, Unix-socket forwards and every other channel type.\n- VS Code Remote-SSH: a `Host` entry in the user's `~\u002F.ssh\u002Fconfig` with `HostName`, `Port` and `User` taken from that command. Keep VS Code's `remote.SSH.remoteServerListenOnSocket` setting off, because Unix-socket forwards are refused, and the sandbox must be able to download the VS Code server (a public host, allowed by default in `rules` mode).\n\n## Agent forwarding\n\nAgent forwarding (`ssh -A`) works unless the operator turned it off. The agent is usable only while that connection is open and only by processes that inherit its `SSH_AUTH_SOCK`: check with `ssh-add -l` in the shell that needs it; a shell started elsewhere, such as the web console's, does not have it. While it is open anyone with a shell in the sandbox can use it, so forward it only into a sandbox the user trusts. It is what makes an `ssh` git remote work (`cogbox-git`).\n\n## mosh\n\nWhen the Overview row also shows a `mosh --ssh='ssh -p \u003Cport>' ...` command, use that. It works on container, gcp and proxmox sandboxes, never in network mode `none`. If it never connects, a container sandbox needs a restart, and a gcp sandbox built from an older image needs an image upgrade.\n\n## Limits and errors\n\nAt most 8 connections per account at once (`too many concurrent SSH sessions; close one and retry`), and every connection ends after 24 hours, so run long jobs in tmux inside the sandbox. `access denied or instance not found` means a wrong user name or no access to that sandbox; `sandbox not running; start it first` means it is stopped or still booting; `could not reach sandbox` or `could not establish sandbox connection` means the gateway could not get through to it (retry; if it persists, tell the user).\n\n## Network mode none\n\nOn gcp and proxmox there is no SSH (`SSH is unavailable for this sandbox: its network mode is none`), no mosh and no app access, and the web console is the serial console on the Overview tab. On the container backend SSH still works, but mosh and app access do not.\n\n## Apps without an Apps tab\n\nWhen this deployment has no Apps tab (no app proxy), the user adds `-L 3080:127.0.0.1:3080` to the command from the Overview `ssh` row and opens `http:\u002F\u002F127.0.0.1:3080\u002F` in their own browser; load `app-relay` for starting the app.\n\n## Sharing\n\nThe owner (or an admin) shares and unshares on the Sharing tab. People it is shared with can open its console and shell (including over SSH, as above), reach its app ports at the `sandbox` level and request network rules. They cannot start, stop or restart it, change sharing, resources, plugins, git access or app port levels, or delete network rules. Every session runs as root, so everything in the sandbox, `~\u002Fwork` and a forwarded agent included, is reachable by everyone it is shared with. Sharing suspends every git grant and Vault binding until it is private again (`cogbox-git`, `cogbox-vault`); setting an app port's level is not sharing. Sharing does not pause credentials bound for injection (Secrets page, plugin credentials) or the owner's Claude connection: requests from anyone it is shared with get them added, and a shared user who starts a harness uses the owner's Claude account unless they log in themselves.\n",{"name":5,"description":7},"master","9054adffa53fa7af94439dff72b432e11499a008","skills\u002Fcogbox-remote-access",1,"https:\u002F\u002Fgithub.com\u002Fillustris\u002Fcogbox","https:\u002F\u002Fgithub.com\u002Fillustris","https:\u002F\u002Fillustris.tech","2026-11-10 00:38:16",{"source":8,"skillName":5,"commands":49,"prompt":59,"zipAvailable":60},[50,53,56],{"tool":51,"command":52},"npx","npx skills add illustris\u002Fcogbox --skill cogbox-remote-access",{"tool":54,"command":55},"bunx","bunx skills add illustris\u002Fcogbox --skill cogbox-remote-access",{"tool":57,"command":58},"pnpm","pnpm dlx skills add illustris\u002Fcogbox --skill cogbox-remote-access","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fillustris\u002Fcogbox\u002Fblob\u002Fmaster\u002Fskills\u002Fcogbox-remote-access\u002FSKILL.md",true,[],[63,79,92,106,119,127],{"skillNo":64,"name":65,"nameZh":6,"description":66,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":67,"categories":68,"keywords":69,"publishedAt":35},"01M71CHP4B6XX9PAZ5JRQV8E58","app-relay","Legacy plugin guidance for migration testing.","https:\u002F\u002Fgithub.com\u002Fillustris\u002Fcogbox\u002Fblob\u002Fmaster\u002Ftests\u002Ffixtures\u002Fnative-app\u002Flegacy-contents\u002Fskills\u002Fapp-relay\u002FSKILL.md",[],[70,71,72,73,74,75,76,77,78],"app","app relay","relay","guidance","migration","plugin","Legacy","for","testing",{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":85,"publishedAt":35},"01M71CHM675ZZTJ9HRGHPWVVZS","demo-overview","Overview of the demo backend; start here before answering demo questions.","https:\u002F\u002Fgithub.com\u002Fillustris\u002Fcogbox\u002Fblob\u002Fmaster\u002Ftests\u002Ffixtures\u002Fbrain-plugin\u002Fcontents\u002Fskills\u002Fdemo-overview\u002FSKILL.md",[],[86,87,88,89,90,91],"overview","demo overview","demo","questions","backend","start",{"skillNo":93,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":98,"publishedAt":35},"01M71CHJNH0AX8E74WBGJH1JMR","demo-es","Query the demo Elasticsearch cluster: es-search, es-cat.","https:\u002F\u002Fgithub.com\u002Fillustris\u002Fcogbox\u002Fblob\u002Fmaster\u002Ftests\u002Ffixtures\u002Fbrain-plugin\u002Fcontents\u002Fskills\u002Fdemo-es\u002FSKILL.md",[],[88,99,100,101,102,103,104,105],"es","demo es","search","query","cat","cluster","elasticsearch",{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":112,"publishedAt":35},"01M71CHGPNHSBFJHCQRSMNHS3E","cogbox-plugins","Fixture skill squatting on the name cogbox reserves for its index.","https:\u002F\u002Fgithub.com\u002Fillustris\u002Fcogbox\u002Fblob\u002Fmaster\u002Ftests\u002Ffixtures\u002Fbrain-collide\u002Freserved\u002Fskills\u002Fcogbox-plugins\u002FSKILL.md",[],[113,114,115,116,77,117,118],"cogbox plugins","plugins","fixture","index","name","fixture skill",{"skillNo":120,"name":114,"nameZh":6,"description":121,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":124,"publishedAt":35},"01M71CHERNF4GWZ1C34MHKKN19","Fixture skill named `plugins`, shipped by a second, unrelated plugin.","https:\u002F\u002Fgithub.com\u002Fillustris\u002Fcogbox\u002Fblob\u002Fmaster\u002Ftests\u002Ffixtures\u002Fbrain-collide\u002Freserved-qual-b\u002Fskills\u002Fplugins\u002FSKILL.md",[],[114,118,115,75,125,126],"unrelated","second",{"skillNo":128,"name":114,"nameZh":6,"description":129,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":130,"categories":131,"keywords":132,"publishedAt":35},"01M71CHDPMR9KDE5QP6H3W66CW","Fixture skill named `plugins`, shipped by a plugin installed as `cogbox`.","https:\u002F\u002Fgithub.com\u002Fillustris\u002Fcogbox\u002Fblob\u002Fmaster\u002Ftests\u002Ffixtures\u002Fbrain-collide\u002Freserved-qual-a\u002Fskills\u002Fplugins\u002FSKILL.md",[],[114,115,133,75,118],"as"]