# io.github.BasilSkyWalk/parecode (npm · parecode)

Token-aware ripgrep code search and atomic multi-file edits for coding agents.

- Trust score: 77/100 (medium)
- Change this week: +35
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `parecode`: 77/100 (this document), [markdown](https://verifymcp.io/servers/basilskywalk-parecode/parecode.md), [page](https://verifymcp.io/servers/basilskywalk-parecode/parecode)

## Channel facts

- Registry: `npm`
- Package: `parecode`
- Version: `0.7.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (109 of 113), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (109 of 113), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 97/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to BasilSkyWalk/parecode).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 49 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 60/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 975 tokens (~325/item across 3 items; 3 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add basilskywalk-parecode -- npx -y parecode
```

### Codex

```bash
codex mcp add basilskywalk-parecode -- npx -y parecode
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "basilskywalk-parecode": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "parecode"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add basilskywalk-parecode --command npx --arg -y --arg parecode
```

### Hermes

```yaml
mcp_servers:
  basilskywalk-parecode:
    command: "npx"
    args: ["-y", "parecode"]
```

### Other

```json
{
  "mcpServers": {
    "basilskywalk-parecode": {
      "command": "npx",
      "args": [
        "-y",
        "parecode"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 77, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-02 (score 76, +69)

- [security improvement] Provenance: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Install scripts: unverified → pass
- [security improvement] Malware scan: unverified → pass
- [security] The attested source repository moved: BasilSkyWalk/parecode
- [functional regression] Security disclosure: fail → unverified
- [functional regression] Dependency health: partial → unverified
- [functional improvement] Schema quality: unverified → excellent
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] License: unverified → pass
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Stability: unverified → 0.23
- [functional] Licence: MIT

### 2026-08-01 (score 7, −11)

- [functional regression] Tool coverage: 100 → unverified
- [functional improvement] Dependency health: unverified → partial
- [functional] First check of Schema quality: unverified

### 2026-07-31 (score 18, −24)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-27 (score 42)

First indexed and scored.

## MCP tools (3)

### `ParecodeSearch` (~484 tokens)

Search the codebase with ripgrep and get matches plus surrounding context in ONE call — use instead of Grep/Glob-then-Read, a raw `rg`/`grep` in the shell, or re-reading the same file at different line ranges. Pass `pattern` as an array to run several regexes in parallel for flow tracing (e.g. ['HandleX','OnX','XClosed']); each match lists which `patterns` hit it. Overlapping or adjacent windows in a file are merged (gap ≤ contextLines), and the result carries one envelope-level `estimatedTokens` so you can budget before consuming. Read-only: to widen a match use ParecodeExpand, to change code use ParecodeEdit. Per-file content over ~2KB is dropped (its lines listed in `omittedLineRanges`) to protect context — widen those via ParecodeExpand instead of re-reading the file. Repeated calls in the same session are token-efficient: previously-returned windows return as `kind: 'reference'` placeholders. Watch the `warnings` field — a `pattern_directory_collision` almost always means narrow the pattern before retrying. Needs ripgrep on PATH (run `parecode doctor` if missing). In CodeGraph repos (.codegraph/), prefer codegraph_explore for broad 'how does X work?' questions; this stays best for targeted multi-pattern lookups.

Input parameters:

- `contextLines` (number): Number of context lines to include around matches. Defaults to 2. Also controls window-merge threshold within a file.
- `maxBytesPerFile` (number): Soft cap on bytes returned per file; above it, output is chunked around match centers and the trimmed lines are reported in omittedLineRanges (widen them with ParecodeExpand).
- `paths` (array): Directory or file paths to restrict the search. Defaults to the current working directory.
- `pattern` (required): Ripgrep regex pattern, or an array of patterns to dispatch in parallel. Each match reports which input pattern(s) contributed via 'patterns'.
- `relatedSymbols` (boolean): Opt-in: scan each match's content for likely related symbols (Handle<X>, On<X>, <X>Handler, <X>Listener, <X>Closed/Completed/Started). Returns deduped, lexically sorted, capped at 10 per match.

### `ParecodeEdit` (~254 tokens)

Apply many edits across many files in one call — the edit counterpart to ParecodeSearch/ParecodeExpand. Prefer over native Edit/MultiEdit for 2+ edits to one file, edits across files (files apply in parallel), or one logical revision that should land together. Each item is a line-range op (replaceLines or insertAfter, guarded by an `expect` anchor) or a string-patch op (oldString/newString; fuzzy:true tolerates whitespace drift, 'aggressive' also normalizes Unicode look-alikes). Strongly prefer line-range ops when you know the target lines — e.g. the line numbers ParecodeSearch returned: a line number plus a short `expect` anchor skips constructing exact-match snippets, so recurring text (a repeated call) can't trigger the multiple-match errors and retries an oldString needs extra context to avoid. Reserve oldString for edits with no known lines. Atomicity is per file, NOT cross-file: within a file all ops apply or none, other files commit independently — check each result's status. Writes are atomic with mtime conflict detection; fuzzy fails closed on low confidence or ambiguity.

Input parameters:

- `edits` (array, required): List of edit operations to perform

### `ParecodeExpand` (~237 tokens)

Read a specific line range of a file — the natural follow-up to a ParecodeSearch match or an `omittedLineRanges` entry it returned. Use instead of a full-file Read (or Read with offset/limit) when you already know roughly where the code lives and just need more lines around it. Give the known (file, startLine, endLine) and optionally pad with contextBefore/contextAfter; out-of-range lines are clamped silently and the returned `lineRange` reflects the actual slice. Reports `estimatedTokens` in the same form as ParecodeSearch so you can budget before consuming. Read-only — to change code use ParecodeEdit.

Input parameters:

- `contextAfter` (number): Additional lines to include after endLine. Default 0.
- `contextBefore` (number): Additional lines to include before startLine. Default 0.
- `endLine` (number, required): Ending line (1-based, inclusive)
- `file` (string, required): Path to the file to read (typically the `file` from a ParecodeSearch match).
- `startLine` (number, required): Starting line (1-based, inclusive)

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/basilskywalk-parecode/parecode#diagnostics

## Score history

- 2026-08-03: 77
- 2026-08-02: 76
- 2026-08-01: 7
- 2026-07-31: 18
- 2026-07-30: 42
- 2026-07-28: 42
- 2026-07-27: 42

## Links

- npm package: https://www.npmjs.com/package/parecode
- Socket report: https://socket.dev/npm/package/parecode
- Repository: https://github.com/BasilSkyWalk/parecode
- Changelog RSS feed: https://verifymcp.io/servers/basilskywalk-parecode/parecode/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/basilskywalk-parecode/parecode/changelog.json
- HTML version of this page: https://verifymcp.io/servers/basilskywalk-parecode/parecode
