ralphex is a command-line tool that runs coding agents through implementation plans, executing repository tasks autonomously in separate sessions. It is intended for developers who want long-running features implemented, validated, reviewed, and committed with less interactive supervision.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add umputun/ralphex --skill ralphex-updategit clone --depth 1 https://github.com/umputun/ralphexWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/umputun/ralphex/ralphex-update)<a href="https://agentmods.dev/skills/umputun/ralphex/ralphex-update"><img src="https://agentmods.dev/badge/skills/umputun/ralphex/ralphex-update/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/umputun/ralphex/ralphex-update"><img src="https://agentmods.dev/badge/skills/umputun/ralphex/ralphex-update.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium Rogue Agent · line 24 Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.Fix: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00013 | $0.01664 |
| Opus 5.5 | $0.00005 | $0.00666 |
| Sonnet 5.5 | $0.00003 | $0.00333 |
| Haiku 4.5 | $0.00001 | $0.00166 |
Grade C, and why
ralphex-update scanned grade C with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Recursive force deletehighDestructive command
rm -rf with a variable or a broad path is one typo away from removing the wrong tree.
rm -rf <dump-dir> How it starts
The opening of the file, as written. The whole thing — 178 lines — stays where its author put it; the contents beside it link to each section on GitHub.
ralphex-update - Smart Prompt Merging
SCOPE: Compare current embedded defaults with user's installed config, and intelligently merge updates into customized files. Preserves user intent while incorporating structural changes.
Step 0: Verify CLI Installation
which ralphex
If not found, guide installation:
- macOS (Homebrew):
brew install umputun/apps/ralphex - Any platform with Go:
go install github.com/umputun/ralphex/cmd/ralphex@latest
Do not proceed until which ralphex succeeds.
Step 1: Extract Current Defaults
Create temp directory and dump embedded defaults:
DUMP_DIR=$(mktemp -d /tmp/ralphex-defaults-XXXX)
ralphex --dump-defaults "$DUMP_DIR"
echo "$DUMP_DIR"
Save the dump directory path for later use.
Step 2: Determine Config Directory
Resolve the user's config directory:
# check environment variable first
echo "${RALPHEX_CONFIG_DIR:-}"
If RALPHEX_CONFIG_DIR is empty, use default:
- macOS/Linux:
~/.config/ralphex/
Verify the directory exists:
ls -la <config-dir>/
If it doesn't exist, inform user that ralphex hasn't been configured yet and there's nothing to update.
How ralphex Config Files Work
ralphex installs config, prompt, and agent files with all content commented out (every line prefixed with # ). At runtime, stripComments() removes these lines, finds nothing, and falls back to embedded defaults compiled into the binary. These all-commented files are functionally identical to missing files — they are do-nothing placeholders.
When ralphex is updated, new embedded defaults take effect automatically for every file that hasn't been customized. No file changes are needed.
A file is customized only if it contains at least one uncommented, non-empty line that was intentionally modified by the user. The --dump-defaults command produces the raw (uncommented) embedded content for comparison.
Step 3: Compare Files
For each file in the defaults dump (config, prompts/*.txt, agents/*.txt), compare with the corresponding file in the user's config directory.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 178 lines · 13 tokens per session scan C b83d1ef3681c
ralphex-update is a skill published in the GitHub repository umputun/ralphex (1,504 stars, last pushed 3d ago), licensed MIT. It adds 13 tokens to every session and 1,664 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it C with 1 finding (recursive force delete). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
claude-loop
Autonomous orchestrated loop that works through a prd.json story-by-story using a fresh Task subagent per story. Use this skill whenever the user asks to "run the loop", "claude loop", "start the loop", "kick off the loop", "work through the prd", "process prd.json", "implement all the stories", "iterate through the…
agent-loop
Run bounded, resumable OpenAI-native coding loops with shell and applypatch, similar to Claude Code agent loops. Use when the user asks for a loop, autonomous iteration, or a persistent inspect-edit-test cycle with a turn cap.
humanizer
Remove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and human-written. Based on Wikipedia's comprehensive "Signs of AI writing" guide. Detects and fixes patterns including: inflated symbolism, promotional language, superficial -ing analyses, vague…
html-ppt-zhangzara-vellum
A humanities lecture: how Renaissance linear perspective reshaped early cartography — sources, argument, and evidence. Built as a decision-grade academic research deck for faculty, graduate seminar.
code-review
Review code for quality, maintainability, and correctness.
rubber-duck
Adversarial "rubber duck" review that turns explaining-out-loud into a hallucination check. The main session is the PRESENTER (it did the work — a design doc, investigation, or analysis — and holds the real reasoning) and reconstructs the topic to a LISTENER — a spawned subagent pinned to a DIFFERENT-vendor model that…