PluginBench
Skill
Pass
Audit score 90

pi-cli-runtime

agents365-ai/365-skills

Internal helper for invoking pi-companion runtime from Claude Code subagents.

What is pi-cli-runtime?

This is an internal skill for the pi:pi-companion-forwarder subagent only. It provides a standardized contract for calling the Pi runtime via a single task invocation, with rules for argument handling, model selection, effort levels, and resume behavior.

  • Invokes pi-companion runtime via node script with task command
  • Handles routing flags (--background, --wait, --resume, --fresh, --model, --effort)
  • Strips execution-control flags before forwarding to Pi
  • Supports resume-last for continuing previous runs
  • Passes through model and effort parameters to Pi
  • Returns Pi stdout unchanged without post-processing

How to install pi-cli-runtime

npx skills add https://github.com/agents365-ai/365-skills --skill pi-cli-runtime
Prerequisites
  • Must be used only inside pi:pi-companion-forwarder subagent
  • Requires CLAUDE_PLUGIN_ROOT environment variable set
  • Requires pi-companion.mjs script at ${CLAUDE_PLUGIN_ROOT}/scripts/
Claude Code
Cursor
Windsurf
Cline

How to use pi-cli-runtime

  1. 1.Call node script with task command and raw arguments
  2. 2.Strip routing flags (--background, --wait, --resume, --fresh) before task text
  3. 3.Pass --model through unchanged if user specified it
  4. 4.Pass --effort through unchanged if user specified it
  5. 5.Add --write by default unless user requests read-only behavior
  6. 6.Use --resume-last for resume requests, fresh task for --fresh requests
  7. 7.Return stdout exactly as-is without inspection or modification

Use cases

Good for
  • Forwarding user rescue requests to Pi runtime from Claude Code
  • Resuming interrupted Pi tasks with --resume-last
  • Selecting specific models or effort levels for Pi execution
  • Performing write-capable fixes with default --write flag
  • Routing read-only diagnosis or research requests to Pi
Who it's for
  • Claude Code subagent developers
  • Internal pi:pi-companion-forwarder implementations
  • Teams building rescue or code-fix workflows

pi-cli-runtime FAQ

When should I use this skill?

Only inside the pi:pi-companion-forwarder subagent. It is not user-invocable and should not be called from other contexts.

Can I inspect the repository or add my own analysis?

No. The forwarder must invoke task once and return stdout unchanged. Do not inspect the repo, solve tasks yourself, or add independent analysis.

How do I handle --resume and --fresh flags?

Strip both from the task text. Use --resume-last for resume requests and a fresh task invocation for --fresh requests.

Should I set --effort and --model by default?

No. Leave both unset unless the user explicitly requests them. Only add --model or --effort when the user asks for a specific value.

What if the Bash call fails or Pi cannot be invoked?

Return nothing. Do not attempt recovery, inspection, or follow-up work.

Full instructions (SKILL.md)

Source of truth, from agents365-ai/365-skills.


name: pi-cli-runtime description: Internal helper contract for calling the pi-companion runtime from Claude Code user-invocable: false

Pi Runtime

Use this skill only inside the pi:pi-companion-forwarder subagent.

Primary helper:

  • node "${CLAUDE_PLUGIN_ROOT}/scripts/pi-companion.mjs" task "<raw arguments>"

Execution rules:

  • The rescue subagent is a forwarder, not an orchestrator. Its only job is to invoke task once and return that stdout unchanged.
  • Prefer the helper over hand-rolled git, direct Pi CLI strings, or any other Bash activity.
  • Do not call setup, review, adversarial-review, status, result, or cancel from pi:pi-companion-forwarder.
  • Use task for every rescue request, including diagnosis, planning, research, and explicit fix requests.
  • You may use the pi-prompting skill to rewrite the user's request into a tighter Pi prompt before the single task call.
  • That prompt drafting is the only Claude-side work allowed. Do not inspect the repo, solve the task yourself, or add independent analysis outside the forwarded prompt text.
  • Leave --effort unset unless the user explicitly requests a specific effort.
  • Leave model unset by default. Add --model only when the user explicitly asks for one (e.g. deepseek-v4-pro, deepseek-v4-flash).
  • Default to a write-capable Pi run by adding --write unless the user explicitly asks for read-only behavior or only wants review, diagnosis, or research without edits.

Command selection:

  • Use exactly one task invocation per rescue handoff.
  • If the forwarded request includes --background or --wait, treat that as Claude-side execution control only. Strip it before calling task, and do not treat it as part of the natural-language task text.
  • If the forwarded request includes --model, pass the model id through to task unchanged.
  • If the forwarded request includes --effort, pass it through to task.
  • If the forwarded request includes --resume, strip that token from the task text and add --resume-last.
  • If the forwarded request includes --fresh, strip that token from the task text and do not add --resume-last.
  • --resume: always use task --resume-last, even if the request text is ambiguous.
  • --fresh: always use a fresh task run, even if the request sounds like a follow-up.
  • --effort: accepted values are off, minimal, low, medium, high, xhigh, max. The alias none maps to off.
  • task --resume-last: internal helper for "keep going", "resume", "apply the top fix", or "dig deeper" after a previous rescue run.

Safety rules:

  • Default to write-capable Pi work in pi:pi-companion-forwarder unless the user explicitly asks for read-only behavior.
  • Preserve the user's task text as-is apart from stripping routing flags.
  • Do not inspect the repository, read files, grep, monitor progress, poll status, fetch results, cancel jobs, summarize output, or do any follow-up work of your own.
  • Return the stdout of the task command exactly as-is.
  • If the Bash call fails or Pi cannot be invoked, return nothing.