Skip to content
PluginStats

@interactive-inc/claude-funnel weekly downloads statistics

By interactive-inc · npm · Claude Code

Hub CLI that routes external events (Slack / GitHub / Discord) to Claude Code agents through subscription channels over MCP.

View on npm Fresh · Oct 18, 2026

@interactive-inc/claude-funnel has 1,535 recorded weekly downloads on npm, a decrease of 41.5% over the past 30 days, ranking #1371 of 2,322 tracked listings.

Weekly downloads
1,535
Official API · Oct 18, 2026
7-day growth
-45.0%
-1.3K weekly downloads
30-day growth
-41.5%
-1.1K weekly downloads
90-day growth
+31.1%
+364 weekly downloads
Rank
#1371
Among tracked npm listings

About @interactive-inc/claude-funnel

npm license

Open Claude Funnel

Slack のメンション、GitHub の Issue、毎朝 9 時の cron。こうした外部の出来事を Claude Code エージェントに届け、エージェントの返信を同じ経路で外へ返すハブ。

   Slack    ─┐                       ┌─→  Claude エージェント A
   GitHub   ─┤                       │
   Discord  ─┼──→  funnel daemon  ──→┼─→  Claude エージェント B
   cron     ─┘                       │
                                     └─→  Claude エージェント C

   funnel daemon が外部接続を1か所に常駐保持し、購読中の各エージェントへ配信する。
   返信は同じコネクタを逆向きに通る(エージェント → MCP tool → 外部サービス)。

コマンドは funnel(短縮形 fnl)。Claude Code を中心に作っているが、アーキテクチャはエージェント非依存。現在のバージョンは 0.53.0。

funnel がやること

  • 外部の出来事(チャットのメンション、新しい Issue、cron の tick)を、起動中のエージェントセッションにそのまま届ける
  • エージェントの返信を受信と同じコネクタで外へ返す。bash サブシェルも CLI のコールドスタートもなく、実質同期
  • 外部接続は常駐デーモンが 1 か所で持つ。エージェントを何個起こしても接続は 1 回だけ。ヘルスチェックと自動再起動で監視する
  • 複数のエージェントで 1 つのソースを共有(fanout)するか、ワーカーとして分担(exclusive)するかを選べる

対応コネクタは Slack(Socket Mode)、GitHub(gh 経由の poll)、Discord(Gateway)、cron スケジュールの 4 種類。

必要なもの

  • Bun 1.3 以降
  • Claude Code CLI
  • 接続する外部サービスのトークンまたは CLI(Slack アプリ、gh 認証、Discord bot など)

リポジトリで使う(推奨)

設定を funnel.json としてリポジトリに commit し、チームで共有・バージョン管理できる。グローバルに何も入れないので、リポジトリの lock ファイルでバージョンが固定される。

インストール
bun add -D @interactive-inc/claude-funnel

これで bunx funnel(または bunx fnl)が使える。

設定

リポジトリ直下に funnel.json を置く。transport(channels[])と起動レシピ(profiles[])を宣言する。

{
  "$schema": "./node_modules/@interactive-inc/claude-funnel/funnel.schema.json",
  "channels": [
    {
      "name": "ops",
      "connectors": [{ "type": "slack", "name": "my-slack" }]
    },
    {
      "name": "review"
    }
  ],
  "profiles": [
    {
      "name": "pm",
      "channel": "ops",
      "options": ["--brief", "--agent", "pm"],
      "env": { "ANTHROPIC_MODEL": "claude-sonnet-4-6" },
      "resume": true
    },
    {
      "name": "reviewer",
      "channel": "review",
      "options": ["--agent", "reviewer"]
    }
  ]
}

channels は購読箱(transport)。各チャネルは connectors を持てる。connectors 配列はそのチャネルの真実の源で、起動時に宣言にないコネクタは削除され、足りないコネクタは作られる(名前で照合)。connectors フィールド自体が無ければ既存のコネクタはそのまま残る。

profiles は起動レシピ。各プロファイルは一意な name を持ち、channel でチャネルを名前指定でバインドし、次を持つ。

  • options — claude の argv 先頭に積む(ユーザーが渡す CLI 引数はその後ろ。--brief / --agent <name> / --model <name> などに使う)
  • env — 起動する claude プロセスに被せる(衝突時は起動シェルの process.env が勝つ)
  • resume — claude セッションの再利用可否

同じチャネルに複数のプロファイルをバインドしてよく、name で区別する。チャネル側がプロファイルを選ぶことはない(プロファイルがチャネルを bind する一方向)。

トークンは funnel.json に書かない(スキーマが弾く)。リポジトリ内で次のどちらか。

  • fnl channels ops connectors set my-slack --bot-token=xoxb-... --app-token=xapp-... で設定する
  • 省略して fnl claude 起動時の TTY プロンプトで答える。次回以降は引き継がれ再度聞かれない

いずれもトークンは ~/.funnel/projects/<id>/settings.json(リポジトリ外)に保存され、commit されない。

funnel.json に書けないものが 2 つある。delivery モード(fanout / exclusive)は CLI で設定する(funnel.json のチャネルは fanout 固定)。schedule の cron エントリも CLI で足す(funnel.json には schedule コネクタの存在だけ宣言できる)。

セッション再開には resume の明示が要る。funnel.json の resume はデフォルト値を持たず、書かないと再開されない(未指定が false 扱いになる)。前回の claude セッションを引き継ぎたいなら必ず "resume": true を書く。再開のための session id は funnel が ~/.funnel/projects/<id>/claude/local-sessions.json に自動で保存・読み出しするので、funnel.json には書かない。

使い方
bunx fnl gateway start              # 常駐デーモンを起動(外部接続を持つ)
bunx fnl claude --profile pm        # cd + チャネルのバインド + レシピを一発で

--profile なしの bunx fnl claude は、funnel.json の先頭チャネルで起動する。--channel review で名前指定すると、そのチャネルを transport だけバインドして起動する(レシピなし)。

これでコネクタが見たイベントが、起動中のエージェントセッションに届く。エージェントは my-slack という MCP ツールで返信できる。

cron 起動を足す(schedule コネクタを宣言したうえで、エントリは CLI で)。

bunx fnl channels ops connectors add daily --type=schedule
bunx fnl channels ops connectors daily schedules add morning \
    --cron="0 9 * * *" --prompt="morning standup"
bunx fnl channels ops connectors daily schedules add release \
    --run-at="2026-08-01T09:00:00+09:00" --prompt="release check"

cron は一致する tick ごと、一回実行は run-at 以降の最初の tick でプロンプトを発火する。発火済みの一回実行は state に記録されるため、設定削除の hook が失敗しても再発火しない。デーモン停止中に逃した枠は次回起動時に catch-up する(meta.catchup = "true"。cron の探索は最大 24 時間)。

cron は標準の 5 フィールド規則に従う。day-of-month と day-of-week を両方限定した場合は OR、日曜は 0 と 7 の両方を受け付ける。不正な式は登録時に拒否される。

funnel.json を持つリポジトリは自分自身にスコープされる。初回起動時に funnel は funnel.json の先頭へ不変の id(uuid) を書き戻し、以降このリポジトリの funnel state を ~/.funnel/projects/<id>/ 配下に隔離する。グローバルの ~/.funnel には一切触らない(イベントログと一時ファイルだけが /tmp/funnel/ で共有)。このスコープはリポジトリ内で実行する全 CLI コマンドに効く。

トップレベルの $schema(任意)は JSON Schema を指し、エディタの検証と補完が効く。ローカルインストールでは ./node_modules/@interactive-inc/claude-funnel/funnel.schema.json を推奨する(ネットワーク往復なし)。https://interactive-inc.github.io/open-claude-funnel/funnel.schema.json でも公開しており、fnl schema > funnel.schema.json でローカルコピーを再生成できる。

グローバルで使う

触るすべてのリポジトリで 1 つの CLI を共有したいときはグローバルに入れる。設定は funnel.json ではなく CLI で組み、~/.funnel/settings.json(グローバル)に保存される。

bun add -g @interactive-inc/claude-funnel

これで funnel / fnl がどこでも使える。ソース 1 つをエージェント 1 つにつなぐ最短手順。

fnl channels add ops
fnl channels ops connectors add my-slack --type=slack \
    --bot-token=xoxb-... --app-token=xapp-...
fnl gateway start
fnl claude --channel ops

delivery モードはチャネル作成時に選ぶ。tap=all は廃止されており、WS 購読は ?id=<uuid> の targeted delivery のみ。

fnl channels add reviews                       # fanout(デフォルト): 全エージェントが全イベント
fnl channels add ingest --delivery=exclusive   # exclusive: 1 イベントを 1 エージェントが round-robin

ワンコマンド起動のためにプロファイルとして保存する。プロファイルは起動レシピを持つ。

fnl profiles add cto --path=/repo/myapp --channel=ops --agent=pm --options="--brief"
fnl claude --profile cto

公開パッケージはビルド済みの dist/ を同梱しているので、どちらのインストールでも funnel / fnl がすぐ使える(post-install ステップなし)。リポジトリ単位で入れたなら、以降の fnl は bunx funnel に読み替える。…

Description from the npm listing.

  • bun
  • claude
  • claude-code
  • cli
  • discord
  • github
  • mcp
  • slack

README badge

Show your rank in a README or on your website. The badge updates automatically.

Charts

Images: 30d · 1y · all time · 1600×900 dark

Adoption over time

@interactive-inc/claude-funnel weekly downloads on npm, last 90 days: 1,535 weekly downloads as of Oct 18, 2026, +31.1% over 90 days.@interactive-inc/claude-funnelWeekly downloads on npm · Last 90 days1,535downloads / week+31.1% over 90 days01K2K3K4K5K6KJul 20Aug 4Aug 19Sep 3Sep 18Oct 3Oct 18downloads / weekobservedarchived (Internet Archive)no observationsJul 22, 2026 – Oct 18, 2026 · 89 observations · Updated Oc…pluginstats.com
@interactive-inc/claude-funnel weekly downloads on npm, last 90 days: 1,535 weekly downloads as of Oct 18, 2026, +31.1% over 90 days.

7/30/90-day growth

@interactive-inc/claude-funnel weekly downloads growth on npm: -45.0% over 7 days, -41.5% over 30 days, +31.1% over 90 days.@interactive-inc/claude-funnelWeekly downloads growth on npm1,535downloads / week now7-day growth-1,254 weekly downloads-45.0%30-day growth-1,091 weekly downloads-41.5%90-day growth+364 weekly downloads+31.1%Growth vs. nearest observation to each baseline date · Updated Oct 18, 2026pluginstats.com
@interactive-inc/claude-funnel weekly downloads growth on npm: -45.0% over 7 days, -41.5% over 30 days, +31.1% over 90 days.

Ranking history

@interactive-inc/claude-funnel npm ranking history: currently #1371 (by weekly downloads).@interactive-inc/claude-funnelnpm ranking · by weekly downloads · Last 90 days#1371current rank#400#600#800#1000#1200#1400#1600Jul 22Aug 6Aug 21Sep 5Sep 20Oct 5Oct 20rankOct 17, 2026 – Oct 20, 2026 · 4 observations · Updated Oct 18, 2026pluginstats.com
@interactive-inc/claude-funnel npm ranking history: currently #1371 (by weekly downloads).

Listing placement

All npm2,320 listings · 116 pages · 1,162 shown · page 69, #14 (overall #1,374)
All npm: every listing in weekly downloads order

Listing placement

Claude Code255 listings · 13 pages · page 8, #13 (overall #153)
Claude Code: every listing in weekly downloads order

Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.

Each band is one page of 20. Weekly downloads on a linear scale. Placement is projected from weekly downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.

Recent observations

Full history (544)
Recent weekly downloads observations for @interactive-inc/claude-funnel
Date (UTC)Weekly downloadsChange vs. previous
1,535+725
810-380
1,190-600
1,790-271
2,061-373
2,4340
2,434-355
2,789+97
2,692-573
3,265+462
2,803+136
2,667+207
2,460-1.4K
3,885—

Data source

Weekly downloads (trailing 7 complete days) come from the official npm downloads API. Downloads include CI and mirrors and are not equivalent to installs or users. npm publishes no ratings.

Listing: https://www.npmjs.com/package/@interactive-inc/claude-funnel. First seen Oct 16, 2026; last successful collection Oct 20, 2026. See the methodology.