← Discover MCPs and Agents
p
MCPAI & MLGitHub

pratfall

One-shot runs of installed coding agents: Claude Code, Codex, Pi, Droid, OpenCode, and many more, selected by short alias or named profile.

Links

README

From the repo.

Pratfall

Pratfall logo

One command to run your coding agents. Pratfall wraps installed agent CLIs with short aliases, common parameters, and reusable local and global profiles.

prat cx "review this change"
prat cc --effort high "investigate this failure"

Installation

Requires Python 3.13+ and an installed, authenticated native agent CLI. Until the first release, run from a source checkout with uv:

uv sync
uv run prat --help
uv run prat doctor

Prefix the examples below with uv run, or use just install to install the checkout as a user-level prat command. See getting started for setup details.

Aliases

Choose an agent by name or short alias:

AgentNameAlias
Claude Codeclaudecc
Codexcodexcx
Geminigeminigm
Copilotcopilotcp
Cursorcursorcu
OpenCodeopencodeoc
Pipinone

Use prat pi "review this change" with Pi v0.85.1 or newer; model, effort, tool filters and file/image attachments are supported. Pi trims prompt-edge whitespace.

These are a few of the supported agents. Run prat agents for the full list and supported settings, or see all selectors and agent limitations. Names of four letters or fewer, such as kiro, qwen, and amp, use the name itself.

Common parameters

Use the same flags across agents, before or after the selector:

prat cx --model gpt-5.6-luna --effort low "review this change"
prat cc --file request.md --timeout 120 --progress
printf 'summarize this checkout\n' | prat gm
ParameterPurpose
--model MODELSelect a native model.
--native-agent NAMESelect a native agent/persona for Claude, Copilot, or Vibe.
--session-id IDSet the native session id so its transcript can be found afterwards.
--effort EFFORTSet reasoning effort.
--fast / --no-fastOverride fast mode for Claude or Codex.
--timeout SECONDSSet the execution deadline; default: 600 seconds.
--cwd PATHChoose the agent's working directory.
--attach PATHAttach a native image/file; repeat where supported.
--add-dir PATHAdd a native workspace directory; repeat for several.
--instructions TEXT / --instructions-file PATHAppend native instructions from text or a UTF-8 file.
--tools NAME / --disable-tools NAMERestrict native tool availability or disable names/patterns; repeat for several.
-f PATH / --file PATHRead a prompt from a UTF-8 file; - reads stdin.
-t NAME / --template NAMEApply a named prompt template.
-e / --editEdit the complete prompt in VISUAL, EDITOR, or vi.
--context PATHPrepend a context file; repeat to include several.
-x / --extractReturn the body of the first fenced code block.
--schema PATHRequest native JSON Schema output from a UTF-8 file (Claude, Codex, Qwen 0.24+).
--jsonReturn one JSON result with output, status, and available usage.
--progressShow live activity on stderr.
--traceCopy captured native stdout to stderr.
--dry-runPreview the resolved invocation without launching the agent.

Model, effort, fast mode, extra directories, instructions, tool availability, native agent selection, schemas, and budget support depend on the agent; unsupported settings are rejected. Native budgets are available through --max-budget-usd, --max-turns, and --max-ai-credits where supported.

Pass one prompt as text, a file, or redirected stdin. Use --prompt=TEXT for text starting with a dash. When stdin is redirected alongside text or --file PATH, Prat combines stdin first, then two newlines, then the explicit prompt:

prat cx "how many Rs in strawberry" | prat cx "times 5"

Supported native arguments go after --, for example:

prat cx "inspect this change" -- --sandbox read-only

Use prat cx --attach screenshot.png "explain this screenshot" for native image input. Codex and Hermes support images (Hermes accepts one), Copilot supports images/native documents, and OpenCode supports files. Native model and format requirements still apply.

Use prat cx --add-dir ../shared "review both projects" to include an extra directory. Claude, Codex, Gemini, Qwen and Copilot support this setting with their native access semantics. Paths resolve from the invocation directory, independently of --cwd.

Use prat cc --tools Read --disable-tools 'mcp__*' "review this file" to select native tools. Claude, Qwen, Copilot, Droid and Vibe support tool controls with different scopes and native names. These flags do not add permission approvals or provide an OS sandbox. Claude's allowlist affects built-ins only; Qwen's schema tool bypasses its allowlist but obeys native denials.

Use prat cc --instructions "Cite file paths" "review this change" or prat cx --instructions-file rules.md "review this change" for additional native guidance. Claude, Codex, Qwen and Droid support instructions. Codex replaces any native configured developer_instructions value for this invocation. See instruction rules and limits.

Use prat cc --session-id "$(uuidgen)" "review this change" to set the native session id up front. Claude, Copilot and Grok support this; a fresh UUID always creates a new session, while a value matching an existing Copilot session resumes it. --json reports the session as native_session_id for those plus Codex and Cursor, falling back to the requested value when a run ends before the agent reports one. See session ids.

Use prat cc --native-agent reviewer "review this change" to select an existing native agent. This differs from a Prat profile or backend selector. The selected persona may change native permissions; Vibe's auto-approve agent permits automatic tool approval. Prat adds no approval flags. See native agent selection.

Prat preserves native authentication and the selected native agent's permission behavior. See running prompts for input rules and run behavior, and JSON output for result fields and errors.

Use prat cc --schema answer.schema.json --json "summarize this project" for structured output. output remains a string containing compact JSON; structured_output also contains the parsed answer. Schema files have a 1 MiB limit and cannot be combined with --extract. See schema output for validation and native limits.

Use prat cc -x "Write a Python function" to extract the first fenced block from an answer. Missing or unclosed fences leave the answer unchanged; an empty block produces empty output. Extraction also applies to JSON output and partial failed answers. See code extraction for fence and newline rules.

Profiles

Save an agent and its settings under a name, then use that name like an alias. Both global and local configuration use the same TOML format:

version = 1

[profiles.simple]
agent = "codex"
model = "gpt-5.6-luna"
effort = "low"
prat simple "review this change"
prat simple --effort high "investigate this failure"
ScopeConfig fileCreate an example
Global~/.config/pratfall/config.toml¹prat config init
Local.pratfile in the invocation directoryprat --config .pratfile config init

¹ Uses $XDG_CONFIG_HOME/pratfall/config.toml when XDG_CONFIG_HOME is set and nonempty.

Global profiles are available across projects. Local configuration merges over global configuration; a local profile with the same name replaces the entire global profile. Prat reads .pratfile only in the invocation directory, without searching parent directories. --cwd does not change config discovery; --config PATH selects a different local file.

Settings resolve in this order: command-line flags → profile → its extends chain → local defaults → global defaults. Use extends to share backend-specific settings through a base profile, [defaults] for settings every agent accepts, prat profiles to inspect resolved profiles, and prat config validate to check configuration.

[profiles.claude-base]
agent = "claude"
tools = ["Read", "Edit", "Bash"]

[profiles.weekly]
extends = "claude-base"
model   = "claude-opus-5"

See profiles and configuration for defaults, command wrappers, and merging rules.

Save reusable prompts separately from agent profiles:

[templates.review]
prompt = "Review the following for bugs:\n\n$input"
git diff | prat simple -t review
prat templates

Templates support $input, ${input}, and $$ for a literal dollar sign. A template without an input placeholder appends supplied input after two newlines and can run on its own. See prompt templates for composition and validation rules.

Add local files with prat cc "review this" --context notes.md --context design.md. Context files precede the templated task in the order supplied, with quoted path labels. The complete prompt must fit within 1 MiB.

Use prat cx --edit to write a prompt in your editor, or add --edit to revise the complete stdin, template and context draft before execution. Editing needs a controlling terminal and cannot be combined with --dry-run. See editor prompts.

More

Collected info

  • 0 stars
  • Language: Python
  • Source updated: 9/19/2026

Config for your environment

Replace {MCP_ENDPOINT_URL} with this MCP’s endpoint URL (from its repo or docs above). No API key — you connect directly.

Tool

OS

Config file: ~/.cursor/mcp.json

{
  "mcpServers": {
    "mcp-server": {
      "url": "{MCP_ENDPOINT_URL}"
    }
  }
}

Paste into mcpServers in the config file. Restart Cursor after saving.

If this MCP is also published on mcpchannel.ai, you can subscribe from Browse and use the gateway config there instead.