원클릭으로
send-request
Send HTTP requests with automatic configuration and authentication. Use when testing APIs, webhooks, or any HTTP endpoint.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Send HTTP requests with automatic configuration and authentication. Use when testing APIs, webhooks, or any HTTP endpoint.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Create or update Pi skills (SKILL.md plus optional scripts, references, or assets). Use when someone asks to design a new Pi skill, refine an existing one, or structure skills for Pi discovery or packaging.
Guide for extending Pi — decide between skills, extensions, prompt templates, themes, context files, or custom models, then create and package them. Use when someone wants to extend Pi, add capabilities, create a skill, build an extension, or make a Pi package.
Long-running iterative development loops with pacing control and verifiable progress. Use when tasks require multiple iterations, many discrete steps, or periodic reflection with clear checkpoints; avoid for simple one-shot tasks or quick fixes.
Cheat sheet + workflow for launching interactive coding-agent CLIs (Claude Code, Gemini CLI, Codex CLI, Cursor CLI, and pi itself) via the interactive_shell overlay or headless dispatch. Use for TUI agents and long-running processes that need supervision, fire-and-forget delegation, or headless background execution. Regular bash commands should use the bash tool instead.
Clarify requirements before implementing. Do not use automatically, only when invoked explicitly.
Web search and content extraction via Brave Search API. Use for searching documentation, facts, or any web content. Lightweight, no browser required.
| name | send-request |
| description | Send HTTP requests with automatic configuration and authentication. Use when testing APIs, webhooks, or any HTTP endpoint. |
Sends HTTP requests with:
.pi-super-curl/config.json)@endpoint-name{{uuid}}, {{uuidv7}}, {{env.VAR}}, {{timestamp}}$VAR syntax for secrets in configRun the send-request.cjs script with request parameters:
# First, find the script path (use -L to follow symlinks)
SCRIPT=$(find -L ~/.pi/agent/skills -name "send-request.cjs" 2>/dev/null | head -1)
# Then use it
node "$SCRIPT" <METHOD> "<URL>" [options] 2>&1
Parameters:
METHOD: GET, POST, PUT, PATCH, DELETEURL: Full URL or @endpoint-name from config--body '{"key": "value"}': Request body (JSON, supports templates)--header 'Name: Value': Custom header (repeatable)--save: Save response to ~/Desktop/api-responses/--stream: Stream SSE responsesExamples:
# Simple GET request
node "$SCRIPT" GET "https://httpbin.org/get" 2>&1
# POST with JSON body and templates
node "$SCRIPT" POST "@chat" --body '{"id": "{{uuidv7}}", "user": "{{env.USER_ID}}"}' 2>&1
# Named endpoint from config
node "$SCRIPT" GET "@health" 2>&1
# With custom header
node "$SCRIPT" GET "https://api.example.com/data" --header "X-Custom: value" 2>&1
The script reads .pi-super-curl/config.json from the current directory (walking up) or home directory:
{
"baseUrl": "$API_BASE_URL",
"envFile": ".env",
"auth": {
"type": "jwt",
"secret": "$JWT_SECRET",
"algorithm": "HS256",
"expiresIn": 3600,
"payload": {
"user_id": "{{env.USER_ID}}",
"role": "authenticated"
}
},
"headers": {
"Content-Type": "application/json",
"X-Org-Id": "{{env.ORG_ID}}"
},
"endpoints": [
{
"name": "health",
"url": "/health",
"method": "GET"
},
{
"name": "chat",
"url": "/api/chat",
"method": "POST",
"defaultBody": {
"chat_id": "{{uuidv7}}",
"workspace_id": "{{env.WORKSPACE_ID}}"
}
}
]
}
| Template | Description |
|---|---|
{{uuid}}, {{uuidv4}} | Random UUID v4 |
{{uuidv7}} | Time-ordered UUID v7 |
{{timestamp}} | Unix timestamp (seconds) |
{{timestamp_ms}} | Unix timestamp (ms) |
{{date}} | ISO date string |
{{env.VAR}} or {{$VAR}} | Environment variables |
Two syntaxes for different contexts:
| Syntax | Use in | Example |
|---|---|---|
$VAR | baseUrl, auth.secret, auth.token | "baseUrl": "$API_URL" |
{{env.VAR}} | URLs, headers, body, JWT payload | "user_id": "{{env.USER_ID}}" |
{"type": "bearer", "token": "$MY_API_TOKEN"}
{
"type": "jwt",
"secret": "$JWT_SECRET",
"algorithm": "HS256",
"expiresIn": 3600,
"payload": {
"user_id": "{{env.USER_ID}}",
"email": "{{env.EMAIL}}",
"role": "authenticated"
}
}
{"type": "api-key", "token": "$API_KEY", "header": "X-API-Key"}
{"type": "basic", "username": "$USER", "password": "$PASS"}
The script outputs:
[INFO] lines to stderr (method, URL, timing)/tmp/generation-output.txt (for /scurl-log)[INFO] Request completed successfully on success[ERROR] on failure