omit@0.9.0
CAUTION· install onlyPublisher claims: "Omit needless code. Editorial discipline for AI coding agents: draft less, cite everything, cut last: enforced by hooks, a pre-commit gate, and a PR bot, whatever agent writes the code." Observed in sandbox: no network, touches nothing outside the project, writes no memory.
Coverage
Nothing executable in the bundle ran; the trace covers the install step only.- Tested
- every file read, file written and host contacted by what ran
- Not tested
- use of the skill by an agent
Is [email protected] safe to install?
KillerSkills ran it in the KillerSkills honeypot sandbox (1 scenario; nothing executable in the bundle ran; the trace covers the install step only) on 2026-11-14 and scored it 75/100 (Caution). It is not known to be malicious, but it has behaviour or code a security policy should decide on before install. Notable findings: Access to sensitive file paths; Access to sensitive file paths; Access to sensitive file paths. Summary: no network, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 0 s · 1 scenarios · 0 deviationsStatic findings
console.log(JSON.stringify({ systemMessage: 'omit: context guard could not complete; original output was not replaced.' }))Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.// expansion at their top level (`> .claude/set*.json`), and the kill switches.Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.// would match "env" inside a filename like ".env" (a "." IS a \b boundary).Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// The binary is missing, not the lint clean: npx exits nonzero and says soFix: Pin versions and sources; vendor anything fetched at install time.console.log(' verified against Codex\'s documented schema: command, leak and tamper sentinels run on Bash commands (same tool_input.command shape as Claude Code)')Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.const gateCmd = onPath ? 'omit gate' : `npx -y @sriinnu/omit@${version} gate`Fix: Pin versions and sources; vendor anything fetched at install time.const GATE = /(?:npx -y @sriinnu\/omit(?:@[\w.-]+)?|(?<![\w@/.-])omit) gate\b/gFix: Pin versions and sources; vendor anything fetched at install time.// A glob star stands for some name or none: `*.pem` is judged as `x.pem`, `.env*` as `.env`.Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.console.log(JSON.stringify({ hookSpecificOutput: { hookEventName: 'UserPromptSubmit', additionalContext: `omit mode is now ${mode}, set by the user. ${DESCRIBE[mode]}` } }))Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.// Credentials and config a home dotdir holds; `rm -rf ~/.ssh` loses keys no backup has.Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.console.log(JSON.stringify({ hookSpecificOutput: { hookEventName: 'SessionStart', additionalContext: `omit mode: ${mode}. ${DESCRIBE[mode]}` } }))Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.// OMIT_OFF is the human's kill switch, and only the literal '1' spells it: aFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.if (!r.ok) console.log(`[${r.linter}] fail ⛔\n${r.output}`)Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.(fromNpxCache ? `npx -y @sriinnu/omit@${version} hook run ${name}` : `node "${join(pkgRoot, 'hooks', name + '.mjs')}"`) + (arg ? ` ${arg}` : '')Fix: Pin versions and sources; vendor anything fetched at install time.// A kill switch counts in any hooks file, even a new one: it silences the plugin's hooks too.Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.// kill switch (disableAllHooks, an OMIT_OFF env) to one of them (any otherFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.// A glob is judged by the names it can reach: `.e*` reaches .env, `~/.aws/*` the keys.Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// through npx at this exact version instead.Fix: Pin versions and sources; vendor anything fetched at install time.// Unquoted, as YAML and .env files write it.Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.return doc?.disableAllHooks === true || (doc?.env && typeof doc.env === 'object' && 'OMIT_OFF' in doc.env)Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.…|egrep|fgrep|rg|ag|ack)\b/ const SECRET_FILE_RE = /(?<![\w.-])(?:[\w./~-]*\/)?(\.env(?:\.[\w-]+)*|[\w-]+\.env|\.envrc|terraform\.tfstate(?:\.backup)?|\.kube\/config…Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// Words that run the command after them: `time rm -rf /` is `rm -rf /`.Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.// A bare `omit` on PATH skips npx's ~3s start and works offline; npx at thisFix: Pin versions and sources; vendor anything fetched at install time.Cost to the agent
Tokens estimated at four characters each. Skills load their instruction text when triggered; the figure is what that costs.
Known vulnerabilities
No advisories in OSV for @sriinnu/omit@0.9.0 as of 2 h ago. This is the package itself, not its dependencies.
What would make this Verified
5 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%- Unclaimed publisher≈ +8 on the totalClaim sriinnu: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
- Access to sensitive file paths≈ +4 on the totalStop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
- Destructive file system command detected≈ +4 on the totalBuild commands from fixed arguments; do not interpolate untrusted strings into a shell.
- File type combined with upload action≈ +2 on the totalRemove the call, or declare the host in frontmatter and explain in the README what is sent and why.
- Process kill command≈ +2 on the totalBuild commands from fixed arguments; do not interpolate untrusted strings into a shell.
- npx invocation of non-well-known package≈ +2 on the totalPin versions and sources; vendor anything fetched at install time.