brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
send-requestSend HTTP requests with automatic configuration and authentication. Use when testing APIs, webhooks, or any HTTP endpoint.
Independent GitHub snapshot · Automated classification · Original documentation governs
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