skip to content
$worker

pi

v0.1.3

Pi coding agent as an iii worker — pi::* functions run headless Pi turns, mirror raw events onto pi::events, and stream AgentEvent frames onto agent::events.

iiiverified
17 installs3 in 7d0 today
install
$iii worker add pi@0.1.3

exact versions are immutable; binary and bundle artifacts are digest-pinned.

functions

9

pi::follow_up

function

Queue a follow-up message for a live Pi run; processed after the agent would otherwise stop.

request
  • promptstringrequired

    Instruction to inject into the live run

  • session_idstringrequired

    iii session id of a live run

response
  • queuedbooleanrequired
  • reasonstring
  • session_idstringrequired

pi::on-config-change

function

Internal: reload pi configuration when it changes.

request
empty object
response
valuenull

pi::run

function

Run one Pi coding-agent turn and wait for the result. Accepts `prompt` or a `messages` array; streams raw Pi events onto pi::events, AgentEvent frames onto agent::events, and returns {session_id, result, usage, total_cost_usd}.

request
  • cwdstring

    Working directory the turn runs in

  • iii_contextboolean

    Prepend the iii runtime discovery context (engine catalog via the iii CLI)

  • messagesobject[]

    Alternative to prompt: role/content messages; the last user entry becomes the prompt

    • contentany ofrequired
      any of (2)
      variant 1
      valuestring
      variant 2
      itemsobject[]
      • typestringrequired
    • rolestringrequired
  • modelstring

    Model as "provider/modelId"; empty = Pi settings default

  • promptstring

    The user prompt for this turn

  • session_idstring

    iii session id; reuse to resume the same Pi conversation

  • thinking_levelstringenum: off, minimal, low, medium, high, xhigh

    Reasoning depth for this turn

  • timeout_msintegermax 9007199254740991

    Reserved for callers; not forwarded

  • toolsstring[]

    Tool allowlist; empty = Pi defaults (read, bash, edit, write)

response
  • busyboolean
  • is_errorboolean
  • num_turnsnumber
  • pi_session_idany of
    any of (2)
    variant 1
    valuestring
    variant 2
    valuenull
  • reasonstring
  • resultstring
  • session_idstringrequired
  • stop_reasonstring
  • total_cost_usdnumber
  • usageany of
    any of (2)
    variant 1
    • cache_read_tokensnumber
    • cache_write_tokensnumber
    • input_tokensnumberrequired
    • output_tokensnumberrequired
    variant 2
    valuenull

pi::sessions::list

function

List every Pi session this worker has run.

request
empty object
response
  • sessionsobject[]required
    • cwdstringrequired
    • modelstringrequired
    • pi_session_idany ofrequired
      any of (2)
      variant 1
      valuestring
      variant 2
      valuenull
    • session_fileany ofrequired
      any of (2)
      variant 1
      valuestring
      variant 2
      valuenull
    • session_idstringrequired
    • statusstringrequiredenum: working, done, error
    • total_cost_usdnumberrequired
    • turnsnumberrequired
    • updated_at_msnumberrequired
    • usageany ofrequired
      any of (2)
      variant 1
      • cache_read_tokensnumber
      • cache_write_tokensnumber
      • input_tokensnumberrequired
      • output_tokensnumberrequired
      variant 2
      valuenull

pi::start

function

Start a Pi turn and return immediately; watch agent::events (group_id = session_id) for progress and turn_end.

request
  • cwdstring

    Working directory the turn runs in

  • iii_contextboolean

    Prepend the iii runtime discovery context (engine catalog via the iii CLI)

  • messagesobject[]

    Alternative to prompt: role/content messages; the last user entry becomes the prompt

    • contentany ofrequired
      any of (2)
      variant 1
      valuestring
      variant 2
      itemsobject[]
      • typestringrequired
    • rolestringrequired
  • modelstring

    Model as "provider/modelId"; empty = Pi settings default

  • promptstring

    The user prompt for this turn

  • session_idstring

    iii session id; reuse to resume the same Pi conversation

  • thinking_levelstringenum: off, minimal, low, medium, high, xhigh

    Reasoning depth for this turn

  • timeout_msintegermax 9007199254740991

    Reserved for callers; not forwarded

  • toolsstring[]

    Tool allowlist; empty = Pi defaults (read, bash, edit, write)

response
  • busyboolean
  • reasonstring
  • session_idstringrequired
  • startedbooleanrequired

pi::status

function

Point-in-time status of a Pi session.

request
  • session_idstringrequired

    iii session id returned by pi::run / pi::start

response
  • livebooleanrequired
  • recordany ofrequired
    any of (2)
    variant 1
    • cwdstringrequired
    • modelstringrequired
    • pi_session_idany ofrequired
      … expand 2 nested
      any of (2)
      variant 1
      valuestring
      variant 2
      valuenull
    • session_fileany ofrequired
      … expand 2 nested
      any of (2)
      variant 1
      valuestring
      variant 2
      valuenull
    • session_idstringrequired
    • statusstringrequiredenum: working, done, error
    • total_cost_usdnumberrequired
    • turnsnumberrequired
    • updated_at_msnumberrequired
    • usageany ofrequired
      … expand 2 nested
      any of (2)
      variant 1
      • cache_read_tokensnumber
      • cache_write_tokensnumber
      • input_tokensnumberrequired
      • output_tokensnumberrequired
      variant 2
      valuenull
    variant 2
    valuenull
  • session_idstringrequired

pi::steer

function

Inject a steering instruction into a live Pi run; applied after the current tool calls finish.

request
  • promptstringrequired

    Instruction to inject into the live run

  • session_idstringrequired

    iii session id of a live run

response
  • reasonstring
  • session_idstringrequired
  • steeredbooleanrequired

pi::stop

function

Interrupt a live Pi run for a session.

request
  • session_idstringrequired

    iii session id returned by pi::run / pi::start

response
  • reasonstring
  • session_idstringrequired
  • stoppedbooleanrequired

run::start_and_wait

function

Alias for pi::run under the shared agent entrypoint: run a turn for {session_id, messages} and return when it ends.

request
  • cwdstring

    Working directory the turn runs in

  • iii_contextboolean

    Prepend the iii runtime discovery context (engine catalog via the iii CLI)

  • messagesobject[]

    Alternative to prompt: role/content messages; the last user entry becomes the prompt

    • contentany ofrequired
      any of (2)
      variant 1
      valuestring
      variant 2
      itemsobject[]
      • typestringrequired
    • rolestringrequired
  • modelstring

    Model as "provider/modelId"; empty = Pi settings default

  • promptstring

    The user prompt for this turn

  • session_idstring

    iii session id; reuse to resume the same Pi conversation

  • thinking_levelstringenum: off, minimal, low, medium, high, xhigh

    Reasoning depth for this turn

  • timeout_msintegermax 9007199254740991

    Reserved for callers; not forwarded

  • toolsstring[]

    Tool allowlist; empty = Pi defaults (read, bash, edit, write)

response
  • busyboolean
  • is_errorboolean
  • num_turnsnumber
  • pi_session_idany of
    any of (2)
    variant 1
    valuestring
    variant 2
    valuenull
  • reasonstring
  • resultstring
  • session_idstringrequired
  • stop_reasonstring
  • total_cost_usdnumber
  • usageany of
    any of (2)
    variant 1
    • cache_read_tokensnumber
    • cache_write_tokensnumber
    • input_tokensnumberrequired
    • output_tokensnumberrequired
    variant 2
    valuenull

triggers

0
no triggers registered