npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@gitcrosstrack/iflow-openclaw-plugin

v1.0.4

Published

An OpenClaw plugin that orchestrates iFlow sessions as managed background processes. Launch, monitor, and control iFlow AI agents directly from your AI gateway.

Readme

OpenClaw plugin to orchestrate iFlow

Orchestrate iFlow sessions as managed background processes from any OpenClaw channel.

Launch, monitor, and interact with multiple iFlow sessions directly from DingTalk, or any OpenClaw-supported platform — without leaving your chat interface.

Acknowledgement: This plugin is inspired by and based on openclaw-claude-code-plugin by @alizarion. The architecture, session management model, and foreground/background design are adapted from that project, with iFlow SDK replacing the Claude Code SDK as the underlying AI engine.


Quick Start

1. Install the DingTalk channel plugin

openclaw plugins install @soimy/dingtalk
openclaw gateway restart

2. Install this plugin

Option A — Install from GitHub (recommended)

openclaw plugins install @gitcrosstrack/iflow-openclaw-plugin

Option B — Install locally (for development)

git clone https://github.com/gitcrosstrack/iflow-openclaw-plugin.git
cd iflow-openclaw-plugin
npm install
npm run build
openclaw plugins install -l .

3. Configure DingTalk channel + plugin notifications

Add to ~/.openclaw/openclaw.json:

{
  "plugins": {
    "enabled": true,
    "allow": ["dingtalk", "openclaw-iflow-plugin"]
  },
  "channels": {
    "dingtalk": {
      "enabled": true,
      "clientId": "dingxxxxxx",
      "clientSecret": "your-app-secret",
      "robotCode": "dingxxxxxx",
      "corpId": "dingxxxxxx",
      "agentId": "123456789",
      "dmPolicy": "open",
      "messageType": "markdown"
    }
  },
  "plugins": {
    "entries": {
      "openclaw-iflow-plugin": {
        "enabled": true,
        "config": {
          "fallbackChannel": "dingtalk|your-dingtalk-userid",
          "maxSessions": 5
        }
      }
    }
  }
}

your-dingtalk-userid 是你的钉钉 userId,可在钉钉开发者后台或机器人收到消息的日志中获取。

4. Install the orchestration skill

Copy the skill to your OpenClaw workspace:

cp -r skills/iflow-orchestration ~/.openclaw/workspace/skills/
openclaw gateway restart

This installs the iFlow orchestration skill, which teaches your AI agent how to correctly use this plugin — including the critical rule that iflow_respond must only be called when iFlow explicitly signals it is waiting for input.

5. Launch your first session

/iflow 生成一个贪吃蛇游戏

Features

  • Multi-session management — Run multiple concurrent iFlow sessions, each with a unique ID and human-readable name
  • Foreground / background model — Sessions run in background by default; bring any to foreground to stream output in real time, with catchup of missed output
  • Real-time notifications — Get notified on completion, failure, or when iFlow is waiting for input
  • Multi-turn conversations — Send follow-up messages to a running session
  • Session resume — Resume any completed session or restart it with a new prompt
  • Multi-agent support — Route notifications to the correct agent/chat via workspace-based channel mapping
  • Automatic cleanup — Completed sessions garbage-collected after 1 hour

Tools

| Tool | Description | |------|-------------| | iflow_launch | Start a new iFlow session in background | | iflow_respond | Send a follow-up message to a running session | | iflow_fg | Bring a session to foreground — stream output in real time | | iflow_bg | Send a session back to background — stop streaming | | iflow_kill | Terminate a running session | | iflow_output | Read buffered output from a session | | iflow_sessions | List all sessions with status and progress | | iflow_stats | Show usage metrics (counts, durations) |

All tools are also available as chat commands (/iflow, /iflow_fg, etc.) and as gateway RPC methods.


Quick Usage

# Launch a session
/iflow Fix the authentication bug in src/auth.ts
/iflow --name fix-auth Fix the authentication bug

# Monitor
/iflow_sessions
/iflow_fg fix-auth
/iflow_bg fix-auth

# Interact
/iflow_respond fix-auth Also add unit tests

# Lifecycle
/iflow_kill fix-auth
/iflow_resume fix-auth Add error handling
/iflow_stats

Notifications

The plugin sends real-time notifications to your chat based on session lifecycle events:

| Emoji | Event | Description | |-------|-------|-------------| | ↩️ | Launched | Session started successfully | | 🔔 | iFlow asks | Session is waiting for user input — includes output preview | | ↩️ | Responded | Follow-up message delivered to session | | ✅ | Completed | Session finished successfully | | ❌ | Failed | Session encountered an error | | ⛔ | Killed | Session was manually terminated |

Foreground sessions stream full output in real time. Background sessions only send lifecycle notifications.


Configuration

Set values in ~/.openclaw/openclaw.json under plugins.entries["openclaw-iflow-plugin"].config.

Parameters

| Option | Type | Default | Description | |--------|------|---------|-------------| | agentChannels | object | — | Map workdir paths → notification channels | | fallbackChannel | string | — | Default channel when no workspace match found | | maxSessions | number | 5 | Maximum concurrent sessions | | maxAutoResponds | number | 10 | Max consecutive auto-responds before requiring user input | | iflowTimeout | number | 300000 | Default iFlow session timeout in milliseconds | | permissionMode | string | "auto" | "auto" / "manual" / "selective" | | skipSafetyChecks | boolean | false | Skip pre-launch safety guards (for dev/testing only) | | safetyNetIdleSeconds | number | 600 | Seconds of no output before session is considered waiting for input |

Example

{
  "plugins": {
    "entries": {
      "openclaw-iflow-plugin": {
        "enabled": true,
        "config": {
          "maxSessions": 3,
          "iflowTimeout": 600000,
          "permissionMode": "auto",
          "fallbackChannel": "dingtalk|your-dingtalk-userid",
          "agentChannels": {
            "/home/user/agent-main": "dingtalk|your-dingtalk-userid",
            "/home/user/agent-seo": "dingtalk|another-dingtalk-userid"
          }
        }
      }
    }
  }
}

iFlow SDK

This plugin uses the iFlow TypeScript SDK (@iflow-ai/iflow-cli-sdk) to interact with iFlow CLI.

System Requirements

  • Node.js 22.0 or higher
  • iFlow CLI 0.2.24 or higher
  • OpenClaw gateway

iFlow SDK Message Types

| Message Type | Description | |---|---| | ASSISTANT | AI assistant text response (chunk.text) | | TOOL_CALL | Tool execution (toolName, status) | | PLAN | Structured task plan (entries) | | TASK_FINISH | Task completion signal (stopReason) | | ERROR | Error message (code, message) |


Gateway RPC Methods

| Method | Description | |--------|-------------| | iflow.launch | Launch a session | | iflow.sessions | List sessions | | iflow.kill | Terminate a session | | iflow.output | Read session output | | iflow.respond | Send a message to a session | | iflow.stats | Get usage statistics |


Architecture

index.ts                    ← Plugin entry point (register tools, commands, service)
src/
  types.ts                  ← Core type definitions
  shared.ts                 ← Global singletons & utility functions
  session.ts                ← Single iFlow session lifecycle (IFlowClient wrapper)
  session-manager.ts        ← Multi-session management, notifications, IPC wake
  notifications.ts          ← NotificationRouter (foreground streaming, debounce)
  gateway.ts                ← Gateway RPC method registration
  tools/                    ← 8 OpenClaw tools (factory pattern)
    iflow-launch.ts
    iflow-respond.ts
    iflow-fg.ts
    iflow-bg.ts
    iflow-kill.ts
    iflow-output.ts
    iflow-sessions.ts
    iflow-stats.ts
  commands/                 ← 8 chat commands
    iflow.ts
    iflow-sessions.ts
    iflow-kill.ts
    iflow-fg.ts
    iflow-bg.ts
    iflow-respond.ts
    iflow-stats.ts
    iflow-resume.ts

License

MIT