Pi Runtime Extensions
Pluggable TypeScript packages that register IM, browser, memory, security, and generative capabilities as MCP tools for the Pi agent runtime.
- Source repo
- TGYD-helige/pi
- Stars
- ★ 92
- Last updated
- 1d ago
- License
- Apache-2.0
- Primary language
- TypeScript
- FA score
- 67/100 · Some gaps
At a glance
- How it runs
- Works with
- Portable with changes
- Cost
- Free software; you pay for model usage
- Setup effort
- Medium · a few setup steps
- You'll need
- Typical use
- A developer building a host app who wants session, event, artifact, and scheduled-task persistence while keeping their own HTTP routing and front end installs pi-shared plus pi-storage.
- Not a fit if
- Teams wanting a standalone service: these are packages loaded by a host app
- Environments that cannot meet Node.js >=24 and pinned pnpm 10.18.3
- Teams avoiding LGPL/GPL FFmpeg redistribution compliance review
- Source review
- 67/100 · Some gaps
What does this agent do, and when should you use it?
Pi is a monorepo of shared TypeScript packages for Pi runtime applications, published ESM-only under the @amaster.ai npm scope. It splits into two layers: @amaster.ai/pi-shared and @amaster.ai/pi-storage supply runtime contracts and persistence adapters, while the remaining packages are extensions that each register themselves through a ./extension subpath entry point and are loaded on demand by a host application. Extensions cover IM workspaces (Lark/Feishu, WeCom, DingTalk), browser and desktop automation, persistent memory, Langfuse/OpenTelemetry telemetry, cron scheduling, image and video generation, web access, and security policy. Hosts must supply HTTP routing, authentication, model runtime setup, deployment configuration, and product UI; the README documents two loading models, pi2dsh and dsh-pi-host. Runtime requirements are Node.js >=24 and pnpm 10.18.3, licensed Apache-2.0.
Each extension exports an entry point at its ./extension subpath; hosts import it and pass it to the Pi runtime during setup, which registers LLM-callable tools. On the core side, loadPiSettings reads configuration and createRuntimeStorage creates storage, with JsonRuntimeStorage plus MySQL/Prisma adapters persisting sessions, transcripts, events, memory, artifacts, subagents, and scheduled tasks. pi-browser-use wraps chrome-devtools-mcp behind browser_-prefixed tools, pi-computer-use provides cross-platform desktop automation, and pi-web-access handles web search, URL content extraction, and image search. pi-memory injects curated MEMORY.md and USER.md content into the system prompt as a refreshed snapshot, pi-security enforces resource-aware policies and tool authorization, pi-task-scheduler manages cron-based tasks, pi-telemetry exports through createLangfuseExporter and createOtelExporter, and pi-goal derives a goal from the conversation and iterates until it is met. For workspaces, pi-lark calls lark-cli, pi-wecom calls wecom-cli, and pi-dingtalk calls the dws CLI for calendars, docs, sheets, mail, and approvals. pi-image-gen targets OpenAI gpt-image, Google Nano Banana, Alibaba Qwen-Image, OpenRouter, and custom providers, while pi-video-gen performs lossless clip concat and mixed image/video timelines with bundled LGPL/GPL FFmpeg runtimes.
- A developer building a host app who wants session, event, artifact, and scheduled-task persistence while keeping their own HTTP routing and front end installs pi-shared plus pi-storage.
- A team wiring a Pi agent into a Feishu/Lark office workflow needs calendar, docs, drive, sheets, Base, tasks, and IM skills, provided by pi-lark through lark-cli.
- An ops or engineering group wants an agent to search the web, extract page content, and drive a browser, combining pi-web-access and pi-browser-use in one flow.
- An assistant scenario needing durable personalization uses pi-memory to inject MEMORY.md/USER.md into the system prompt instead of restating context each turn.
- A compliance-sensitive team requires per-resource authorization before tool execution and adds the pi-security policy engine and tool authorization.
- A content team switches between image providers via pi-image-gen and assembles clips, subtitles, TTS, and BGM into a finished video with pi-video-gen.
How do you install or deploy this agent?
Requirements are Node.js >=24 and pnpm 10.18.3; the README recommends Corepack:
corepack enable
corepack install -g [email protected]
pnpm installFull local check: pnpm run pr-check. Common commands: pnpm build, pnpm typecheck, pnpm test. pi-storage ships a Prisma schema at packages/storage/prisma/schema.prisma; run pnpm --filter @amaster.ai/pi-storage prisma:generate if needed, though the root build and typecheck scripts generate the Prisma client before compiling. As a consumer, install only what you need:
pnpm add @amaster.ai/pi-shared @amaster.ai/pi-storageThe README does not document credential setup for the IM, image, or video providers; consult each package README.
How do you use this agent?
Import from root entry points or focused subpaths, for example:
import { createRuntimeStorage } from "@amaster.ai/pi-storage";
import { JsonRuntimeStorage } from "@amaster.ai/pi-storage/json";
import { loadPiSettings } from "@amaster.ai/pi-shared/settings";
import { createLangfuseExporter } from "@amaster.ai/pi-telemetry/langfuse";
import { createOtelExporter } from "@amaster.ai/pi-telemetry/otel";
import memoryExtension from "@amaster.ai/pi-memory/extension";Extension packages register themselves through their ./extension subpath entry point; the host imports them and passes them to the Pi runtime during setup. Two host loading models are documented: pi2dsh discovers explicitly installed Pi packages in a DSH profile, while dsh-pi-host loads package names configured in its extensions list. Hosts must supply HTTP routing, authentication, model runtime, and deployment config; the README shows no runnable minimal example.
What are this agent's strengths and limitations?
- Clear separation with per-package installation: pi-shared and pi-storage hold contracts and persistence, while 19 extensions each register through a ./extension entry point so hosts install only what they need.
- Storage offers both JSON-file and MySQL/Prisma adapters, easing the path from local development to database-backed deployment.
- Broad, realistic office coverage: Lark/Feishu, WeCom, and DingTalk integrations reach calendars, docs, sheets, and approvals via lark-cli, wecom-cli, and the dws CLI respectively.
- Telemetry exports to both Langfuse and OpenTelemetry, and image generation can switch among OpenAI, Google, Alibaba, OpenRouter, and custom providers.
- pi-video-gen bundles LGPL/GPL FFmpeg runtimes and supports lossless concat, subtitles, TTS, and BGM in local composition, reducing reliance on external transcoding.
- Tightly bound to the Pi/DSH runtime: the README states packages are consumed by host applications that provide HTTP routing, auth, model runtime, and deployment config, so this is not a standalone service.
- No runnable minimal example or first-invocation walkthrough is documented, and provider credentials/quotas for IM, image, and video packages are absent, understating integration effort.
- Strict runtime floor: Node.js >=24 and pinned pnpm 10.18.3 with Corepack, plus Prisma/MySQL when the database storage adapter is used.
- Compatibility depends on host, DSH, Pi, and extension versions; only the pi2dsh and dsh-pi-host docs are referenced, with no version matrix.
- pi-video-gen ships LGPL/GPL FFmpeg runtimes, which can add redistribution and license-compliance review overhead.
How does this agent compare with similar options?
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| Pi Runtime Extensions This agent | 67 · Some gaps | Library / SDKFree + model costs | ★ 92 | 1d ago | TypeScript | — |
| Interceptor | 69 · Some gaps | CLIFree | ★ 612 | 3d ago | TypeScript | Codex · Claude Code · Claude.ai |
| CamoFox Browser Server | 63 · Some gaps | Self-hosted serviceFree | ★ 437 | 2d ago | JavaScript | Claude Code |
| Pi Agent Desktop | 78 · Good | — | ★ 333 | today | TypeScript | OpenAI API |
How does FollowAgents rate this agent?
Why each dimension lost points
The code and skill guidance show bounded behavior in some areas: computer actions are scoped to observed targets and verified, high risk actions have confirmation logic, and the browser subprocess environment supports an allowlist. Channels and external services can send messages or upload data. Deductions: the sample does not cover permission and confirmation behavior across all extensions; data flows and sensitive data handling are only partly documented. Evidence for dependency security and rollback is limited, and publisher identity and source attribution are not independently established.
The README, package inventory, and code samples support a coherent project of Pi extensions and shared runtime packages. The README gives Node and pnpm requirements and common build commands; the code includes reconnection, error classification, actionable failure messages, and guidance to inspect state before retrying when outcomes are unknown. Deductions: these safeguards are visible only in selected samples, so consistency across all packages is unproven; availability guidance does not cover every external service.
The repository describes several user scenarios and package purposes. The computer use skill specifies its scope, tool discovery, platform-specific permission guidance, and an alternative route for browser tasks. Deductions: the sample does not show trigger conditions or environment requirements for every extension. The Pi host boundary is clear, but compatibility details for individual integrations are incomplete.
The root README organizes packages by category and provides installation, development, and consumption examples. The license file and metadata both identify Apache-2.0, and package naming is generally consistent. AGENTS.md and CLAUDE.md are repository development guidance rather than product instructions. Deductions: the sample includes no changelog or named maintenance owner, and examples and limitations cover only some packages; the sample cannot establish documentation consistency across the repository.
The product connects Pi to browser and desktop operation, collaboration, memory, telemetry, and media generation. The README also describes structured results that scripts can consume, showing clear integration value. Deductions: multiple providers, credentials, platform permissions, and runtime dependencies add deployment cost; the sample does not fully describe costs versus benefits or output contracts for every capability.
The README's package purposes, requirements, and entry points can be compared with the package inventory, code samples, and workflow examples. Browser evaluation code describes task checks and result recording. Deductions: this is a static sample and the evaluation was not run, so workflow evaluation claims are not evidence of a passing result; several broad capability claims lack corresponding source evidence in the sample, and only some documentation clearly separates facts from inference.
- The packet covers only selected skills and source files; behavior of unshown packages, configurations, and permissions remains unknown.
- Browser, desktop, messaging, and generation integrations may cause external effects or charges. Check each package's credentials, permissions, data destinations, and recovery behavior before use.
- The repository includes evaluation workflows and test examples, but this static review did not run them and cannot establish that evaluations pass.
Recent releases
Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.
-
Release notes excerpt
Summary Compared with the previous beta, this release makes @amaster.ai/pi-telemetry traces more complete and readable in Langfuse and Phoenix, with clearer launch context, bounded generation ordinals, and compatible display tool definitions. Telemetry also exposes redacted provider HTTP headers and protects context metadata while labeling auxiliary calls and preserving failure status. CI model workflows move to OpenAI Responses with integration coverage retained. Highlights …View on GitHub ↗ -
Release notes excerpt
Summary This beta hardens failure handling across the tool packages and expands @amaster.ai/pi-telemetry with a Phoenix backend layered over shared OpenTelemetry spans. Compared with the previous beta, errors that were previously swallowed now surface with their original causes, and telemetry exports behave more predictably under load and at shutdown. Highlights …View on GitHub ↗ -
Release notes excerpt
Summary Compared with the previous release, this update is a narrow reliability fix focused on @amaster.ai/pi-browser-use. Browser-use session connection and server handling now retry unreachable loopback ports, giving local browser automation a better chance to recover when a port is temporarily unavailable. The remaining published extension packages are part of the release set, but the supplied changes are limited to browser-use and its tests. Highlights …View on GitHub ↗
FAQ
Can I run this as a standalone service?
Do I have to install every package?
pnpm add @amaster.ai/pi-shared @amaster.ai/pi-storage. Extensions are independent and register through their ./extension subpaths for on-demand loading.Is MySQL required?
What credentials do the Lark, WeCom, DingTalk, image, and video integrations need?
What are the hard runtime requirements?
Thanks — we use this to improve the page.