← Back to Skills Marketplace
etytabs

Reversal — Agent Input Reliability Layer

by Etytabs · GitHub ↗ · v1.0.2 · MIT-0
cross-platform ⚠ suspicious
36
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install reversal-engine
Description
Normalizes URLs, PDFs, Word, Excel, CSV, images, and text into clean JSON for reliable, universal input parsing in under 2 seconds.
README (SKILL.md)

Reversal — Agent Input Reliability Layer

Normalizes any source (URL, PDF, Word, Excel, CSV, image, dashboard screenshot) into clean structured JSON in under 2 seconds.

Stop your agents from hallucinating on raw HTML, failing on complex PDFs, or overflowing their context window on long documents. One call. Universal schema. Every format. Every time.

When to use this skill

  • Your agent needs to read a URL, article, or webpage without ads/noise
  • Your agent needs to parse a PDF, Word doc, or Excel file
  • Your agent needs to extract metrics from a dashboard screenshot
  • You have multiple sources and want a single normalized schema
  • You want deterministic, LLM-ready JSON instead of raw content

Tools

reverse_read(source)

Converts any source into structured JSON ready for LLM ingestion.

Input:  source  — URL (https://…) or file path (/path/to/file.pdf)
Output: { status, content_type, source, processed_in_ms, data: { title, summary_hint, word_count, content, … } }

Supported types: url · pdf · word · excel · csv · image · text

detect_content_type(source)

Lightweight probe — detects content type without full parse. Use before reverse_read to branch on type.

Input:  source  — URL or file path
Output: { source, detected_type }

batch_reverse(sources[])

Normalize up to 10 sources in a single call. Failed sources return an error field without aborting the batch.

Input:  sources  — array of 1–10 URLs or file paths
Output: [ { source, result } | { source, error } ]

upload_file(file_path)

Upload a local file; returns a file_id for use in reverse_read as file:\x3Cfile_id>. Validates extension before write. Supported: pdf, docx, xlsx, xls, csv, png, jpg, jpeg, webp, gif, txt, md.

Input:  file_path  — absolute path to local file
Output: { file_id, filename, size_bytes }

Install — stdio (local agents)

Works with Claude Desktop, Cursor, Windsurf, and any stdio MCP host.

git clone https://github.com/Etytabs/REVERSAL
cd REVERSAL
pip install -r requirements.txt
pip install -e .

Add to your MCP config:

{
  "mcpServers": {
    "reversal": {
      "command": "python",
      "args": ["-m", "reversal_engine.mcp_server"],
      "cwd": "/path/to/REVERSAL"
    }
  }
}

No API key required for URL, PDF, Word, Excel, CSV, and text parsing. Set ANTHROPIC_API_KEY only if you need image/dashboard screenshot parsing.

Install — HTTP (remote agents)

Works with OpenAI Codex, Claude Web, and any MCP-over-HTTP host.

# 1. Get a free API key
curl -X POST https://api.reversal.dev/v1/register \
  -H "Content-Type: application/json" \
  -d '{"email": "[email protected]"}'
# → { "api_key": "sk-rev-…" }
{
  "mcpServers": {
    "reversal": {
      "transport": "http",
      "url": "https://api.reversal.dev/v1/mcp",
      "headers": { "Authorization": "Bearer sk-rev-YOUR_KEY" }
    }
  }
}

For OpenAI Codex (~/.codex/config.toml):

[[mcp_servers]]
name = "reversal"
url  = "https://api.reversal.dev/v1/mcp"
[mcp_servers.headers]
Authorization = "Bearer sk-rev-YOUR_KEY"

Output schema

Every source returns the same envelope:

{
  "reversal_engine": "1.0",
  "status": "ok",
  "content_type": "url | pdf | word | excel | csv | image | text",
  "source": "original source",
  "processed_in_ms": 142,
  "data": {
    "title": "…",
    "summary_hint": "first 300 chars…",
    "word_count": 1240,
    "content": []
  }
}

Python SDK

pip install reversal-sdk
from reversal_sdk import ReversalClient

client = ReversalClient(api_key="sk-rev-…")

result = client.reverse("https://example.com/report")
print(result["summary"])

# Batch
results = client.batch([
    "https://example.com/report",
    "/path/to/data.xlsx",
])

# LangChain tool
from langchain.tools import tool

@tool
def reversal_tool(source: str) -> str:
    """Normalize any URL or file into structured JSON for the agent."""
    return client.reverse(source)["summary"]

TypeScript SDK

npm install reversal-client
import { ReversalClient } from "reversal-client";

const client = new ReversalClient({ apiKey: "sk-rev-…" });

const result = await client.reverse("https://example.com/report");
console.log(result.summary);

// Vercel AI SDK tool
import { tool } from "ai";
import { z } from "zod";

const reversalTool = tool({
  description: "Normalize any URL or file into structured JSON.",
  parameters: z.object({ source: z.string() }),
  execute: async ({ source }) => client.reverse(source),
});

Security

  • SSRF protection: all URLs validated against RFC-1918, loopback, link-local, and metadata endpoints
  • HMAC-SHA256 signed API keys — default secrets rejected at startup
  • JSON-only Redis cache — no pickle, no RCE surface
  • File uploads validated by extension allowlist before write
  • Optional OTP-gated registration (REVERSAL_REGISTER_REQUIRE_OTP=true)
  • Per-IP rate limiting on registration (3/min)
  • Non-root Docker runtime (uid 1001)
  • No obfuscated install commands · No curl|sh · No undeclared secrets

Repository

https://github.com/Etytabs/REVERSAL

Usage Guidance
Install only if you trust the external Reversal repository and service. Prefer the local setup for sensitive documents, keep API keys protected, and ask the agent to parse only specific files or URLs you intend to share.
Capability Analysis
Type: OpenClaw Skill Name: reversal-engine Version: 1.0.2 The `SKILL.md` file defines tools that allow an agent to read arbitrary URLs and local files via absolute paths (`upload_file`), which are then processed or transmitted to an external endpoint (`api.reversal.dev`). While the documentation describes security mitigations like SSRF protection and extension allowlisting, the inherent capability to access sensitive local data and send it to a third-party service poses a significant risk of data exfiltration if the agent is misdirected. No evidence of intentional malice, such as obfuscation or hidden prompt injections, was found in the provided files.
Capability Tags
requires-sensitive-credentials
Capability Assessment
Purpose & Capability
The stated purpose—normalizing URLs, documents, images, and text into JSON—is coherent with the described tools, but the reviewed package contains only SKILL.md and delegates actual functionality to external MCP/API/SDK components.
Instruction Scope
The instructions let the agent process URLs, absolute local file paths, and batches of sources. This is purpose-aligned, but users should keep file access explicit.
Install Mechanism
There is no registry install spec or included code; the skill provides manual GitHub, pip, npm, and MCP configuration steps. These are disclosed but not reviewed in this artifact set.
Credentials
Remote Reversal API use and optional Anthropic image parsing are proportional to the parsing purpose, but they may send selected content outside the local environment.
Persistence & Privilege
No hidden background persistence or privilege escalation is shown, but the skill uses API keys and mentions Redis caching, so users should check retention and credential handling.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install reversal-engine
  3. After installation, invoke the skill by name or use /reversal-engine
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.2
Reversal-engine 1.0.2 changelog: - Added comprehensive SKILL.md with clear usage guide, API details, and supported formats. - Introduced four main tools: reverse_read, detect_content_type, batch_reverse, and upload_file. - Unified output schema for all source types with deterministic, LLM-ready JSON. - Outlined installation steps for both local (stdio) and remote (HTTP) agent environments. - Published security guarantees, Python and TypeScript SDK setup, and multi-agent compatibility.
Metadata
Slug reversal-engine
Version 1.0.2
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Reversal — Agent Input Reliability Layer?

Normalizes URLs, PDFs, Word, Excel, CSV, images, and text into clean JSON for reliable, universal input parsing in under 2 seconds. It is an AI Agent Skill for Claude Code / OpenClaw, with 36 downloads so far.

How do I install Reversal — Agent Input Reliability Layer?

Run "/install reversal-engine" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Reversal — Agent Input Reliability Layer free?

Yes, Reversal — Agent Input Reliability Layer is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Reversal — Agent Input Reliability Layer support?

Reversal — Agent Input Reliability Layer is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Reversal — Agent Input Reliability Layer?

It is built and maintained by Etytabs (@etytabs); the current version is v1.0.2.

💬 Comments