PageSourceSearch

https://autocontext.ai/assets/pi-skill-jzatOZbP.js

js autocontext.ai collected 2026-10-05 11:50:12 UTC 16,158 bytes, 101 lines download raw bytes

1import{j as e}from"./main-CtuSTsQT.js";let r={title:"Pi skill",description:"Install the pi-autocontext extension to give the Pi coding agent evaluation, status, scenario, queue, and runtime-snapshot tools."},l=`
2
3Pi is a coding agent, and autocontext ships an extension that registers six tools directly into Pi. Once installed, Pi can judge outputs, run improvement loops, check run status, inspect runtime snapshots, list scenarios, and enqueue background work, all from natural-language requests. The extension dynamically imports the TypeScript \`autoctx\` SDK when a tool is invoked; it does not shell out to the CLI or run an MCP server.
4
5## Install [#install]
6
7\`\`\`bash
8pi install npm:[email protected]
9\`\`\`
10
11The tools become available to the agent automatically. The extension also registers commands you can call yourself, including \`/skill:autocontext\` for the full usage instructions and \`/autoctx-status\` for a quick project status check.
12
13<Callout type="warn">
14  \`[email protected]\` is versioned separately and loads its own
15  \`autoctx@^0.15.0\` dependency. Because this is a pre-1.0 caret range, it accepts
16  \`0.15.x\` but excludes the current \`0.17.0\` core, as well as \`0.16.x\`.
17  Installing \`[email protected]\` separately provides the standalone TypeScript CLI
18  and SDK; it does not replace the extension's nested SDK or add more Pi tools.
19  Install \`autocontext==0.17.0\` separately for Python-only context promotion,
20  campaign scheduling and auditing, research workspaces, and kernel evolution.
21</Callout>
22
23## The wrapped tools [#the-wrapped-tools]
24
25The extension registers these tools into Pi:
26
27| Tool                           | What it does                                                                                                                        |
28| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------- |
29| \`autocontext_judge\`            | Evaluate agent output against a rubric using LLM-based judging                                                                      |
30| \`autocontext_improve\`          | Run a multi-round improvement loop with judge feedback                                                                              |
31| \`autocontext_status\`           | Check the status of autocontext runs and tasks                                                                                      |
32| \`autocontext_scenarios\`        | List available evaluation scenarios and families                                                                                    |
33| \`autocontext_queue\`            | Enqueue a task for background evaluation                                                                                            |
34| \`autocontext_runtime_snapshot\` | Inspect run and generation artifacts, package provenance, compaction entries, promotion results, session lineage, and recent events |
35
36<Callout type="info">
37  \`autocontext_queue\` requires a spec name that matches a registered scenario. Run
38  \`autocontext_scenarios\` first to discover what is available before queueing work.
39</Callout>
40
41## Ask-style invocation [#ask-style-invocation]
42
43You do not call the tools by name. Describe the task and Pi selects the matching tool:
44
45\`\`\`
46Judge this draft against the rubric I gave you.
47
48Run an improvement loop on this draft with max 5 rounds.
49
50Show me the status of recent autocontext runs.
51
52Capture the runtime snapshot for run-123 and session sess-123.
53
54List the available evaluation scenarios.
55
56Queue a background evaluation for the support-replies scenario.
57\`\`\`
58
59## Provider configuration [#provider-configuration]
60
61The extension's judge and improvement tools use provider configuration resolved by the \`autoctx\` SDK. Pi itself is also a first-class autocontext provider: set \`AUTOCONTEXT_AGENT_PROVIDER=pi\` to route agent turns through the local \`pi\` binary with no API key. See [providers](/docs/providers) for the full runtime-specific matrix.
62
63<Callout type="warn">
64  The extension does not wrap \`solve\`, \`run\`, \`replay\`, \`export\`, MCP, training,
65  or control-plane commands. Install and invoke the appropriate core package
66  directly when you need those surfaces.
67</Callout>
68`,c={contents:[{heading:void 0,content:"Pi is a coding agent, and autocontext ships an extension that registers six tools directly into Pi. Once installed, Pi can judge outputs, run improvement loops, check run status, inspect runtime snapshots, list scenarios, and enqueue background work, all from natural-language requests. The extension dynamically imports the TypeScript `autoctx` SDK when a tool is 
68invoked; it does not shell out to the CLI or run an MCP server."},{heading:"install",content:"The tools become available to the agent automatically. The extension also registers commands you can call yourself, including `/skill:autocontext` for the full usage instructions and `/autoctx-status` for a quick project status check."},{heading:"install",content:"`[email protected]` is versioned separately and loads its own\n`autoctx@^0.15.0` dependency. Because this is a pre-1.0 caret range, it accepts\n`0.15.x` but excludes the current `0.17.0` core, as well as `0.16.x`.\nInstalling `[email protected]` separately provides the standalone TypeScript CLI\nand SDK; it does not replace the extension's nested SDK or add more Pi tools.\nInstall `autocontext==0.17.0` separately for Python-only context promotion,\ncampaign scheduling and auditing, research workspaces, and kernel evolution."},{heading:"the-wrapped-tools",content:"The extension registers these tools into Pi:"},{heading:"the-wrapped-tools",content:"Tool"},{heading:"the-wrapped-tools",content:"What it does"},{heading:"the-wrapped-tools",content:"`autocontext_judge`"},{heading:"the-wrapped-tools",content:"Evaluate agent output against a rubric using LLM-based judging"},{heading:"the-wrapped-tools",content:"`autocontext_improve`"},{heading:"the-wrapped-tools",content:"Run a multi-round improvement loop with judge feedback"},{heading:"the-wrapped-tools",content:"`autocontext_status`"},{heading:"the-wrapped-tools",content:"Check the status of autocontext runs and tasks"},{heading:"the-wrapped-tools",content:"`autocontext_scenarios`"},{heading:"the-wrapped-tools",content:"List available evaluation scenarios and families"},{heading:"the-wrapped-tools",content:"`autocontext_queue`"},{heading:"the-wrapped-tools",content:"Enqueue a task for background evaluation"},{heading:"the-wrapped-tools",content:"`autocontext_runtime_snapshot`"},{heading:"the-wrapped-tools",content:"Inspect run and generation artifacts, package provenance, compaction entries, promotion results, session lineage, and recent events"},{heading:"the-wrapped-tools",content:"`autocontext_queue` requires a spec name that matches a registered scenario. Run\n`autocontext_scenarios` first to discover what is available before queueing work."},{heading:"ask-style-invocation",content:"You do not call the tools by name. Describe the task and Pi selects the matching tool:"},{heading:"provider-configuration",content:"The extension's judge and improvement tools use provider configuration resolved by the `autoctx` SDK. Pi itself is also a first-class autocontext provider: set `AUTOCONTEXT_AGENT_PROVIDER=pi` to route agent turns through the local `pi` binary with no API key. See providers for the full runtime-specific matrix."},{heading:"provider-configuration",content:"The extension does not wrap `solve`, `run`, `replay`, `export`, MCP, training,\nor control-plane commands. Install and invoke the appropriate core package\ndirectly when you need those surfaces."}],headings:[{id:"install",content:"Install"},{id:"the-wrapped-tools",content:"The wrapped tools"},{id:"ask-style-invocation",content:"Ask-style invocation"},{id:"provider-configuration",content:"Provider configuration"}]},d=[{depth:2,url:"#install",title:e.jsx(e.Fragment,{children:"Install"})},{depth:2,url:"#the-wrapped-tools",title:e.jsx(e.Fragment,{children:"The wrapped tools"})},{depth:2,url:"#ask-style-invocation",title:e.jsx(e.Fragment,{children:"Ask-style invocation"})},{depth:2,url:"#provider-configuration",title:e.jsx(e.Fragment,{children:"Provider configuration"})}];function s(n){const t={a:"a",code:"code",h2:"h2",p:"p",pre:"pre",span:"span",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...n.components},{Callout:o}=t;return o||a("Callout"),e.jsxs(e.Fragment,{children:[e.jsxs(t.p,{children:["Pi is a coding agent, and autocontext ships an extension that registers six tools directly into Pi. Once installed, Pi can judge outputs, run improvement loops, check run status, inspect runtime snapshots, list scenarios, and enqueue background work, all from natural-language requests. The extension dynamically imports the TypeScript ",e.jsx(t.code,{children:"autoctx"}
68)," SDK when a tool is invoked; it does not shell out to the CLI or run an MCP server."]}),`
69`,e.jsx(t.h2,{id:"install",children:"Install"}),`
70`,e.jsx(e.Fragment,{children:e.jsx(t.pre,{className:"shiki shiki-themes github-light github-dark",style:{"--shiki-light":"#24292e","--shiki-dark":"#e1e4e8","--shiki-light-bg":"#fff","--shiki-dark-bg":"#24292e"},tabIndex:"0",icon:'<svg viewBox="0 0 24 24"><path d="m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z" fill="currentColor" /></svg>',children:e.jsx(t.code,{children:e.jsxs(t.span,{className:"line",children:[e.jsx(t.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"pi"}),e.jsx(t.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:" install"}),e.jsx(t.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:" npm:[email protected]"})]})})})}),`
71`,e.jsxs(t.p,{children:["The tools become available to the agent automatically. The extension also registers commands you can call yourself, including ",e.jsx(t.code,{children:"/skill:autocontext"})," for the full usage instructions and ",e.jsx(t.code,{children:"/autoctx-status"})," for a quick project status check."]}),`
72`,e.jsx(o,{type:"warn",children:e.jsxs(t.p,{children:[e.jsx(t.code,{children:"[email protected]"}),` is versioned separately and loads its own
73`,e.jsx(t.code,{children:"autoctx@^0.15.0"}),` dependency. Because this is a pre-1.0 caret range, it accepts
74`,e.jsx(t.code,{children:"0.15.x"})," but excludes the current ",e.jsx(t.code,{children:"0.17.0"})," core, as well as ",e.jsx(t.code,{children:"0.16.x"}),`.
75Installing `,e.jsx(t.code,{children:"[email protected]"}),` separately provides the standalone TypeScript CLI
76and SDK; it does not replace the extension's nested SDK or add more Pi tools.
77Install `,e.jsx(t.code,{children:"autocontext==0.17.0"}),` separately for Python-only context promotion,
78campaign scheduling and auditing, research workspaces, and kernel evolution.`]})}),`
79`,e.jsx(t.h2,{id:"the-wrapped-tools",children:"The wrapped tools"}),`
80`,e.jsx(t.p,{children:"The extension registers these tools into Pi:"}),`
81`,e.jsxs(t.table,{children:[e.jsx(t.thead,{children:e.jsxs(t.tr,{children:[e.jsx(t.th,{children:"Tool"}),e.jsx(t.th,{children:"What it does"})]})}),e.jsxs(t.tbody,{children:[e.jsxs(t.tr,{children:[e.jsx(t.td,{children:e.jsx(t.code,{children:"autocontext_judge"})}),e.jsx(t.td,{children:"Evaluate agent output against a rubric using LLM-based judging"})]}),e.jsxs(t.tr,{children:[e.jsx(t.td,{children:e.jsx(t.code,{children:"autocontext_improve"})}),e.jsx(t.td,{children:"Run a multi-round improvement loop with judge feedback"})]}),e.jsxs(t.tr,{children:[e.jsx(t.td,{children:e.jsx(t.code,{children:"autocontext_status"})}),e.jsx(t.td,{children:"Check the status of autocontext runs and tasks"})]}),e.jsxs(t.tr,{children:[e.jsx(t.td,{children:e.jsx(t.code,{children:"autocontext_scenarios"})}),e.jsx(t.td,{children:"List available evaluation scenarios and families"})]}),e.jsxs(t.tr,{children:[e.jsx(t.td,{children:e.jsx(t.code,{children:"autocontext_queue"})}),e.jsx(t.td,{children:"Enqueue a task for background evaluation"})]}),e.jsxs(t.tr,{children:[e.jsx(t.td,{children:e.jsx(t.code,{children:"autocontext_runtime_snapshot"})}),e.jsx(t.td,{children:"Inspect run and generation artifacts, package provenance, compaction entries, promotion results, session lineage, and recent events"})]})]})]}),`
82`,e.jsx(o,{type:"info",children:e.jsxs(t.p,{children:[e.jsx(t.code,{children:"autocontext_queue"}),` requires a spec name that matches a registered scenario. Run
83`,e.jsx(t.code,{children:"autocontext_scenarios"})," first to discover what is available before queueing work."]})}),`
84`,e.jsx(t.h2,{id:"ask-style-invocation",children:"Ask-style invocation"}),`
85`,e.jsx(t.p,{children:"You do not call the tools by name. Describe the task and Pi selects the matching tool:"}),`
86`,e.jsx(e.Fragment,{children:e.jsx(t.pre,{className:"shiki shiki-themes g
86ithub-light github-dark",style:{"--shiki-light":"#24292e","--shiki-dark":"#e1e4e8","--shiki-light-bg":"#fff","--shiki-dark-bg":"#24292e"},tabIndex:"0",icon:'<svg viewBox="0 0 24 24"><path d="M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z" fill="currentColor" /></svg>',children:e.jsxs(t.code,{children:[e.jsx(t.span,{className:"line",children:e.jsx(t.span,{children:"Judge this draft against the rubric I gave you."})}),`
87`,e.jsx(t.span,{className:"line",children:e.jsx(t.span,{})}),`
88`,e.jsx(t.span,{className:"line",children:e.jsx(t.span,{children:"Run an improvement loop on this draft with max 5 rounds."})}),`
89`,e.jsx(t.span,{className:"line",children:e.jsx(t.span,{})}),`
90`,e.jsx(t.span,{className:"line",children:e.jsx(t.span,{children:"Show me the status of recent autocontext runs."})}),`
91`,e.jsx(t.span,{className:"line",children:e.jsx(t.span,{})}),`
92`,e.jsx(t.span,{className:"line",children:e.jsx(t.span,{children:"Capture the runtime snapshot for run-123 and session sess-123."})}),`
93`,e.jsx(t.span,{className:"line",children:e.jsx(t.span,{})}),`
94`,e.jsx(t.span,{className:"line",children:e.jsx(t.span,{children:"List the available evaluation scenarios."})}),`
95`,e.jsx(t.span,{className:"line",children:e.jsx(t.span,{})}),`
96`,e.jsx(t.span,{className:"line",children:e.jsx(t.span,{children:"Queue a background evaluation for the support-replies scenario."})})]})})}),`
97`,e.jsx(t.h2,{id:"provider-configuration",children:"Provider configuration"}),`
98`,e.jsxs(t.p,{children:["The extension's judge and improvement tools use provider configuration resolved by the ",e.jsx(t.code,{children:"autoctx"})," SDK. Pi itself is also a first-class autocontext provider: set ",e.jsx(t.code,{children:"AUTOCONTEXT_AGENT_PROVIDER=pi"})," to route agent turns through the local ",e.jsx(t.code,{children:"pi"})," binary with no API key. See ",e.jsx(t.a,{href:"/docs/providers",children:"providers"})," for the full runtime-specific matrix."]}),`
99`,e.jsx(o,{type:"warn",children:e.jsxs(t.p,{children:["The extension does not wrap ",e.jsx(t.code,{children:"solve"}),", ",e.jsx(t.code,{children:"run"}),", ",e.jsx(t.code,{children:"replay"}),", ",e.jsx(t.code,{children:"export"}),`, MCP, training,
100or control-plane commands. Install and invoke the appropriate core package
101directly when you need those surfaces.`]})})]})}function h(n={}){const{wrapper:t}=n.components||{};return t?e.jsx(t,{...n,children:e.jsx(s,{...n})}):s(n)}function a(n,t){throw new Error("Expected component `"+n+"` to be defined: you likely forgot to import, pass, or provide it.")}export{l as _markdown,h as default,r as frontmatter,c as structuredData,d as toc};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.