skills/exec/SKILL.md
Policy-gated command execution for package managers, project generators, build/test scripts, dev servers, and one-off CLIs. Disabled by default; add "exec" to skills.enabled to expose it. Prefer go-read/go-write for stable filesystem primitives.
npx skillsauth add bishwashere/cowcode ExecInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Run local CLI commands as a first-class command-execution capability. This skill is disabled by default on new installs and updates. Enable it intentionally by adding "exec" to skills.enabled.
Use exec for package-manager and runtime commands that are not stable filesystem primitives:
npx create-next-app@latest ...pnpm dlx ...npm run build, npm test, npm startpnpm run build, pnpm test, pnpm startnode ..., git ..., or another explicitly allowed CLIDo not use exec for simple file operations that have structured tools:
ls, find, pwd, cat, less, du, JSON, SQL, and dashboard URL resolution.mkdir, touch, cp, mv, rm, chmod, constrained local rsync, and dedicated create_next_app when that narrower path is enough.Exec runs one executable with an argv array; it is not a free-form shell string. Put the executable in command and every argument in argv. Do not include pipes, redirections, &&, ;, command substitutions, or shell scripts unless the operator has deliberately configured a shell executable in skills.exec.
Default runtime policy when the skill is enabled:
mode: "allowlist"npm, pnpm, npx, node, git/opt/homebrew/bin, /usr/local/bin/usr/local/binOptional config:
{
"skills": {
"enabled": ["exec"],
"exec": {
"mode": "allowlist",
"allowlist": ["npm", "pnpm", "npx", "node", "git", "cargo"],
"pathPrepend": ["/opt/homebrew/bin", "/usr/local/bin"],
"timeoutMs": 300000
}
}
}
Set mode: "full" only when the operator wants any direct executable path/name to run without the allowlist guard. Even in full mode, exec still runs without a shell unless command itself is a shell and the arguments invoke one.
If an exec command may create, delete, or modify files, verify the result with go-read before claiming success. Examples:
npx create-next-app@latest my-app ..., run go-read ls -la my-app or inspect my-app/package.json.npm install, inspect package.json, lockfiles, or run the requested verification script.run
description: Run one policy-gated executable with argv. Use for package managers, project generators, build/test scripts, dev servers, and one-off CLIs when exec is enabled. Prefer go-read/go-write for stable filesystem primitives. If the command may mutate files, verify afterward with go-read before final answering.
parameters:
command: string
argv: array
cwd: string (optional)
timeoutMs: number (optional)
env: object (optional)
data-ai
Plain HTTP fetch (GET/POST/etc.) for JSON or text endpoints, including localhost / LAN / Pasture's own dashboard. Use this instead of browse for non-rendered URLs.
testing
Bridge conversation to dashboard Projects and Missions — list configured projects, register new ones with setup details, health-check, propose tasks, create missions after user approval, log progress, and update task status. Use when the user wants to work on, track, or manage a project.
documentation
GitHub integration. Read repos, list/read issues and PRs, create branches, post comments, create PRs. Requires GitHub token in ~/.pasture/secrets.json or GITHUB_TOKEN env var.
tools
Delegate a question or task to another configured agent and get its reply back. Use when the user wants you to coordinate a team of agents (e.g. a PM asking a specialist), or when another agent owns the knowledge/tools needed. Only works for agents in this agent's allow list.