Agent Economy Report

Skill code audit

CAUTION version 2.0.4 · audited 2026-09-17

getnote @iswalle

This package is a set of agent instructions for operating the GetNote note service through the official `getnote` CLI. It installs the `@getnote/cli` npm package when missing, authenticates the user through a browser page, and then saves, searches, reads, organizes, tags, shares, updates, and deletes notes in the user's authorized account. The instructions require exit-code and JSON success checks and ask for confirmation before destructive actions, and they state that the skill does not collect or display full credentials. The main concerns are that it delegates broad account access and local credential storage to an unpinned external npm CLI, and that `getnote setup` can synchronize local skills. No hidden network destinations, obfuscated code, or credential exfiltration were observed.

Declared purpose通过官方 getnote CLI 连接得到大脑,完成浏览器授权、连接诊断、CLI 升级,以及保存、查询、搜索、整理和管理用户的真实笔记。
Observed behaviorThe package files are markdown instructions rather than standalone executable code. They direct an agent to install @getnote/cli through the platform when the getnote binary is missing, run getnote setup/auth login/doctor, and then use getnote commands for saving, listing, searching, reading, updating, tagging, sharing, and deleting notes and knowledge-base items. Long content may be read from local files or stdin, and the CLI performs network calls and stores login credentials locally. The instructions repeatedly require checking exit codes and success fields, preserving string IDs, and confirming destructive actions.
Verdict, rules onlySAFE
Verdict, AICAUTION
Final verdictCAUTION (never better than either pass)

Capabilities

capabilityvs purposedetail
networkneededThe skill instructs the agent to run getnote commands that access the GetNote API; SKILL.md line 24 says the official API reads or modifies authorized account data.
shellneededThe core behavior is executing getnote CLI commands and reading their JSON output; SKILL.md line 85 says all real operations are completed by the official getnote CLI.
filesystem_readneededSaving images uses user-provided local image paths, and long text may be passed with --content-file or --stdin (references/note.md lines 45 and 57).
filesystem_writeneededThe external CLI stores authorization information in its local config directory (SKILL.md line 25), and getnote setup can synchronize local domain skills (SKILL.md line 46).
credentialsneededThe skill handles browser authorization and local credential storage, but tells the agent not to request API keys, cookies, or Authorization, and not to display full credentials (SKILL.md lines 25 and 47).
install_packagesneededThe frontmatter declares installation of the npm package @getnote/cli when the getnote binary is missing (SKILL.md lines 9, 13, and 15).
browserneededLogin uses getnote auth login to open a browser authorization page for the user to confirm (SKILL.md line 47).

Findings

severityfinding
mediumInstalls external npm CLI package
The frontmatter installs the GetNote CLI from npm with no version pin. This delegates command execution to an external package that a user should review before trusting.
SKILL.md:13 package: "@getnote/cli"
mediumBroad account read/write access
The skill is designed to read and modify real notes, knowledge bases, tags, shares, and subscriptions in the authorized GetNote account.
SKILL.md:24 本 Skill 会按用户请求执行 `getnote` 命令,并通过得到大脑官方 API 读取或修改当前已授权账号的数据。
infoCredentials stored locally by external CLI
Browser login is used and the external CLI stores authorization data locally. The skill claims not to read, display, or forward full credentials.
SKILL.md:25 登录会打开浏览器授权页,并由 CLI 把授权信息保存在其本机配置目录;Skill 不读取、展示或转发完整凭证。
mediumgetnote setup can synchronize local skills
The external CLI may synchronize five domain skills on the local AI. The current standalone skill is excluded from being overwritten, but the operation still changes local skill content.
SKILL.md:46 执行 `getnote setup`,让 CLI 检测本机 AI、同步五个领域 Skill 并引导授权。当前独立 Skill 仍由平台管理,CLI 不覆盖它。
lowClaim inconsistent with getnote setup skill sync
This line says the skill will not modify other Skill files, but getnote setup in line 46 synchronizes five domain skills. The scope of local changes should be reviewed.
SKILL.md:27 只有用户明确要求升级时才执行 `getnote update`;不会自行运行 npm、安装其他软件、下载并覆盖本 Skill 或修改其他 Skill 文件。
lowUpdate phrase treated as full authorization
When the user says update GetNote, the skill proceeds with CLI upgrade, five-domain-skill sync, and diagnostics without asking the user to choose internal components.
SKILL.md:104 用户说“更新得到大脑”已经构成完整更新授权,不再让用户选择内部组件:
infoDestructive actions require confirmation
The instructions require confirmation before delete, overwrite, replace all tags, public share, and bulk remove actions.
SKILL.md:89 删除、覆盖、替换全部标签、公开分享和批量移出必须先确认。
mediumPublisher discloses supply-chain risk
The skill card itself states the external npm CLI is unpinned and can make persistent local authorization and skill changes.
skill-card.md:25 Risk: The release delegates installation, setup, and updates to an unpinned external npm CLI package that can make persistent local authorization and skill chan
infoLong note content may be read from files or stdin
Saving long notes may use a local content file or standard input, meaning the agent may need filesystem access.
references/note.md:45 短文本可作为参数传入。长文本、Markdown、含复杂引号或换行的内容必须使用 `--content-file` 或 `--stdin`,避免截断和转义损坏。
infoImage save uses local file paths
The skill instructs the agent to use the user-provided local image path, which requires reading a local file.
references/note.md:57 使用本轮用户明确给出的本地图片路径,不把文件名保存成文字,也不带上历史图片。

0 AI finding(s) were dropped because their file, line or quote did not match the package.

Network destinations in the code

domainservice ratingwhere
clawhub.ainot in the service indexskill-card.md:9
www.npmjs.comnot in the service indexskill-card.md:40

Other facts

Binaries invokedbash, node, npm
Environment variables readnone
Hard-coded walletsnone
Pipes a download to a shell0
eval / exec / subprocess0
base64 blobs0
File writes1
Persistence0

Files audited

filelinessha256
LICENSE21e4f2c00f20e17094…
SKILL.md108d428979b9f3b9ce1…
_meta.json6b3ebde5f7447305c…
references/auth.md651841f2ffcc378473…
references/kb.md858bd70c9757b40063…
references/note.md1099e2d05fe1a6cd3fc…
references/search.md59707690db243745dd…
references/tag.md57619ee0cd5f396842…
skill-card.md63cfa511fac5d1dc6a…

For agents

JSON: https://agenteconomy.report/k/getnote.audit.json · badge: https://agenteconomy.report/k/getnote.audited.svg · skill rating: /k/getnote · commission an audit of any skill: US$ 29 per version.

How this is computed

The complete published package of this exact version was downloaded from the registry and read statically; nothing was executed. A deterministic pass extracts network destinations, binaries, environment variables, writes, install commands, obfuscation markers, subprocesses and wallets, each with file and line. An AI then reads the whole package with those facts and writes the summary, the capabilities and the findings under a strict schema; every finding it produces must cite a file, a line and the exact text, or it is dropped. The final verdict is the worst of the two passes. The audit does not change the skill's trust tier (policy); the author may respond through the dispute channel and the response is published here. Commissioned by: the Agent Economy Report (free program: the 150 most downloaded skills, September 2026).