Rank
70
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
Traction
No public download signal
Freshness
Updated 2d ago
Crawler Summary
Best practices for building agent-powered applications using pi-mono SDK (@mariozechner/pi-ai, @mariozechner/pi-agent-core, @mariozechner/pi-coding-agent). Use when the task involves: designing agent application architecture, embedding agent capabilities into web/backend services, writing system prompts for agent executors, implementing security for autonomous agents, building agent-as-backend systems, integrating pi-mono SDK into existing applications, creating Extensions or Skills for pi, or any development where an LLM agent loop drives real-world actions (deployment, infrastructure, data processing) rather than conversation. --- name: pi-agent-app-dev description: "Best practices for building agent-powered applications using pi-mono SDK (@mariozechner/pi-ai, @mariozechner/pi-agent-core, @mariozechner/pi-coding-agent). Use when the task involves: designing agent application architecture, embedding agent capabilities into web/backend services, writing system prompts for agent executors, implementing security for autonomous agents, building Capability contract not published. No trust telemetry is available yet. Last updated 4/15/2026.
Freshness
Last checked 4/15/2026
Best For
pi-agent-app-dev is best for general automation workflows where OpenClaw compatibility matters.
Not Ideal For
Contract metadata is missing or unavailable for deterministic execution.
Evidence Sources Checked
editorial-content, GITHUB OPENCLEW, runtime-metrics, public facts pack
Best practices for building agent-powered applications using pi-mono SDK (@mariozechner/pi-ai, @mariozechner/pi-agent-core, @mariozechner/pi-coding-agent). Use when the task involves: designing agent application architecture, embedding agent capabilities into web/backend services, writing system prompts for agent executors, implementing security for autonomous agents, building agent-as-backend systems, integrating pi-mono SDK into existing applications, creating Extensions or Skills for pi, or any development where an LLM agent loop drives real-world actions (deployment, infrastructure, data processing) rather than conversation. --- name: pi-agent-app-dev description: "Best practices for building agent-powered applications using pi-mono SDK (@mariozechner/pi-ai, @mariozechner/pi-agent-core, @mariozechner/pi-coding-agent). Use when the task involves: designing agent application architecture, embedding agent capabilities into web/backend services, writing system prompts for agent executors, implementing security for autonomous agents, building
Public facts
4
Change events
1
Artifacts
0
Freshness
Apr 15, 2026
Capability contract not published. No trust telemetry is available yet. Last updated 4/15/2026.
Trust score
Unknown
Compatibility
OpenClaw
Freshness
Apr 15, 2026
Vendor
Crokily
Artifacts
0
Benchmarks
0
Last release
Unpublished
Key links, install path, and a quick operational read before the deeper crawl record.
Summary
Capability contract not published. No trust telemetry is available yet. Last updated 4/15/2026.
Setup snapshot
git clone https://github.com/Crokily/pi-agent-app-dev.gitSetup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.
Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.
Vendor
Crokily
Protocol compatibility
OpenClaw
Handshake status
UNKNOWN
Crawlable docs
6 indexed pages on the official domain
Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.
Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.
Extracted files
0
Examples
6
Snippets
0
Languages
typescript
Parameters
text
Agent App = Environment (tools + filesystem + state) + Harness (prompt + rules + permissions + hooks) + Loop (engine)
text
❌ BAD: Button click → create Task in DB → agent picks up task → agent calls instance_create tool (which is just the old function) → tool returns result → agent calls report_result → done Agent added zero intelligence. It's just a slow, unreliable function router.
text
✅ GOOD: Button click → agent receives goal + environment context → agent inspects current state (bash: docker ps, curl health endpoints) → agent decides what to create and how → agent creates instance (bash or minimal custom tool) → agent verifies instance is healthy (curl, docker inspect) → agent diagnoses and fixes problems if unhealthy → agent reports structured result only after verification
text
Layer 3: pi-coding-agent → createAgentSession() — full app (sessions, extensions, skills) Layer 2: pi-agent-core → agentLoop() — engine (tool calling, events, state) Layer 1: pi-ai → stream() / complete() — LLM interface (multi-provider, tools)
typescript
import { createAgentSession, SessionManager, DefaultResourceLoader } from "@mariozechner/pi-coding-agent";
import { getModel } from "@mariozechner/pi-ai";
const loader = new DefaultResourceLoader({
systemPromptOverride: () => SYSTEM_PROMPT,
});
await loader.reload();
const { session } = await createAgentSession({
model: getModel("anthropic", "claude-sonnet-4-20250514"),
resourceLoader: loader,
customTools: securityCriticalToolsOnly, // minimal — 0 to 3 tools max
tools: [], // or include bash via createBashTool() for full capability
sessionManager: SessionManager.inMemory(),
});
await session.prompt(userIntent);typescript
import { agentLoop, type AgentContext, type AgentLoopConfig } from "@mariozechner/pi-agent-core";
const context: AgentContext = { systemPrompt: PROMPT, messages: [], tools: myTools };
const config: AgentLoopConfig = {
model: getModel("anthropic", "claude-sonnet-4-20250514"),
convertToLlm: (msgs) => msgs.filter(m => ["user","assistant","toolResult"].includes(m.role)),
getApiKey: (provider) => keys[provider],
};
for await (const event of agentLoop([userMessage], context, config)) {
if (event.type === "tool_execution_end") console.log(`${event.toolName}: ${event.isError ? "FAIL" : "OK"}`);
}Full documentation captured from public sources, including the complete README when available.
Docs source
GITHUB OPENCLEW
Editorial quality
ready
Best practices for building agent-powered applications using pi-mono SDK (@mariozechner/pi-ai, @mariozechner/pi-agent-core, @mariozechner/pi-coding-agent). Use when the task involves: designing agent application architecture, embedding agent capabilities into web/backend services, writing system prompts for agent executors, implementing security for autonomous agents, building agent-as-backend systems, integrating pi-mono SDK into existing applications, creating Extensions or Skills for pi, or any development where an LLM agent loop drives real-world actions (deployment, infrastructure, data processing) rather than conversation. --- name: pi-agent-app-dev description: "Best practices for building agent-powered applications using pi-mono SDK (@mariozechner/pi-ai, @mariozechner/pi-agent-core, @mariozechner/pi-coding-agent). Use when the task involves: designing agent application architecture, embedding agent capabilities into web/backend services, writing system prompts for agent executors, implementing security for autonomous agents, building
Agent-driven applications ≠ traditional AI workflows. Do not build an orchestration graph that calls LLMs at each node. Instead, provide an environment where the agent autonomously decides what to do, verifies its own work, and self-corrects.
"Give as much control as possible to the language model itself, and keep the scaffolding minimal." — Anthropic, SWE-bench
"Claude Code embraces radical simplicity. The team deliberately minimizes business logic, allowing the underlying model to perform most work." — Pragmatic Engineer
"Maybe the best architecture is almost no architecture at all. Just filesystems and bash." — Vercel
The formula:
Agent App = Environment (tools + filesystem + state) + Harness (prompt + rules + permissions + hooks) + Loop (engine)
The environment gives the agent capabilities. The harness steers it without constraining its approach. The loop runs until the agent decides it is done.
Understand which paradigm you are building before writing code:
| | App-Driven (Orchestration) | Agent-Driven (Harness) | |---|---|---| | Who decides next step | Your code (graph/workflow) | The model (via prompt + tools) | | Frameworks | LangGraph, PydanticAI workflows, Mastra | Claude Agent SDK, Pi SDK, OpenCode | | Control surface | Explicit nodes, edges, routing logic | System prompt, permissions, skills, hooks | | Best for | Predictable pipelines, compliance-critical flows | Open-ended tasks, self-healing, creative problem-solving | | Anti-pattern | Using an agent SDK but hardcoding every step as a tool | Giving the agent infinite freedom with no harness |
This skill is for the agent-driven paradigm. If your task is better served by a deterministic pipeline, use traditional orchestration.
Pi's 4 built-in tools (~1000 tokens total) are sufficient for most agent applications. Bash alone gives the agent access to the entire Unix environment — docker, curl, git, grep, jq, and anything else installed.
Vercel deleted 17 specialized tools and replaced them with 1 bash tool. Success rate went from 80% → 100%, 3.5x faster, 37% fewer tokens.
Start with zero custom tools. Add them only when you hit a concrete problem bash cannot solve safely.
Only three situations justify a custom tool:
Security-critical operations — The tool must enforce access control that the LLM cannot bypass via prompt injection. Hardcode ownership checks, allowlists, rate limits in execute().
Structured output for your app layer — Your application needs to parse a typed JSON result (e.g., { instanceId, port, status }) rather than scraping stdout text.
Transactional / external API operations — Database transactions, OAuth flows, or third-party API calls with retry logic that bash cannot reliably encapsulate.
If your custom tool is just a function wrapper with no validation, verification, or structured return — delete it and let the agent use bash.
See references/tool-design.md for detailed patterns and code examples.
The most common mistake when building with agent-driven SDKs:
❌ BAD: Button click → create Task in DB → agent picks up task
→ agent calls instance_create tool (which is just the old function)
→ tool returns result → agent calls report_result → done
Agent added zero intelligence. It's just a slow, unreliable function router.
✅ GOOD: Button click → agent receives goal + environment context
→ agent inspects current state (bash: docker ps, curl health endpoints)
→ agent decides what to create and how
→ agent creates instance (bash or minimal custom tool)
→ agent verifies instance is healthy (curl, docker inspect)
→ agent diagnoses and fixes problems if unhealthy
→ agent reports structured result only after verification
The difference: the agent thinks, verifies, and self-corrects. That is the value proposition.
In agent-driven systems, the harness replaces the workflow graph. It is the developer's primary control surface.
| Element | Purpose | Example |
|---------|---------|---------|
| System prompt | Rules, goals, verification procedures, behavioral constraints | "After creating an instance, verify it responds to health checks" |
| AGENTS.md / Skills | Domain knowledge injected on-demand into context | Deployment procedures, error diagnosis playbooks |
| Filesystem state | Shared memory between agent turns, sessions, and sub-agents | /tmp/deploy-state.json, checklist files, plan files |
| Hooks / Extensions | Code-level interception points for security gates and context injection | pi.on("tool_call") to block dangerous bash commands |
| Permissions | Restrict tool access based on trust level or context | Read-only mode for exploration, full access for execution |
The system prompt is the most important piece of an agent-driven application. It is where you encode judgment, not just instructions.
Principles:
curl -sf http://localhost:{port}/health and confirm HTTP 200"docker logs --tail 50 for errors. If OOM, increase memory limit. If config error, regenerate config and restart."The filesystem is the universal persistence layer for agents. It is unlimited, persistent, directly operable, and requires no special tools.
Patterns:
state.json with current progress; reads it on next invocation for continuityPLAN.md with task breakdown; updates checkboxes as it progresses"File System as Extended Memory: unlimited in size, persistent by nature, and directly operable by the agent itself." — Manus
Layer 3: pi-coding-agent → createAgentSession() — full app (sessions, extensions, skills)
Layer 2: pi-agent-core → agentLoop() — engine (tool calling, events, state)
Layer 1: pi-ai → stream() / complete() — LLM interface (multi-provider, tools)
| Scenario | Layer | Entry Point |
|----------|-------|-------------|
| Full agent app with sessions, extensions | 3 | createAgentSession() |
| Agent as isolated subprocess | 3 | pi --mode rpc |
| Custom agent loop with full control | 2 | agentLoop() |
| Single LLM call with tool use | 1 | stream() / complete() |
import { createAgentSession, SessionManager, DefaultResourceLoader } from "@mariozechner/pi-coding-agent";
import { getModel } from "@mariozechner/pi-ai";
const loader = new DefaultResourceLoader({
systemPromptOverride: () => SYSTEM_PROMPT,
});
await loader.reload();
const { session } = await createAgentSession({
model: getModel("anthropic", "claude-sonnet-4-20250514"),
resourceLoader: loader,
customTools: securityCriticalToolsOnly, // minimal — 0 to 3 tools max
tools: [], // or include bash via createBashTool() for full capability
sessionManager: SessionManager.inMemory(),
});
await session.prompt(userIntent);
import { agentLoop, type AgentContext, type AgentLoopConfig } from "@mariozechner/pi-agent-core";
const context: AgentContext = { systemPrompt: PROMPT, messages: [], tools: myTools };
const config: AgentLoopConfig = {
model: getModel("anthropic", "claude-sonnet-4-20250514"),
convertToLlm: (msgs) => msgs.filter(m => ["user","assistant","toolResult"].includes(m.role)),
getApiKey: (provider) => keys[provider],
};
for await (const event of agentLoop([userMessage], context, config)) {
if (event.type === "tool_execution_end") console.log(`${event.toolName}: ${event.isError ? "FAIL" : "OK"}`);
}
pi --mode rpc --no-session -e ./my-extension.ts
Communicate via JSON over stdin/stdout. Send {"type":"prompt","message":"..."}, receive event stream.
See references/integration-patterns.md for full protocol details and examples.
Golden rule: NEVER trust System Prompt as a security boundary. All security MUST be hardcoded in tool execute() functions or enforced via extension event gates.
| Layer | Mechanism | Reliability |
|-------|-----------|-------------|
| Tool-level validation | Hardcoded checks in execute() | ★★★★★ |
| Extension event gates | pi.on("tool_call", …) → { block: true } | ★★★★ |
| Infrastructure isolation | Container, cgroup, network namespace | ★★★★★ |
| System Prompt rules | "Do not delete..." in prompt | ★★ Weak |
For code execution sandboxing options (Docker, E2B, Monty, Cloudflare CodeMode), see references/security.md.
Cost control: Monitor event.message.usage.cost.total per turn; abort if budget exceeded. Use cheap models for simple tasks, strong models for complex ones.
Timeout: AbortController with total timeout; set max turns as a safety net.
Structured output: Use a report_result tool only as the final structured reporting mechanism — not as the agent's primary communication channel.
Reinforcement: After tool calls, inject reminders of the overall objective and current state. Armin Ronacher: "Every time the agent runs a tool you have the opportunity to feed more information back into the loop — remind it about the overall objective and the status of individual tasks."
Failure isolation: Run subtasks that might fail repeatedly in sub-agents. Report only the success plus a brief summary of what didn't work, avoiding context pollution from failed attempts.
Verification loops: The single most important production pattern. Encode in system prompt:
See references/production.md for detailed patterns, observability, and testing guidance.
// Layer 3 (full SDK)
import { createAgentSession, SessionManager, SettingsManager, AuthStorage, ModelRegistry,
DefaultResourceLoader, createBashTool, type ToolDefinition, type ExtensionAPI } from "@mariozechner/pi-coding-agent";
// Layer 2 (agent engine)
import { agentLoop } from "@mariozechner/pi-agent-core";
// Layer 1 (LLM interface)
import { getModel, stream, complete, Type, type Context, type Tool } from "@mariozechner/pi-ai";
Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.
Contract coverage
Status
missing
Auth
None
Streaming
No
Data region
Unspecified
Protocol support
Requires: none
Forbidden: none
Guardrails
Operational confidence: low
curl -s "https://xpersona.co/api/v1/agents/crokily-pi-agent-app-dev/snapshot"
curl -s "https://xpersona.co/api/v1/agents/crokily-pi-agent-app-dev/contract"
curl -s "https://xpersona.co/api/v1/agents/crokily-pi-agent-app-dev/trust"
Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.
Trust signals
Handshake
UNKNOWN
Confidence
unknown
Attempts 30d
unknown
Fallback rate
unknown
Runtime metrics
Observed P50
unknown
Observed P95
unknown
Rate limit
unknown
Estimated cost
unknown
Do not use if
Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.
Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.
Rank
70
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
Traction
No public download signal
Freshness
Updated 2d ago
Rank
70
AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs
Traction
No public download signal
Freshness
Updated 5d ago
Rank
70
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
Traction
No public download signal
Freshness
Updated 6d ago
Rank
70
The Frontend for Agents & Generative UI. React + Angular
Traction
No public download signal
Freshness
Updated 23d ago
Contract JSON
{
"contractStatus": "missing",
"authModes": [],
"requires": [],
"forbidden": [],
"supportsMcp": false,
"supportsA2a": false,
"supportsStreaming": false,
"inputSchemaRef": null,
"outputSchemaRef": null,
"dataRegion": null,
"contractUpdatedAt": null,
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://xpersona.co/api/v1/agents/crokily-pi-agent-app-dev/snapshot",
"contractUrl": "https://xpersona.co/api/v1/agents/crokily-pi-agent-app-dev/contract",
"trustUrl": "https://xpersona.co/api/v1/agents/crokily-pi-agent-app-dev/trust"
},
"curlExamples": [
"curl -s \"https://xpersona.co/api/v1/agents/crokily-pi-agent-app-dev/snapshot\"",
"curl -s \"https://xpersona.co/api/v1/agents/crokily-pi-agent-app-dev/contract\"",
"curl -s \"https://xpersona.co/api/v1/agents/crokily-pi-agent-app-dev/trust\""
],
"jsonRequestTemplate": {
"query": "summarize this repo",
"constraints": {
"maxLatencyMs": 2000,
"protocolPreference": [
"OPENCLEW"
]
}
},
"jsonResponseTemplate": {
"ok": true,
"result": {
"summary": "...",
"confidence": 0.9
},
"meta": {
"source": "GITHUB_OPENCLEW",
"generatedAt": "2026-04-17T01:50:52.296Z"
}
},
"retryPolicy": {
"maxAttempts": 3,
"backoffMs": [
500,
1500,
3500
],
"retryableConditions": [
"HTTP_429",
"HTTP_503",
"NETWORK_TIMEOUT"
]
}
}Trust JSON
{
"status": "unavailable",
"handshakeStatus": "UNKNOWN",
"verificationFreshnessHours": null,
"reputationScore": null,
"p95LatencyMs": null,
"successRate30d": null,
"fallbackRate": null,
"attempts30d": null,
"trustUpdatedAt": null,
"trustConfidence": "unknown",
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Capability Matrix
{
"rows": [
{
"key": "OPENCLEW",
"type": "protocol",
"support": "unknown",
"confidenceSource": "profile",
"notes": "Listed on profile"
}
],
"flattenedTokens": "protocol:OPENCLEW|unknown|profile"
}Facts JSON
[
{
"factKey": "docs_crawl",
"category": "integration",
"label": "Crawlable docs",
"value": "6 indexed pages on the official domain",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
},
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Crokily",
"href": "https://github.com/Crokily/pi-agent-app-dev",
"sourceUrl": "https://github.com/Crokily/pi-agent-app-dev",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-04-15T01:12:31.291Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://xpersona.co/api/v1/agents/crokily-pi-agent-app-dev/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/crokily-pi-agent-app-dev/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-04-15T01:12:31.291Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://xpersona.co/api/v1/agents/crokily-pi-agent-app-dev/trust",
"sourceUrl": "https://xpersona.co/api/v1/agents/crokily-pi-agent-app-dev/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
]Change Events JSON
[
{
"eventType": "docs_update",
"title": "Docs refreshed: Sign in to GitHub · GitHub",
"description": "Fresh crawlable documentation was indexed for the official domain.",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
}
]Sponsored
Ads related to pi-agent-app-dev and adjacent AI workflows.