You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A Temporal backend for Pi Durable. Pi's harness runs in a Workflow, with model calls and tools as Activities.
Long Description
I wanted to run Pi on Temporal, so I made a small backend integration for Pi Durable.
It uses Pi's existing harness and APIs. There's an example using Pi's upstream experimental client TUI, with multiple clients attached to the same session.
I tested model calls and filesystem tools against Temporal Cloud, including worker restart and Continue-as-New. Both workflow histories passed replay. That test used payload files on one machine. Shared S3 storage hasn't been tested.
It's experimental. The README has setup instructions and the current limits.
The package is on public npm. No token is needed to install it:
✅ Yes — Provides a Temporal backend for Pi Durable's agent harness, running the harness in a Workflow with model calls and tools as Activities.
Benefits clearly explained
✅ Yes — README and linked docs describe the integration model, usage, and stated limitations.
OSI Approved License
✅ Yes — MIT license is present and identified.
README with working instructions
⚠️ Unclear — Install and development steps are present, but installation requires a GitHub Packages classic token and the usage section defers details to linked docs not included here.
Overall: Needs review ⚠️
Notes:
Scope is explicitly experimental; author reports testing of model calls, filesystem tools, worker restart, Continue-as-New, and history replay on Temporal Cloud, with shared S3 storage untested.
The native-client example imports from a local path (../../.local/pi-upstream/...) rather than a published package, which suggests that example depends on a local checkout of Pi's upstream experimental client and may not build from a clean clone without additional setup.
Install requires authenticating to GitHub Packages with a classic token; this adds friction and may block users who expect public npm distribution.
Determinism controls are present: use of patched() for versioned behavior changes, continueAsNew, and allHandlersFinished, consistent with replay-safe Workflow evolution.
Workflow-to-Workflow communication is used in the agent-harness example via getExternalWorkflowHandle and signaling a parent Workflow with trace events.
Suggested questions for submitter:
Does the native-client example build from a clean clone, or does it require a local checkout of Pi's upstream repository at .local/pi-upstream?
Is public (unauthenticated) distribution planned, or is GitHub Packages with a token the intended install path?
Which specific Pi harness operations are mapped to Activities versus run inline in the Workflow?
Notable Temporal pattern:
Use of patched() to gate behavior changes (model selection, session rollover) so that in-flight Workflow histories replay deterministically across code versions. This is representative because the project runs a long-lived agent harness in a Workflow and relies on replay safety across worker restarts and Continue-as-New. View in source ↗
Automated AI pre-screen by ZiggyBot. Final decisions are made by the community team.
Reviewer: Check the box below to generate a Contentful-ready long description for this submission.
The native client example works from a clean clone after npm ci --ignore-scripts and npm run example:client:setup. Setup checks out the pinned Pi revision into .local/pi-upstream and installs its dependencies. CI runs that setup before checking the native client example. The adapter package doesn't require the checkout.
Version 0.1.0 is now on public npm. Install with npm install @h0rv/pi-durable-temporal. I verified a fresh install without authentication.
Pi's harness, conversation state and hooks run inside the Workflow. Model requests and external tool operations run as Activities. Tools that need Pi's live conversation or task APIs stay in the Workflow and delegate their external work to Activities. The MCP example runs Code Mode as one Activity, including its nested MCP calls.
Activity
github-actions commentedon Oct 8, 2026
ZiggyBot — automated pre-evaluation
Overall: Needs review⚠️
Notes:
../../.local/pi-upstream/...) rather than a published package, which suggests that example depends on a local checkout of Pi's upstream experimental client and may not build from a clean clone without additional setup.patched()for versioned behavior changes,continueAsNew, andallHandlersFinished, consistent with replay-safe Workflow evolution.getExternalWorkflowHandleand signaling a parent Workflow with trace events.Suggested questions for submitter:
.local/pi-upstream?Notable Temporal pattern:
Automated AI pre-screen by ZiggyBot. Final decisions are made by the community team.
Reviewer: Check the box below to generate a Contentful-ready long description for this submission.
h0rv commentedon Oct 9, 2026
The native client example works from a clean clone after
npm ci --ignore-scriptsandnpm run example:client:setup. Setup checks out the pinned Pi revision into.local/pi-upstreamand installs its dependencies. CI runs that setup before checking the native client example. The adapter package doesn't require the checkout.Version
0.1.0is now on public npm. Install withnpm install @h0rv/pi-durable-temporal. I verified a fresh install without authentication.Pi's harness, conversation state and hooks run inside the Workflow. Model requests and external tool operations run as Activities. Tools that need Pi's live conversation or task APIs stay in the Workflow and delegate their external work to Activities. The MCP example runs Code Mode as one Activity, including its nested MCP calls.