skills/interhuman-post-processing/SKILL.md
Wrapper for Interhuman API POST /v1/upload/analyze endpoint. Analyzes completed video files and returns raw JSON responses with detected social signals. Use when the user wants to analyze a pre-recorded video file. Returns the exact JSON response from the API without modification.
npx skillsauth add interhumanai/skills interhuman-post-processingInstall 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.
Wrapper for the Interhuman API upload endpoint that analyzes completed video files and returns social-intelligence signals.
Use this skill when:
Do NOT use this skill for:
/v1/stream/analyze) insteadAPI Key: Use your API key as bearer credential in Authorization: Bearer <api_key>
Video File: Binary video file to analyze
Content requirements (both video and audio must be meaningful):
Direct API key usage in the Authorization header:
Authorization: Bearer <api_key>Legacy compatibility: if an existing integration still uses token exchange, please switch the API key directly in every endpoint.
https://api.interhuman.ai/v1/upload/analyzemultipart/form-dataAuthorization header.Send the video file as multipart/form-data with a required field named file containing the binary video data.
You can optionally include include[] values to request conversation quality outputs:
conversation_quality_overallconversation_quality_timelinecurl -X POST https://api.interhuman.ai/v1/upload/analyze \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@/path/to/video.mp4;type=video/mp4" \
-F "include[]=conversation_quality_overall" \
-F "include[]=conversation_quality_timeline"
import os
import requests
api_key = "YOUR_API_KEY"
video_path = "/path/to/video.mp4"
with open(video_path, "rb") as f:
files = {"file": (os.path.basename(video_path), f, "video/mp4")}
response = requests.post(
"https://api.interhuman.ai/v1/upload/analyze",
headers={"Authorization": f"Bearer {api_key}"},
files=files,
data=[("include[]", "conversation_quality_overall")],
timeout=300,
)
# Return the raw JSON response
print(response.json())
import fs from "fs";
import FormData from "form-data";
import fetch from "node-fetch";
const formData = new FormData();
formData.append("file", fs.createReadStream("path/to/video.mp4"));
const response = await fetch("https://api.interhuman.ai/v1/upload/analyze", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.INTERHUMAN_API_KEY}`
},
body: formData
});
const json = await response.json();
console.log(json);
The API returns a JSON object where:
signals is requiredengagement_state may be presentconversation_quality may be present when requested via include[]Each signal object in signals contains:
agreement, confidence, confusion, disagreement, disengagement, engagement, frustration, hesitation, interest, skepticism, stress, uncertainty{
"signals": [
{
"type": "agreement",
"start": 2.5,
"end": 8.2
},
{
"type": "uncertainty",
"start": 12.3,
"end": 19.1
}
]
}
On error, the API returns JSON with:
200: Success400: Bad request (invalid file format or parameters)401: Unauthorized (missing or invalid bearer credential)403: Forbidden (credential lacks required scope)413: Payload too large (file exceeds 32 MB)422: Unprocessable entity (file missing or invalid)429: Too many requests500: Internal server errorCRITICAL: This skill is a strict wrapper. You MUST:
The response should be the raw JSON object returned by the API, passed through verbatim.
development
--- name: interhuman-stream-analyze description: Connect to Interhuman v1 WebSocket stream analyze for real-time video segment analysis. Use for live streams, chunked video, WebSocket, or /v1/stream/analyze. Returns verbatim JSON event envelopes without modification. --- # Interhuman Stream Analyze (v1) Wrapper for the Interhuman API v1 WebSocket streaming endpoint that analyzes video segments in real time and returns social-intelligence events. Use **v1 only** (`/v1/stream/analyze`). Do no
development
Wrapper for Interhuman API POST /v1/auth endpoint. Generates short-lived bearer access tokens using API key credentials. Use when the user needs to authenticate before calling Interhuman API endpoints. Returns the exact JSON response from the API without modification.
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.
development
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.