Skip to content
PawOS Docs

Commands & Terminal

Running shell commands — an allowlist, not arbitrary execution.

PawOS can run a fixed set of known developer-tool commands on your behalf — it does not have arbitrary shell access.

The allowlist covers common package managers, source control, language runtimes, and infrastructure CLIs. A command whose first token isn’t on the list is refused outright, and every command is parsed into a real argv array (not a raw string handed to a shell), so shell-metacharacter injection isn’t possible even for allowlisted prefixes.

Text
npm, npx, node, git, python, python3, py, pip, pip3, yarn, pnpm,
claude, codex, gemini, ollama, java, javac,
docker, docker-compose, kubectl, helm,
aws, gcloud, az, doctl, terraform, ssh, scp, vercel, netlify

Note

A long-running process (like a dev server) is started via a separate mechanism with its own lifecycle tracking, not the same one-shot command runner.

How it works

What you see

  • Your task progress, plan review with affected files and proposed changes, permission questions, command output, diffs, test results, previews and the final Work Record.
  • For multi-file work you see the plan, why each step is needed, and Approve, Reject and Revise controls.
  • While work runs you can follow terminal output, running processes, build and test results, and preview screenshots.

What PawOS does

  • PawOS reads your project structure, dependencies and related files before proposing changes.
  • Edits are applied precisely against the current file contents.
  • Checks can include syntax, imports, type checking, linting, builds, tests, running-app health and visual checks, depending on your project.

Permissions

  • Approving a plan records your intent; each edit, overwrite, command, git change, install, system change, connection or deploy still asks for approval.
  • Commands run under clear rules — PawOS is not an unrestricted shell.
  • Diffs you see come from the real changes, never an illustration.

Records

  • Finished coding work shows the files changed, commands run, their results and output, test results, and screenshots when the change is visual.
  • If a check was skipped (for example, the project has no test script), the Work Record says so.
  • A rejected plan makes no changes.

Good to know

  • Deep project analysis is strongest for TypeScript and JavaScript; every language can be edited.