Skip to content
PluginStats

@procedures/claude-cli weekly downloads statistics

By procedures (3 listings) · npm · Claude Code

One turn of the Claude Code CLI as a detached process that writes stream-json to a file: start, follow, normalised events and cancel.

View on npm Fresh · Nov 3, 2026

@procedures/claude-cli has 4,063 recorded weekly downloads on npm, ranking #1436 of 2,762 tracked listings.

Weekly downloads
4,063
Official API · Nov 1, 2026
7-day growth
—
Insufficient history
30-day growth
—
Insufficient history
90-day growth
—
Insufficient history
Rank
#1436
Among tracked npm listings

About @procedures/claude-cli

@procedures/claude-cli

npm

npm install @procedures/claude-cli @procedures/client

One turn of the Claude Code CLI as a process that writes to a file. A host starts the turn, follows the file, gets normalised events and can stop the turn. The turn continues when the host stops, and a new host continues to read it.

A host registers the procedures with createRegistry(claudeCliModule), or with import "@procedures/claude-cli/register" for the global registry. The package root and ./module register nothing.

The procedures

ProcedureWhat it doesEffects
claude.startIt starts one turn as a detached process, and gives the process id and the output file.reads fs, network and process, writes fs, network, process and jobs
claude.readIt reads the new events of a turn from a byte offset, and gives the offset for the next read.reads fs and jobs
claude.followIt streams the events of a turn until the result, or until the process ends without a result.reads fs and jobs
claude.cancelIt stops the process tree of a turn by its process id.reads and writes jobs, destructive
  • The agent of a turn can read and change files, start programs and use the network. So claude.start writes process.
  • claude.cancel stops the process tree of the id that it gets. Give it only to callers that you trust.
  • claude.follow declares stream: { unbounded: true }, because a turn has no time limit.
import "@procedures/claude-cli/register";

const turn = await client.call(["claude", "start"], { prompt: "Summarise the open issues", cwd: "/work/project" });
for await (const { event } of client.stream({ service: "claude", operation: "follow" }, { outputFile: turn.outputFile, pid: turn.pid })) {
  if (event.type === "text") console.log(event.text);
  if (event.type === "result") console.log(event.sessionId, event.costUsd);
}

The turn

startTurn(options) starts this command, with argv and not through a shell:

claude [executableArgs] -p --output-format stream-json --verbose [args]
  • The prompt goes into a file, and the process reads it on stdin. The output and the errors go into the output file. The process appends to that file.
  • The process is detached, with no console window. On POSIX it has its own process group. The host holds no pipe to it, so a restart of the host does not stop it.
  • args holds the other arguments of the CLI, for example ["--resume", sessionId], ["--model", name] or ["--allowedTools", "Read"].
  • The function startTurn gives the full environment of the process in env. The default is the environment of the host. Remove the secrets that the turn does not need.
  • The input env of claude.start adds variables to the environment of the host.
  • The result has pid, outputFile, promptFile, offset (the start of this turn in the output file), command, args and startedAt. Keep pid, outputFile and offset to read or stop the turn later.

The events

normalizeLine(line) turns one line of stream-json into zero or more events. It is pure. The output file keeps each line unchanged, so a new version of the normaliser can read an old turn again.

EventThe fields
metasubtype, sessionId, model, cwd, tools, permissionMode
texttext: a text block of the assistant
text-deltatext: a part of a text block, with --include-partial-messages
thinkingtext: a thinking block. The CLI gives empty thinking blocks in -p mode, and the normaliser drops them.
tool-useid, name, input
tool-resulttoolUseId, output (as text), isError
resultsubtype, isError, text, sessionId, costUsd, durationMs, turns, usage, errors
logtext: a line that is not JSON. The CLI writes its errors and warnings as text.
errormessage: the follow gives it when the process ends without a result.

preview(value, max) gives a short text of a value, for a list of tool calls.

Read and follow

  • readTurn({ outputFile, offset, pid }) reads the complete lines after offset. A partial last line stays for the next read. When the process has ended, the function also reads a last line without a line end.
  • Each event has the byte offset after its line. Keep that offset, and a new host continues from it.
  • followTurn(options) reads the file again every 250 ms (pollMs). It stops after the result event. When the process has ended without a result, it gives an error event and stops.
  • Without pid, only the result or the signal stops the follow.

Cancel

cancelTurn(pid) stops the process tree of a turn, also a turn that a previous host started.

  • On Windows, it starts taskkill /T /F /PID <pid> through runCommand of @procedures/shell.
  • On POSIX, it sends SIGTERM to the process group, then to the process when the group does not exist.
  • It refuses the ids 0 and 1, and the ids of the host and its parent. A process that has ended gives stopped: false.

The claude program

findClaude(options) uses the first of these:

  1. The option or the input executable.
  2. The environment variable CLAUDE_BIN of the host.
  3. The PATH: claude, or claude.exe on Windows.
  4. The folders of the native installer: ~/.local/bin and ~/.claude/local.

A batch file (claude.cmd) does not start without a shell. On Windows, use the native claude.exe, or give node as executable and the path of cli.js in executableArgs.

The root of the files…

Description from the npm listing.

  • claude
  • claude-code
  • cli
  • stream-json
  • agent
  • procedures

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

@procedures/claude-cli weekly downloads on npm, last 90 days: 4,063 weekly downloads as of Nov 1, 2026.@procedures/claude-cliWeekly downloads on npm · Last 90 days4,063downloads / week3.6K3.8K4K4.2K4.4K4.6KAug 3Aug 18Sep 2Sep 17Oct 2Oct 17Nov 1downloads / weekNov 1, 2026 – Nov 1, 2026 · 1 observations · Updated Nov 1, 2026pluginstats.com
@procedures/claude-cli weekly downloads on npm, last 90 days: 4,063 weekly downloads as of Nov 1, 2026.

7/30/90-day growth

@procedures/claude-cli weekly downloads growth on npm: 7-day growth unavailable, 30-day growth unavailable, 90-day growth unavailable.@procedures/claude-cliWeekly downloads growth on npm4,063downloads / week now7-day growthinsufficient historyInsufficient history30-day growthinsufficient historyInsufficient history90-day growthinsufficient historyInsufficient historyGrowth vs. nearest observation to each baseline date · Updated Nov 1, 2026pluginstats.com
@procedures/claude-cli weekly downloads growth on npm: 7-day growth unavailable, 30-day growth unavailable, 90-day growth unavailable.

Ranking history

@procedures/claude-cli npm ranking history: currently #1436 (by weekly downloads).@procedures/claude-clinpm ranking · by weekly downloads · Last 90 days#1436current rank#1434#1435#1436#1437#1438Aug 5Aug 20Sep 4Sep 19Oct 4Oct 19Nov 3rankNov 3, 2026 – Nov 3, 2026 · 1 observations · Updated Nov 1, 2026pluginstats.com
@procedures/claude-cli npm ranking history: currently #1436 (by weekly downloads).

Listing placement

All npm2,762 listings · 139 pages · 1,382 shown · page 72, #17 (overall #1,437)
All npm: every listing in weekly downloads order

Listing placement

Claude Code419 listings · 21 pages · page 8, #5 (overall #145)
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 (1)
Recent weekly downloads observations for @procedures/claude-cli
Date (UTC)Weekly downloadsChange vs. previous
4,063—

Similar npm Claude Code plugins

All 20 @procedures/claude-cli alternatives

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/@procedures/claude-cli. First seen Nov 3, 2026; last successful collection Nov 3, 2026. See the methodology.