Claim this agent
Agent DossierGITHUB OPENCLEWSafety 100/100

Xpersona Agent

foreground-chains

Orchestrate multi-agent workflows where users watch each step in the overlay. Uses different CLI agents (cursor, pi, codex) for specialized roles with file-based handoff and auto-continue support for agents that pause mid-task. --- name: foreground-chains description: Orchestrate multi-agent workflows where users watch each step in the overlay. Uses different CLI agents (cursor, pi, codex) for specialized roles with file-based handoff and auto-continue support for agents that pause mid-task. --- Foreground Agent Chains Run multi-step agent workflows with full user visibility. Each step runs in an overlay where the user watches and can inter

OpenClaw · self-declared
31 GitHub starsTrust evidence available
git clone https://github.com/nicobailon/pi-foreground-chains.git

Overall rank

#38

Adoption

31 GitHub stars

Trust

Unknown

Freshness

Apr 15, 2026

Freshness

Last checked Apr 15, 2026

Best For

foreground-chains is best for intervene, read, still 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

Overview

Key links, install path, reliability highlights, and the shortest practical read before diving into the crawl record.

Verifiededitorial-content

Overview

Executive Summary

Orchestrate multi-agent workflows where users watch each step in the overlay. Uses different CLI agents (cursor, pi, codex) for specialized roles with file-based handoff and auto-continue support for agents that pause mid-task. --- name: foreground-chains description: Orchestrate multi-agent workflows where users watch each step in the overlay. Uses different CLI agents (cursor, pi, codex) for specialized roles with file-based handoff and auto-continue support for agents that pause mid-task. --- Foreground Agent Chains Run multi-step agent workflows with full user visibility. Each step runs in an overlay where the user watches and can inter Capability contract not published. No trust telemetry is available yet. 31 GitHub stars reported by the source. Last updated 4/15/2026.

No verified compatibility signals31 GitHub stars

Trust score

Unknown

Compatibility

OpenClaw

Freshness

Apr 15, 2026

Vendor

Nicobailon

Artifacts

0

Benchmarks

0

Last release

Unpublished

Install & run

Setup Snapshot

git clone https://github.com/nicobailon/pi-foreground-chains.git
  1. 1

    Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.

  2. 2

    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.

Evidence & Timeline

Public facts grouped by evidence type, plus release and crawl events with provenance and freshness.

Verifiededitorial-content

Public facts

Evidence Ledger

Vendor (1)

Vendor

Nicobailon

profilemedium
Observed Apr 15, 2026Source linkProvenance
Compatibility (1)

Protocol compatibility

OpenClaw

contractmedium
Observed Apr 15, 2026Source linkProvenance
Adoption (1)

Adoption signal

31 GitHub stars

profilemedium
Observed Apr 15, 2026Source linkProvenance
Security (1)

Handshake status

UNKNOWN

trustmedium
Observed unknownSource linkProvenance
Integration (1)

Crawlable docs

6 indexed pages on the official domain

search_documentmedium
Observed Apr 15, 2026Source linkProvenance

Artifacts & Docs

Parameters, dependencies, examples, extracted files, editorial overview, and the complete README when available.

Self-declaredGITHUB OPENCLEW

Captured outputs

Artifacts Archive

Extracted files

0

Examples

6

Snippets

0

Languages

typescript

Parameters

Executable Examples

text

Scout ──► context.md ──► Planner ──► plan.md ──► Worker ──► impl.md ──► Reviewer
  │                          │                      │                       │
  │ gathers code +           │ head start,          │ auto-continue         │ validates +
  │ meta-prompt              │ can read more        │ for "Should I..."     │ fixes issues
  │                          │                      │                       │
  └──────────────────────────┴──────────────────────┴───────────────────────┤
                                                                            ▼
                                                                      progress.md
                                                                    (all agents append)
                                                                            │
                                                                            ▼
                                                                      Main Agent
                                                                    (reads at chain end)

bash

# Scout (cursor-agent)
agent "prompt"

# Planner (pi)
pi --model claude-sonnet-4-5 "prompt"

# Worker (codex)
codex "prompt"

# Reviewer (pi)
pi --model claude-sonnet-4-5 "prompt"

text

/tmp/pi-chain-runs/{runId}/
├── progress.md     # Running log - ALL agents append to this
├── context.md      # Scout → Planner handoff
├── plan.md         # Planner → Worker handoff
└── impl.md         # Worker → Reviewer handoff

typescript

const runId = Date.now().toString(36);
const chainDir = `/tmp/pi-chain-runs/${runId}`;

// Create chain directory
bash({ command: `mkdir -p ${chainDir}` })

// Start scout
interactive_shell({
  command: `agent "You are a scout. The user wants: ${task}

Your job: Gather all relevant code into context.md so the planner gets a head start and spends less time reading files.

Strategy:
1. grep/find to locate relevant code
2. Read key sections (not entire files)  
3. Stuff actual code snippets into context.md
4. Note how pieces connect

Save to ${chainDir}/context.md:

# Code Context

## User Intent
Restate what the user wants in your own words.

## Files Retrieved
List with exact line ranges:
1. \`path/to/file.ts\` (lines 10-50) - Description
2. \`path/to/other.ts\` (lines 100-150) - Description

## Key Code
The actual code snippets from those files. Include complete types, interfaces, functions - everything the planner needs to see. This is the main payload.

## Architecture
Brief explanation of how the pieces connect. Dependencies between files.

## Planning Guidance
Synthesize the user's intent with your codebase findings:
- What approach makes sense given the existing architecture?
- Which files need modification and in what order?
- What patterns should the implementation follow?
- Risks or edge cases to address?

This is your tailored meta-prompt for the planner - connect what the user wants with how the codebase actually works.

Also CREATE ${chainDir}/progress.md:
## Scout - Context Gathered
- X files analyzed
- Key findings
- Recommended approach"`,
  mode: "hands-free",
  reason: "Step 1: Scout (cursor-agent)"
})

typescript

interactive_shell({
  command: `pi --model claude-sonnet-4-5 "Read ${chainDir}/context.md first - the scout already gathered relevant code snippets and provided planning guidance.

Create a detailed implementation plan for: ${task}

You have a head start from context.md, but you can read additional files if needed.

Your plan should include:
1. Task breakdown with clear steps
2. File modification order
3. Testing strategy
4. Risk areas to watch

Save your plan to ${chainDir}/plan.md with numbered steps.

Also APPEND to ${chainDir}/progress.md:
## Planner - Implementation Plan
- (number of tasks, key decisions, risks identified)"`,
  mode: "hands-free",
  reason: "Step 2: Planner (pi)"
})

typescript

// Start worker with auto-exit disabled
interactive_shell({
  command: `codex "Read the implementation plan at ${chainDir}/plan.md

Implement ALL tasks in the plan. Do not stop until everything is complete.

As you work, APPEND to ${chainDir}/progress.md:
## Worker - Implementation
- [x] Task 1 - (what you did)
- [x] Task 2 - (what you did)
- (update as you complete each task)

When ALL tasks are done:
- Save a summary to ${chainDir}/impl.md
- Your final message must be exactly: IMPLEMENTATION COMPLETE"`,
  mode: "hands-free",
  handsFree: { autoExitOnQuiet: false },
  reason: "Step 3: Worker (codex)"
})

// Returns sessionId immediately

Editorial read

Docs & README

Docs source

GITHUB OPENCLEW

Editorial quality

ready

Orchestrate multi-agent workflows where users watch each step in the overlay. Uses different CLI agents (cursor, pi, codex) for specialized roles with file-based handoff and auto-continue support for agents that pause mid-task. --- name: foreground-chains description: Orchestrate multi-agent workflows where users watch each step in the overlay. Uses different CLI agents (cursor, pi, codex) for specialized roles with file-based handoff and auto-continue support for agents that pause mid-task. --- Foreground Agent Chains Run multi-step agent workflows with full user visibility. Each step runs in an overlay where the user watches and can inter

Full README

name: foreground-chains description: Orchestrate multi-agent workflows where users watch each step in the overlay. Uses different CLI agents (cursor, pi, codex) for specialized roles with file-based handoff and auto-continue support for agents that pause mid-task.

Foreground Agent Chains

Run multi-step agent workflows with full user visibility. Each step runs in an overlay where the user watches and can intervene. Uses file-based handoff through a shared chain directory.

Agent Roles

| Role | CLI | Model | Purpose | |------|-----|-------|---------| | Scout | agent (cursor) | (default) | Fast codebase scanning, context gathering | | Planner | pi | claude-sonnet-4-5 | Strategic planning, task breakdown | | Worker | codex | (default) | Implementation, code changes | | Reviewer | pi | claude-sonnet-4-5 | Validates implementation, fixes issues |

Adjust models based on availability and task complexity. Use pi --list-models to see available options.

Architecture

Scout ──► context.md ──► Planner ──► plan.md ──► Worker ──► impl.md ──► Reviewer
  │                          │                      │                       │
  │ gathers code +           │ head start,          │ auto-continue         │ validates +
  │ meta-prompt              │ can read more        │ for "Should I..."     │ fixes issues
  │                          │                      │                       │
  └──────────────────────────┴──────────────────────┴───────────────────────┤
                                                                            ▼
                                                                      progress.md
                                                                    (all agents append)
                                                                            │
                                                                            ▼
                                                                      Main Agent
                                                                    (reads at chain end)

CLI Commands

# Scout (cursor-agent)
agent "prompt"

# Planner (pi)
pi --model claude-sonnet-4-5 "prompt"

# Worker (codex)
codex "prompt"

# Reviewer (pi)
pi --model claude-sonnet-4-5 "prompt"

Chain Directory Structure

/tmp/pi-chain-runs/{runId}/
├── progress.md     # Running log - ALL agents append to this
├── context.md      # Scout → Planner handoff
├── plan.md         # Planner → Worker handoff
└── impl.md         # Worker → Reviewer handoff

Handoff files: Structured output passed to the next agent.

progress.md: Running log that every agent appends to. Main agent reads this at the end for the complete chain story.

Step 1: Scout

Fast codebase recon that gathers relevant code so the planner gets a head start and spends less time reading files.

const runId = Date.now().toString(36);
const chainDir = `/tmp/pi-chain-runs/${runId}`;

// Create chain directory
bash({ command: `mkdir -p ${chainDir}` })

// Start scout
interactive_shell({
  command: `agent "You are a scout. The user wants: ${task}

Your job: Gather all relevant code into context.md so the planner gets a head start and spends less time reading files.

Strategy:
1. grep/find to locate relevant code
2. Read key sections (not entire files)  
3. Stuff actual code snippets into context.md
4. Note how pieces connect

Save to ${chainDir}/context.md:

# Code Context

## User Intent
Restate what the user wants in your own words.

## Files Retrieved
List with exact line ranges:
1. \`path/to/file.ts\` (lines 10-50) - Description
2. \`path/to/other.ts\` (lines 100-150) - Description

## Key Code
The actual code snippets from those files. Include complete types, interfaces, functions - everything the planner needs to see. This is the main payload.

## Architecture
Brief explanation of how the pieces connect. Dependencies between files.

## Planning Guidance
Synthesize the user's intent with your codebase findings:
- What approach makes sense given the existing architecture?
- Which files need modification and in what order?
- What patterns should the implementation follow?
- Risks or edge cases to address?

This is your tailored meta-prompt for the planner - connect what the user wants with how the codebase actually works.

Also CREATE ${chainDir}/progress.md:
## Scout - Context Gathered
- X files analyzed
- Key findings
- Recommended approach"`,
  mode: "hands-free",
  reason: "Step 1: Scout (cursor-agent)"
})

Completion: Poll until status: "exited". Scout typically finishes cleanly without needing auto-continue.

Step 2: Planner

Creates implementation plan. Gets a head start from context.md (scout pre-gathered the relevant code), but can still read additional files if needed.

interactive_shell({
  command: `pi --model claude-sonnet-4-5 "Read ${chainDir}/context.md first - the scout already gathered relevant code snippets and provided planning guidance.

Create a detailed implementation plan for: ${task}

You have a head start from context.md, but you can read additional files if needed.

Your plan should include:
1. Task breakdown with clear steps
2. File modification order
3. Testing strategy
4. Risk areas to watch

Save your plan to ${chainDir}/plan.md with numbered steps.

Also APPEND to ${chainDir}/progress.md:
## Planner - Implementation Plan
- (number of tasks, key decisions, risks identified)"`,
  mode: "hands-free",
  reason: "Step 2: Planner (pi)"
})

Completion: Poll until status: "exited". Planner typically finishes cleanly.

Step 3: Worker (with Auto-Continue)

Implementation step that often pauses to ask questions.

The Problem

Codex frequently pauses mid-task with prompts like:

  • "Should I also update the tests?"
  • "Do you want me to refactor this function?"
  • "Would you like me to continue with the next file?"
  • "Shall I proceed with the remaining tasks?"

Without intervention, it stops and waits indefinitely.

The Solution

  1. Disable auto-exit so the session stays alive when codex pauses
  2. Detect waiting patterns in the output
  3. Send "continue" to keep it working
  4. Detect true completion via explicit signal or exit
// Start worker with auto-exit disabled
interactive_shell({
  command: `codex "Read the implementation plan at ${chainDir}/plan.md

Implement ALL tasks in the plan. Do not stop until everything is complete.

As you work, APPEND to ${chainDir}/progress.md:
## Worker - Implementation
- [x] Task 1 - (what you did)
- [x] Task 2 - (what you did)
- (update as you complete each task)

When ALL tasks are done:
- Save a summary to ${chainDir}/impl.md
- Your final message must be exactly: IMPLEMENTATION COMPLETE"`,
  mode: "hands-free",
  handsFree: { autoExitOnQuiet: false },
  reason: "Step 3: Worker (codex)"
})

// Returns sessionId immediately

Auto-Continue Loop

const sessionId = startResult.details.sessionId;

while (true) {
  // Query status (rate limiting handles 60s wait automatically)
  const pollResult = interactive_shell({ sessionId, outputLines: 30 });
  const status = pollResult.details.status;
  
  // Check if session exited
  if (status === "exited") {
    break;
  }
  
  // User took over - don't interfere, just keep polling
  if (status === "user-takeover") {
    continue;
  }
  
  const output = pollResult.details.output;
  
  // Check for explicit completion signal
  if (output.includes("IMPLEMENTATION COMPLETE")) {
    interactive_shell({ sessionId, kill: true });
    break;
  }
  
  // Auto-continue if waiting for input
  if (needsContinue(output)) {
    interactive_shell({ sessionId, input: "continue\n" });
  }
}

Continue Detection

Patterns that indicate codex is waiting:

function needsContinue(output: string): boolean {
  const lines = output.trim().split('\n');
  const lastLines = lines.slice(-5).join('\n').toLowerCase();
  
  const patterns = [
    /should i (also|continue|proceed)/,
    /do you want me to/,
    /would you like me to/,
    /shall i (proceed|continue)/,
    /want me to (continue|proceed)/,
    /continue\?$/,
    /proceed\?$/,
  ];
  
  return patterns.some(p => p.test(lastLines));
}

Alternative: Yes-Mode

Some agents support auto-approval flags:

# Codex with full auto-approval (if supported)
codex --full-auto "prompt"

# Aider with yes-always
aider --yes-always "prompt"

Check the agent's CLI options for auto-approval modes that eliminate the need for manual continues.

Step 4: Reviewer (Validate + Fix)

Validates the worker's implementation and fixes any issues found.

interactive_shell({
  command: `pi --model claude-sonnet-4-5 "Review and fix the implementation:

1. Read the original context: ${chainDir}/context.md (user intent + codebase analysis)
2. Read the plan: ${chainDir}/plan.md
3. Read the progress log: ${chainDir}/progress.md  
4. Read the implementation summary: ${chainDir}/impl.md
5. Examine the actual code changes

Validate:
- All planned tasks were completed
- Code quality meets standards
- No obvious bugs or issues
- Tests are adequate

If you find issues, FIX THEM directly. Don't just report - make the code right.

APPEND to ${chainDir}/progress.md with your final section:

## Reviewer - Validation & Fixes
**Status: PASS** (or FAIL if critical issues remain)

Validated:
- [x] All planned tasks completed
- [x] Code quality verified  
- [x] Tests passing
- [x] No security issues

Issues Fixed:
- (list any issues you found and fixed, or 'None')

Files Modified by Reviewer:
- (list files you changed, or 'None')

---
**Chain Complete** | scout → planner → worker → reviewer
Total files modified: X
Notes: (anything the main agent should know)"`,
  mode: "hands-free",
  reason: "Step 4: Reviewer (pi)"
})

Completion: Poll until status: "exited". Reviewer validates, fixes issues, appends final status to progress.md.

Status Values

| Status | Meaning | Action | |--------|---------|--------| | running | Agent still working | Wait, check for continue patterns | | exited | Agent finished | Move to next step | | user-takeover | User started typing | Wait for user to finish | | killed | Session terminated | Chain interrupted | | backgrounded | User moved to background | Session continues invisibly |

Complete Chain Example

async function runForegroundChain(task: string) {
  const runId = Date.now().toString(36);
  const chainDir = `/tmp/pi-chain-runs/${runId}`;
  
  // Setup
  bash({ command: `mkdir -p ${chainDir}` });
  
  // Step 1: Scout - gather code into context.md with structured format
  // (See Step 1 section above for full context.md format: User Intent, Files Retrieved, Key Code, Architecture, Planning Guidance)
  let session = interactive_shell({
    command: `agent "Scout for: ${task}. Gather relevant code into ${chainDir}/context.md (format: User Intent, Files Retrieved, Key Code, Architecture, Planning Guidance). CREATE ${chainDir}/progress.md with ## Scout section."`,
    mode: "hands-free",
    reason: "Step 1: Scout"
  });
  await pollUntilExited(session.details.sessionId);
  
  // Step 2: Planner
  session = interactive_shell({
    command: `pi --model claude-sonnet-4-5 "Read ${chainDir}/context.md. Create plan for: ${task}. Save to ${chainDir}/plan.md. APPEND ## Planner section to ${chainDir}/progress.md."`,
    mode: "hands-free",
    reason: "Step 2: Planner"
  });
  await pollUntilExited(session.details.sessionId);
  
  // Step 3: Worker (with auto-continue)
  session = interactive_shell({
    command: `codex "Read ${chainDir}/plan.md. Implement ALL tasks. APPEND ## Worker section to ${chainDir}/progress.md as you complete tasks. Save summary to ${chainDir}/impl.md. End with: IMPLEMENTATION COMPLETE"`,
    mode: "hands-free",
    handsFree: { autoExitOnQuiet: false },
    reason: "Step 3: Worker"
  });
  await pollWithAutoContinue(session.details.sessionId, "IMPLEMENTATION COMPLETE");
  
  // Step 4: Reviewer (validate + fix)
  session = interactive_shell({
    command: `pi --model claude-sonnet-4-5 "Review and fix: Read ${chainDir}/context.md (user intent), ${chainDir}/plan.md, ${chainDir}/progress.md, ${chainDir}/impl.md. Validate implementation matches intent, fix issues. APPEND ## Reviewer section with status and **Chain Complete** to ${chainDir}/progress.md."`,
    mode: "hands-free",
    reason: "Step 4: Reviewer"
  });
  await pollUntilExited(session.details.sessionId);
  
  // Read progress.md - contains complete chain history
  const progress = read(`${chainDir}/progress.md`);
  
  // Parse status from reviewer section
  const passed = progress.includes("Status: PASS");
  
  // Output chain completion summary
  console.log(`
✅ Chain completed: scout → planner → worker → reviewer (4 steps)

📋 Progress: ${chainDir}/progress.md
📁 Artifacts: ${chainDir}/
  `);
  
  return { chainDir, progress, passed };
}

async function pollUntilExited(sessionId: string) {
  while (true) {
    const result = interactive_shell({ sessionId });
    if (result.details.status === "exited") break;
    // Rate limiting handles the wait
  }
}

async function pollWithAutoContinue(sessionId: string, completionSignal: string) {
  while (true) {
    const result = interactive_shell({ sessionId, outputLines: 30 });
    const status = result.details.status;
    
    // Session ended
    if (status === "exited") break;
    
    // User took over - don't interfere, just wait
    if (status === "user-takeover") continue;
    
    const output = result.details.output;
    
    // Check for explicit completion signal
    if (output.includes(completionSignal)) {
      interactive_shell({ sessionId, kill: true });
      break;
    }
    
    // Auto-continue if waiting for input (only when running, not user-takeover)
    if (needsContinue(output)) {
      interactive_shell({ sessionId, input: "continue\n" });
    }
  }
}

// See "Continue Detection" section above for needsContinue() implementation

Tips

progress.md is the chain result: After the chain completes, read progress.md for the complete story - every agent's section, final status, issues fixed. It's the single source of truth.

Handoff files are for agents: context.md, plan.md, impl.md exist for structured agent-to-agent communication. The main agent reads progress.md.

File-based handoff is reliable: Terminal output can be truncated. Always have agents write to chain_dir files.

Explicit completion signals: Tell agents to output a specific phrase when truly done (e.g., "IMPLEMENTATION COMPLETE").

User takeover: If status becomes user-takeover, the user started typing. Wait for them to finish - don't try to send input.

Cleanup: Chain directories in /tmp/ persist until OS cleanup. Remove manually when done: rm -rf /tmp/pi-chain-runs/{runId}

Model selection: Adjust models based on task complexity. Use faster models for simple steps, more capable models for complex reasoning.

Customization

Different Agent Combinations

// Research-heavy chain
const agents = {
  scout: 'gemini --model gemini-2.5-pro "..."',      // Good at synthesis
  planner: 'claude "..."',                       // Strong reasoning
  worker: 'codex "..."',                         // Fast implementation
  reviewer: 'pi --model claude-opus-4-5 "..."',       // Thorough review
};

// Speed-optimized chain
const agents = {
  scout: 'agent "..."',            // Fast scanning
  planner: 'pi --model claude-haiku-4-5 "..."',           // Quick planning
  worker: 'codex "..."',                         // Fast implementation
  reviewer: 'pi --model claude-haiku-4-5 "..."',          // Quick review
};

Adding Steps

Insert additional steps as needed:

// Add a "tester" step after review to verify everything works
interactive_shell({
  command: `pi "Run the test suite. Verify all tests pass. If any fail, investigate and report to ${chainDir}/test-results.md. APPEND ## Tester section with results to ${chainDir}/progress.md."`,
  mode: "hands-free",
  reason: "Step 5: Tester"
});

// Add a "documenter" step to update docs
interactive_shell({
  command: `pi "Read ${chainDir}/progress.md. Update README and any relevant documentation to reflect the changes. Save summary to ${chainDir}/docs-updated.md. APPEND ## Documenter section to ${chainDir}/progress.md."`,
  mode: "hands-free",
  reason: "Step 5: Documenter"
});

Parallel Scouts

Run multiple scouts for different aspects. Create progress.md first to avoid race conditions:

// Create progress.md before starting parallel scouts
bash({ command: `echo "# Chain Progress" > ${chainDir}/progress.md` });

// Start both scouts simultaneously - both APPEND (no race condition)
const scout1 = interactive_shell({
  command: `agent "Analyze architecture. Save to ${chainDir}/arch.md. APPEND ## Scout 1 - Architecture section to ${chainDir}/progress.md."`,
  mode: "hands-free"
});
const sessionId1 = scout1.details.sessionId;

const scout2 = interactive_shell({
  command: `agent "Analyze test coverage. Save to ${chainDir}/tests.md. APPEND ## Scout 2 - Test Coverage section to ${chainDir}/progress.md."`,
  mode: "hands-free"
});
const sessionId2 = scout2.details.sessionId;

// Poll alternately until both complete (rate limiting applies per-query)
let done1 = false, done2 = false;
while (!done1 || !done2) {
  if (!done1) {
    const r1 = interactive_shell({ sessionId: sessionId1 });
    if (r1.details.status === "exited") done1 = true;
  }
  if (!done2) {
    const r2 = interactive_shell({ sessionId: sessionId2 });
    if (r2.details.status === "exited") done2 = true;
  }
}

// Planner reads both files
interactive_shell({
  command: `pi --model claude-sonnet-4-5 "Read ${chainDir}/arch.md and ${chainDir}/tests.md. Create unified plan. Save to ${chainDir}/plan.md. APPEND ## Planner section to ${chainDir}/progress.md."`,
  mode: "hands-free",
  reason: "Step 2: Planner"
});

API & Reliability

Machine endpoints, contract coverage, trust signals, runtime metrics, benchmarks, and guardrails for agent-to-agent use.

MissingGITHUB OPENCLEW

Machine interfaces

Contract & API

Contract coverage

Status

missing

Auth

None

Streaming

No

Data region

Unspecified

Protocol support

OpenClaw: self-declared

Requires: none

Forbidden: none

Guardrails

Operational confidence: low

No positive guardrails captured.
Invocation examples
curl -s "https://xpersona.co/api/v1/agents/nicobailon-pi-foreground-chains/snapshot"
curl -s "https://xpersona.co/api/v1/agents/nicobailon-pi-foreground-chains/contract"
curl -s "https://xpersona.co/api/v1/agents/nicobailon-pi-foreground-chains/trust"

Operational fit

Reliability & Benchmarks

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

Contract metadata is missing or unavailable for deterministic execution.
No benchmark suites or observed failure patterns are available.

Machine Appendix

Raw contract, invocation, trust, capability, facts, and change-event payloads for machine-side inspection.

MissingGITHUB OPENCLEW

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/nicobailon-pi-foreground-chains/snapshot",
    "contractUrl": "https://xpersona.co/api/v1/agents/nicobailon-pi-foreground-chains/contract",
    "trustUrl": "https://xpersona.co/api/v1/agents/nicobailon-pi-foreground-chains/trust"
  },
  "curlExamples": [
    "curl -s \"https://xpersona.co/api/v1/agents/nicobailon-pi-foreground-chains/snapshot\"",
    "curl -s \"https://xpersona.co/api/v1/agents/nicobailon-pi-foreground-chains/contract\"",
    "curl -s \"https://xpersona.co/api/v1/agents/nicobailon-pi-foreground-chains/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-17T04:46:03.006Z"
    }
  },
  "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"
    },
    {
      "key": "intervene",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    },
    {
      "key": "read",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    },
    {
      "key": "still",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    },
    {
      "key": "be",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    },
    {
      "key": "auto",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    }
  ],
  "flattenedTokens": "protocol:OPENCLEW|unknown|profile capability:intervene|supported|profile capability:read|supported|profile capability:still|supported|profile capability:be|supported|profile capability:auto|supported|profile"
}

Facts JSON

[
  {
    "factKey": "vendor",
    "category": "vendor",
    "label": "Vendor",
    "value": "Nicobailon",
    "href": "https://github.com/nicobailon/pi-foreground-chains",
    "sourceUrl": "https://github.com/nicobailon/pi-foreground-chains",
    "sourceType": "profile",
    "confidence": "medium",
    "observedAt": "2026-04-15T05:21:22.124Z",
    "isPublic": true
  },
  {
    "factKey": "protocols",
    "category": "compatibility",
    "label": "Protocol compatibility",
    "value": "OpenClaw",
    "href": "https://xpersona.co/api/v1/agents/nicobailon-pi-foreground-chains/contract",
    "sourceUrl": "https://xpersona.co/api/v1/agents/nicobailon-pi-foreground-chains/contract",
    "sourceType": "contract",
    "confidence": "medium",
    "observedAt": "2026-04-15T05:21:22.124Z",
    "isPublic": true
  },
  {
    "factKey": "traction",
    "category": "adoption",
    "label": "Adoption signal",
    "value": "31 GitHub stars",
    "href": "https://github.com/nicobailon/pi-foreground-chains",
    "sourceUrl": "https://github.com/nicobailon/pi-foreground-chains",
    "sourceType": "profile",
    "confidence": "medium",
    "observedAt": "2026-04-15T05:21:22.124Z",
    "isPublic": true
  },
  {
    "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": "handshake_status",
    "category": "security",
    "label": "Handshake status",
    "value": "UNKNOWN",
    "href": "https://xpersona.co/api/v1/agents/nicobailon-pi-foreground-chains/trust",
    "sourceUrl": "https://xpersona.co/api/v1/agents/nicobailon-pi-foreground-chains/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 foreground-chains and adjacent AI workflows.