Trust signals
Why this verdict
PkgRadar discounts a release’s score when public reputation argues against novel malware. The verdict above already reflects these — the panel just explains what was applied.
- Weekly downloads
- 666
- Versions published
- 119
- First published
- Feb 2026
- Publisher
- lucy.cl
Recommended action
Review before promotingMixed signals: the package has indicators worth reading before allowing the update in automated dependency flows.
Block this release in CIcurl · GitHub Actions
Fail the build when this package version is added or upgraded. Replace $PKGRADAR_TOKEN with a Pro / Team API key from your dashboard.
curl -fsS https://pkgradar.com/gate/npm \
-H "Authorization: Bearer $PKGRADAR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"specs":["@pencil-agent/[email protected]"],"fail_on":"review"}'GitHub Actions step:
- name: PkgRadar gate
run: |
curl -fsS https://pkgradar.com/gate/npm \
-H "Authorization: Bearer ${{ secrets.PKGRADAR_TOKEN }}" \
-H "Content-Type: application/json" \
-d '{"specs":["@pencil-agent/[email protected]"],"fail_on":"review"}'Why flagged
What the scanner saw
Remote Payload: matched "curl "
Not observed: package install, lifecycle script execution, or sandbox execution. PkgRadar only inspects on-disk artifacts.
Availability ledger
available
Status history (1 event)
- new → available · risk review · score 22 · status changed
Evidence
Static findings
3 static · 0 from release diff · showing high-signal first.
| Severity | Kind | Path | Detail | Points |
|---|---|---|---|---|
| medium | Remote Payload | package/dist/extensions/builtin/browser/src/browser_harness/admin.py | matched "curl " | 12 |
Show all 3 findings (low-signal and informational)
| Severity | Kind | Path | Detail | Points |
|---|---|---|---|---|
| medium | Remote Payload | package/dist/extensions/builtin/browser/src/browser_harness/admin.py | matched "curl " | 12 |
| low | Credential file access | package/dist/cli/args.js | matched "AWS_ACCESS_KEY" | 5 |
| low | Credential file access | package/dist/extensions/builtin/security-audit/interface.js | matched ".ssh/" | 5 |
Manifest
Package metadata
Scripts35
benchmarknode scripts/startup-benchmark.cjsbenchmark:comparenode scripts/startup-benchmark.cjs --baseline .benchmarks/baseline.jsonbenchmark:savenode scripts/startup-benchmark.cjs --output .benchmarks/baseline.jsonbuildnpm run clean:dist && npm run build:deps && tsc -p tsconfig.build.json && npm run copy:theme:json && npm run copy:assets && npm run build:metabuild:depsnpm run build --prefix packages/extension-sdk && npm run build --prefix core/lib/ai && npm run build --prefix core/lib/agent-core && npm run build --prefix core/lib/tuibuild:metanode scripts/generate-build-meta.jsbuild:releasenpm run generate-models --prefix core/lib/ai && npm run buildchangelognode scripts/generate-changelog.jsclean:distnode -e "require('fs').rmSync('dist',{recursive:true,force:true})"copy:assetsnode scripts/copy-assets.jscopy:theme:jsonnode -e "const fs=require('fs');const p=require('path');const d='dist/modes/interactive/theme';if(!fs.existsSync(d))fs.mkdirSync(d,{recursive:true});fs.readdirSync('modes/interactive/theme').forEach(f=>{if(f.endsWith('.json'))fs.copyFileSync(p.join('modes/interactive/theme',f),p.join(d,f))})"devtsx cli.tspostversiongit pushprepublishOnlynpm run build:releasereleasenpm version patch && npm publishstartnpx cross-env NODE_ENV=production node --no-deprecation dist/cli.jstest:commandsnode --test --import tsx test/slash-command-catalog.test.ts test/extension-command-completions.test.ts test/interactive-slash-command-arguments.test.ts test/rpc-command-catalog.test.tstest:interactive-memory-notifynode --test --import tsx test/interactive-memory-notify.test.ts test/session-manager-header.test.tstest:plannode --test --import tsx test/plan-mode.test.tstest:presencenode --test --import tsx test/presence-opening.test.tstest:securitynode --test --import tsx test/security-audit.test.tstest:subagentnode --test --import tsx test/subagent-parser.test.ts test/worktree-manager.test.ts test/bash-sandbox.test.tstest:teamnode --test --import tsx test/team-parser.test.ts test/team-runtime.test.tstest:toolsnode --test --import tsx test/workspace-write-guard.test.ts test/read-tool.test.ts test/tool-window-validation.test.ts test/bash-sandbox.test.tstest:utilsnode --test --import tsx test/logger.test.tsupdate-modelsnpm run generate-models --prefix core/lib/aiverify:dipnode --import tsx scripts/verify-dip.tsverify:qualitynode --import tsx scripts/verify-quality.tsversionnpm run changelog && git add CHANGELOG.mdwatchtsc --watch- …and 5 more.
Dependencies33
@agentclientprotocol/sdk^0.16.1@anthropic-ai/sdk^0.73.0@aws-sdk/client-bedrock-runtime^3.983.0@google/genai^1.40.0@mariozechner/clipboard^0.3.2@mariozechner/jiti^2.6.2@mistralai/mistralai1.10.0@pencil-agent/mem-core^1.1.0@pencil-agent/soul-core^0.1.0@silvia-odwyer/photon-node^0.3.4@sinclair/typebox^0.34.41ajv^8.17.1ajv-formats^3.0.1chalk^5.5.0cli-highlight^2.1.11diff^8.0.2extract-zip^2.0.1file-type^21.1.1get-east-asian-width^1.3.0glob^13.0.1hosted-git-info^9.0.2ignore^7.0.5marked^15.0.12mime-types^3.0.1minimatch^10.1.1openai6.10.0partial-json^0.1.7proper-lockfile^4.1.2proxy-agent^6.5.0undici^7.19.1- …and 3 more.
Optional dependencies1
koffi^2.9.0