Agent skill

Phio

by pockethost in pockethost/pockethost

PocketHost customer CLI (packages/phio). An agent skill from pockethost/pockethost.

MITAuto-check passed

Install Phio

skills CLI
$ npx skills add pockethost/pockethost --skill phio -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install pockethost/pockethost phio --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/pockethost/pockethost.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.cursor/skills/phio .claude/skills/phio && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
phio
GitHub stars
1.4k
Token cost
~1.2k tokens
SKILL.md length
476 words
Files
1
Skills in repo
11
Repo updated
First seen
Licence
MIT

At a glance

PocketHost customer CLI (packages/phio). An agent skill from pockethost/pockethost.

  • Works in 3 steps: Generates or loads an Ed25519 keypair… → Verifies Account → Keys has a key… → Creates the remote ssh_keys record on…
  • Changing InstanceFileAccess
  • SKILL.md covers Commands, Documentation (required for…, Deploy key (SFTP prep) and Deploy path (SFTP), plus 2 more sections
  • Calls pnpm; needs PHIO_PASSWORD

What it does

Phio is an agent skill from pockethost/pockethost. PocketHost customer CLI (packages/phio). Use when changing InstanceFileAccess, FTPS, deploy flows, or when validating that server changes still work with phio dev/deploy and SamKirkland FTP-Deploy-Action.

Its SKILL.md is about 1.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It works with pnpm. The repository describes itself as: Open source multitenant PocketBase server. The licence is MIT.

When your agent uses it

  • Changing InstanceFileAccess
  • Validating that server changes still work with phio dev/deploy and SamKirkland FTP-Deploy-Action

Example prompts

  • “/phio”

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Generates or loads an Ed25519 keypair under PHIO_HOME (default ~/.config/phio/)
  2. Verifies Account → Keys has a key labeled Phio whose public key matches the local .pub.
  3. Creates the remote ssh_keys record on first run (all_instances: true).

What it can do on your machine

Read from SKILL.md and the folder at commit 82c9ba3. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • pnpm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • PHIO_PASSWORD

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Phio loads about 1.2k tokens when it runs. Until then it costs about 52 tokens; SKILL.md has 476 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~52
When it runs · the whole SKILL.md, loaded when a task matches
~1.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from pockethost/pockethost at commit 82c9ba3, republished under its MIT licence (© pockethost). 476 words, ~1,199 tokens.

Download SKILL.mdSave it as .claude/skills/phio/SKILL.md (or your agent's skills folder).
name
phio
description
PocketHost customer CLI (packages/phio). Use when changing InstanceFileAccess, FTPS, deploy flows, or when validating that server changes still work with phio dev/deploy and SamKirkland FTP-Deploy-Action.

phio — PocketHost customer CLI

packages/phio/ is the customer CLI in this monorepo. pnpm workspace package; Node >=18 + tsx. Run via pnpm --filter phio dev -- … or pnpm exec phio ….

Long-term: may rename packages/pockethost → pockethost-server and publish CLI as pockethost. Until then, treat phio as the compatibility contract for customer deploy tooling.

Commands

CommandPurpose
phio login / logout / info (whoami)Mothership auth; info shows config + deploy key (syncs key when logged in)
phio listList instances
phio link <instance>Save default instance to .phioconfig (migrates legacy package.json / pockethost.json)
phio dev [instance]Chokidar watch → SFTP sync on change
phio deploy [instance]One-shot SFTP sync
phio sftp [instance]Interactive SFTP session (system sftp client; --print for command only)
phio logs [instance]SSE tail via https://{subdomain}.pockethost.io/logs

Env overrides: PHIO_USERNAME, PHIO_PASSWORD, PHIO_INSTANCE_NAME, PHIO_MOTHERSHIP_URL, PHIO_HOME.

Documentation (required for user-facing changes)

Update both in the same PR:

  • packages/phio/README.md
  • packages/dashboard/src/routes/(static)/docs/phio/+page.md

See .cursor/rules/phio.mdc. Blog posts are optional announcements, not a substitute.

Deploy key (SFTP prep)

On phio login, phio info / whoami, and before each dev/deploy sync, ensureDeployKey() (src/lib/deployKey.ts):

  1. Generates or loads an Ed25519 keypair under PHIO_HOME (default ~/.config/phio/):
    • phio_deploy_ed25519 (private, OpenSSH format; legacy PKCS#8 is migrated on use)
    • phio_deploy_ed25519.pub (public, OpenSSH line)
  2. Verifies Account → Keys has a key labeled Phio whose public key matches the local .pub.
  3. Creates the remote ssh_keys record on first run (all_instances: true).

Mismatch (remote Phio key ≠ local .pub) throws with a link to /account/keys. Delete local key files to regenerate.

Deploy path (SFTP)

dev and deploy use the vendored Kirkland sync engine at vendor/ftp-deploy/ (from benallfree/ftp-deploy @ 132389e), with SFTP transport (protocol: sftp, ssh2-sftp-client):

  • Server: ftp.pockethost.io (SFTP, port 2222)
  • Username: PocketHost account email
  • Auth: Ed25519 deploy key (ensureDeployKey() → private-key-path)
  • Remote dir: {subdomain}/ (instance root)
  • Includes: pb_*, package.json, bun.lock(b), patches/**
  • Excludes: pb_data/**

Server-side: findSshKeyByPublicKey() in packages/pockethost/src/services/InstanceFileAccess/sshKeyAuth.ts + scoped InstanceVfs (same VFS as legacy FTPS).

Legacy FTPS (__auth__ cookie on port 21) is still supported by the vendored engine via protocol: ftps but phio no longer uses it.

Show full SKILL.md (154 more words)Show less
Deploy sync state file

ftp-deploy writes .ftp-deploy-sync-state.json at the instance root (/{subdomain}/.ftp-deploy-sync-state.json). Same file is used by SamKirkland/FTP-Deploy-Action in CI.

InstanceVfs does not restrict instance-root files or folders. pb_data still requires power-off. phio deploy and FTP-Deploy-Action sync freely at /{subdomain}/.

Compatibility checklist

When changing any of these server areas, verify phio still works:

Server areaphio touchpoint
InstanceFileAccess/ (InstanceVfs, guards.ts)phio dev / deploy via SFTP InstanceVfs
InstanceFileAccess/sshKeyAuth.tsEd25519 deploy key (Phio label)
sftp / InstanceVfs.cwdREALPATH updates cwd for relative deploy paths
Mothership instances collectionlist, link, instance resolution
Instance logs SSE endpointphio logs
FTPS sunset / removalphio migrated to SFTP; FTPS removal unblocked after docs/CI
Quick smoke test (local)
  1. pnpm dev:cli serve (mothership + edge + SFTP)
  2. In a project with .phioconfig: pnpm --filter phio dev -- deploy <subdomain> -v
  3. Confirm sync completes and .ftp-deploy-sync-state.json is written at instance root
  • Shared VFS: packages/pockethost/src/services/InstanceFileAccess/
  • SFTP adapter: packages/pockethost/src/cli/commands/SftpCommand/
  • Legacy FTPS adapter: packages/pockethost/src/cli/commands/EdgeCommand/FtpCommand/FtpService/PhFs.ts

© pockethost, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .cursor/skills/phio of pockethost/pockethost.

Open the folder on GitHubat commit 82c9ba3

Compare with similar skills

Phio next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Phio compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Phio this skillpockethost/pockethost1.4k—~1.2kAutomated safety check: PassMIT
DeerFlow Smoke Testbytedance/deer-flow83k—~2.5kAutomated safety check: NotesMIT
@pierre/diffs Code Renderingpierrecomputer/pierre6.2k2 repos~803Automated safety check: PassApache-2.0
React Router Release Notes Prepremix-run/react-router57k—~1.1kAutomated safety check: PassMIT
Vuetify Playgroundvuetifyjs/vuetify41k—~730Automated safety check: PassCustom licence
Iron Proxy Gateway for NanoClawnanocoai/nanoclaw31k—~4.6kAutomated safety check: NotesMIT

Similar skills

  • DeerFlow Smoke Test

    bytedance/deer-flow

    Walks through an end-to-end smoke test of a DeerFlow deployment: pull the latest code, deploy with Docker or locally, verify services, run health checks and write a report.

    83k GitHub stars~2.5k tokensUpdated today
    Testing & QAAuto-check: notes
  • @pierre/diffs Code Rendering

    pierrecomputer/pierre

    Guides an agent through using @pierre/diffs to render syntax-highlighted files and diffs, and to build editing and review surfaces in React or plain JavaScript.

    6.2k GitHub starsUsed in 2 repos~803 tokens
    DevelopmentAuto-check passed
  • React Router Release Notes Prep

    remix-run/react-router

    Polishes pending React Router change files before the versioning scripts run, and decides whether a long-form What's Changed section is warranted.

    57k GitHub stars~1.1k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Vuetify Playground

    vuetifyjs/vuetify

    Maintains the Vuetify repo's local Playground.vue so contributors get a realistic reproduction and a short demo they can paste into a pull request description.

    41k GitHub stars~730 tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Installs or refreshes Iron Proxy and its Iron Control web console for NanoClaw, with a local Docker setup, database, credentials and a human approval bridge.

    31k GitHub stars~4.6k tokensUpdated yesterday
    DevOps & CloudAuto-check: notes
  • Pull Requests

    pnpm/pnpm

    Take a change through a pull request in the pnpm repository — opening it, then staying with it after every push until CI is green and the review round is quiet.

    37k GitHub stars~2.2k tokensUpdated today
    DevelopmentAuto-check passed

More from pockethost/pockethost

All 11 skills in this repo
  • Blog Voice

    pockethost/pockethost

    Write PocketHost blog posts in Ben Allfree's voice (@cap'n).

    1.4k GitHub stars~977 tokensUpdated 10 days ago
    Auto-check passed
  • Check Push

    pockethost/pockethost

    Run pnpm check:push (lint, types, tests) before git push or PR-ready work.

    1.4k GitHub stars~665 tokensUpdated 10 days ago
    Auto-check passed
  • Commit

    pockethost/pockethost

    Create scoped git commits from the current conversation (e.g.

    1.4k GitHub stars~1.3k tokensUpdated 10 days ago
    Auto-check: notes
  • Feature Blog

    pockethost/pockethost

    Ship user-facing PocketHost features with a blog post instead of semver release notes.

    1.4k GitHub stars~818 tokensUpdated 10 days ago
    Auto-check passed
  • Lemon Squeezy Integration

    pockethost/pockethost

    Full Lemon Squeezy integration — REST API, @lemonsqueezy/lemonsqueezy.js server SDK, Lemon.js checkout overlays, webhooks, customdata, and subscriptions.

    1.4k GitHub stars~1.1k tokensUpdated 10 days ago
    Auto-check passed
  • Pocketbase

    pockethost/pockethost

    Models PocketBase backends: collections, relations, auth, API rules, migrations, and architecture.

    1.4k GitHub stars~1k tokensUpdated 10 days ago
    Auto-check passed

Works with

Questions about Phio

What does Phio do?

PocketHost customer CLI (packages/phio). An agent skill from pockethost/pockethost. Phio is an agent skill from pockethost/pockethost. PocketHost customer CLI (packages/phio).

When should I use Phio?

Phio fits situations like: changing InstanceFileAccess; validating that server changes still work with phio dev/deploy and SamKirkland FTP-Deploy-Action.

How do I install Phio in Claude Code?

Run `npx skills add pockethost/pockethost --skill phio -a claude-code`. Or copy the skill folder (.cursor/skills/phio in pockethost/pockethost) into .claude/skills/phio in your project. Claude Code loads it when a task matches its description.

How do I install Phio in Codex?

Run `npx skills add pockethost/pockethost --skill phio -a codex`. Or copy the skill folder (.cursor/skills/phio in pockethost/pockethost) into .agents/skills/phio in your project. Codex loads it when a task matches its description.

Can I use Phio in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add pockethost/pockethost --skill phio -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/phio, .gemini/skills/phio, .github/skills/phio and .opencode/skills/phio in your project.

What does Phio need to run?

Going by SKILL.md and its folder, Phio needs the command-line tools its instructions call (pnpm) and credentials named PHIO_PASSWORD.

Does Phio access the network?

SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.

Is Phio safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Phio use?

Phio is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Phio use?

About 1.2k tokens (SKILL.md is roughly 4.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Phio?

Skills that share tags, products or a category with Phio: DeerFlow Smoke Test (bytedance/deer-flow, 83k stars), @pierre/diffs Code Rendering (pierrecomputer/pierre, 6.2k stars), React Router Release Notes Prep (remix-run/react-router, 57k stars) and Vuetify Playground (vuetifyjs/vuetify, 41k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Phio?

pockethost (a GitHub organization) maintains it in pockethost/pockethost, which has 1,444 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on September 28, 2026.

Source: pockethost/pockethost on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.