preflight

https://github.com/kneelinghorse/reasonbook

reasonbook

Risky

Score 59 / 100 · 80 files read · 0 critical, 0 high, 8 medium, 5 low findings

Report 0740e047d092c1d1 · first scanned 2026-10-28 · scanned 1× · keyed to the exact package contents, so this link always shows this version

Subscores

credentials90
exfiltration92
execution52
injection92
obfuscation100
files100

100 is clean. Deductions come only from the cited findings below.

Findings

mediumCode contacts agent-plugins.org, which the documentation never mentions
(package) · line 1 · rule M3
agent-plugins.org
mediumInstructions involve running commands with sudo
CHANGELOG.md · line 700 · rule M6
otes, after `run`, `sudo`, a setting or a shell operator, or in a quoted server entry. Prose such as "the cmos-mcp review ca
mediumCan run shell commands from code
docs/reviewer/sample.cjs · line 7 · rule M1
c } = require('node:child_process'); const { createInterface } = require('node:readline'); async function main() { if (process.
mediumRuns a command automatically at install time (prepare)
package.json · line 1 · rule M4
prepare: husky
mediumCan run shell commands from code
plugins/reasonbook-chat/server/install-state.mjs · line 8 · rule M1
wnSync } from 'node:child_process'; export const PACKAGE_NAME = '@aquex/reasonbook'; /** The package's folder under node_modules,
mediumCan run shell commands from code
plugins/reasonbook-chat/server/install-worker.mjs · line 7 · rule M1
wnSync } from 'node:child_process'; import { COMMAND, createContext, PACKAGE_DIR, validateInstall, validatePackage, wr
mediumCan run shell commands from code
plugins/reasonbook-chat/server/installing-server.mjs · line 4 · rule M1
spawn } from 'node:child_process'; import { randomUUID } from 'node:crypto'; import { createInterface } from 'node:readline'; imp
mediumCan run shell commands from code
plugins/reasonbook-chat/server/package-manager.mjs · line 6 · rule M1
spawn } from 'node:child_process'; export function packageManager( name, args, { execPath = process.execPath, platform = p
lowReads named environment variables (normal for API keys; listed in the permission summary)
docs/reviewer/sample.cjs · line 27 · rule L1
t env = { PATH: process.env.PATH, RBOOK_CONFIG_DIR: path.join(root, 'config'), RBOOK_CHECKPOINT_SYNC: 'off', RBOOK
lowReads named environment variables (normal for API keys; listed in the permission summary)
plugins/reasonbook-chat/server/install-state.mjs · line 17 · rule L1
nfigDirectory(env = process.env) { return path.resolve(resolveConfigDirectory(env)); } export function readPluginVersion(plugin
lowReads named environment variables (normal for API keys; listed in the permission summary)
plugins/reasonbook-chat/server/install-worker.mjs · line 37 · rule L1
env: { ...process.env, ...npm.env, PATH: path.dirname(process.execPath) + path.delimiter + (process.env.PATH
lowReads named environment variables (normal for API keys; listed in the permission summary)
plugins/reasonbook-chat/server/installing-server.mjs · line 12 · rule L1
ctx, { env = process.env, input = process.stdin, output = process.stdout, writeError = (text) => process.stderr
lowReads named environment variables (normal for API keys; listed in the permission summary)
plugins/reasonbook-chat/server/legacy-compat.mjs · line 8 · rule L1
Setting(name, env = process.env) { const suffix = name.replace(/^(?:RBOOK|CMOS)_/, ''); return env[`RBOOK_${suffix}`] ?? env[`

Permission surface

Network endpoints
agent-plugins.orgcmos-mcp.comcmos.aquex.aicode.claude.comcode.visualstudio.comcursor.comdevelopers.openai.comdocs.devin.aidocs.github.comgithub.comimg.shields.iokeepachangelog.comlearn.chatgpt.comraw.githubusercontent.comreasonbook.airender.comsemver.orgstatic.modelcontextprotocol.iowww.npmjs.com
Environment read
PATH
Shell execution
yes — code or scripts can run shell commands
Install hooks
prepare: husky
Credential material
Reads named environment variables (normal for API keys; listed in the permission summary)

Provenance

Source
GitHub
Repository
kneelinghorse/reasonbook
Owner
kneelinghorse
Stars
0
Forks
0
Repo created
2026-06-08
Last push
2026-10-27
License
Apache-2.0

Watch this package

Interest list only. We store the address and this report link, nothing else. No mail is sent in v1.

Share this report: https://preflight.orbitaldeskllc.com/r/0740e047d092c1d1