跳至主要内容
小龙虾小龙虾AI
🤖

Picsee Short Link

PicSee URL shortener with QR code generation, analytics charts, and link management via MCP Server. Use when the user asks to shorten a URL, generate QR code...

下载194
星标0
版本1.3.1
营销推广
安全通过
🔗API

技能说明


name: picsee-short-link description: Shorten URLs using PicSee (pse.is). Stores API token in skills/picsee-short-link/config.json (optional). Use when the user asks to shorten a URL, create a short link, or mentions PicSee. Supports both unauthenticated mode (basic shortening) and authenticated mode (analytics, editing, search, custom thumbnails for Advanced plan users). metadata: { "openclaw": { "emoji": "🔗", "configPaths": ["skills/picsee-short-link/config.json"], "requires": { "bins": ["curl", "jq"] }, "externalApis": ["api.pics.ee", "chrome-ext.picsee.tw", "api.qrserver.com", "quickchart.io"], "writesPaths": ["/tmp/*.png", "skills/picsee-short-link/config.json"] } }

PicSee Short Link

Quick URL shortener with optional analytics.

Security & Scope

This skill performs the following operations:

File operations:

  • Reads/writes skills/picsee-short-link/config.json (stores API token in plaintext, optional)
  • Writes QR code images to /tmp/<shortcode>.png (only if user requests QR)
  • Writes analytics charts to /tmp/<encodeId>_analytics.png (only if user requests visualization)

Network operations:

  • HTTPS API calls to api.pics.ee (authenticated mode, PicSee API)
  • HTTPS API calls to chrome-ext.picsee.tw (unauthenticated mode, PicSee API)
  • HTTPS API calls to api.qrserver.com (QR code generation, optional)
  • HTTPS API calls to quickchart.io (chart generation, optional)

Security notes:

  • API token is stored in plaintext in workspace config file (not system-wide)
  • All API calls use HTTPS
  • No data is sent to third parties except PicSee API and user-requested QR/chart services
  • Token is never logged or transmitted except to PicSee API

Scope: Core function is URL shortening. Analytics, QR codes, and charts are optional features that require explicit user request.

Fast Track: Shorten a URL

For 99% of requests, use this workflow:

  1. Check config: Read skills/picsee-short-link/config.json

    • If NOT exist → Go to First-Time Setup (see below)
    • If exists → Check status field and proceed
  2. Call API:

    • Unauthenticated (no token):

      curl -X POST https://chrome-ext.picsee.tw/v1/links \
        -H "Content-Type: application/json" \
        -d '{"url":"<LONG_URL>","domain":"pse.is","externalId":"openclaw"}'
      
    • Authenticated (has token):

      # Read token from config.json first
      TOKEN=$(jq -r '.apiToken' ~/.openclaw/workspace/skills/picsee-short-link/config.json)
      
      curl -X POST https://api.pics.ee/v1/links \
        -H "Authorization: Bearer $TOKEN" \
        -H "Content-Type: application/json" \
        -d '{"url":"<LONG_URL>","domain":"pse.is","externalId":"openclaw"}'
      

      (Token stored in config.jsonapiToken field)

  3. Display result (code block for easy copying):

    https://pse.is/abc123
    

    Then ask user if they want a QR code? if user is unauthenticated, also ask if they want to add their API token for analytics/editing features.

  4. QR code (ONLY if user explicitly asks):

    curl -o /tmp/qrcode.png "https://api.qrserver.com/v1/create-qr-code/?size=300x300&data=<SHORT_URL>"
    

    Then send via message tool with filePath:"/tmp/qrcode.png"

Done. No need to ask about analytics unless user requests them.


First-Time Setup (if no config exists)

Detection: Check if skills/picsee-short-link/config.json exists. If NOT exist → first-time user.

Ask user (explain features):

"Would you like to provide a PicSee API token to unlock advanced features? (y/n)

With token (authenticated mode), you can:

  • View link analytics and daily click stats
  • List your short links (filter by date range)
  • Search short links
  • Edit links (change destination URL) — Advanced plan only
  • Customize thumbnails/titles — Advanced plan only

Without token (unauthenticated mode), you can:

  • Create basic short links (no analytics)

To get your API token: Go to https://picsee.io/ → Click avatar (top-right) → Settings → API → Copy token"

If user says YES:

  1. Wait for token (alphanumeric string, e.g., abc123def456...)

  2. Create skills/picsee-short-link/config.json:

    {
      "status": "authenticated",
      "apiToken": "<user_token>",
      "setupDate": "YYYY-MM-DD"
    }
    
  3. Verify token by calling API status:

    TOKEN=$(jq -r '.apiToken' ~/.openclaw/workspace/skills/picsee-short-link/config.json)
    curl -X GET https://api.pics.ee/v2/my/api/status \
      -H "Authorization: Bearer $TOKEN"
    
  4. Show user their plan tier (free/basic/advanced) and quota info.

If user says NO:

  1. Create skills/picsee-short-link/config.json:

    {
      "status": "unauthenticated",
      "setupDate": "YYYY-MM-DD"
    }
    
  2. Explain: "You can create short links in unauthenticated mode. To unlock analytics/editing later, just ask me to add your API token."


Advanced Features (Authenticated Mode Only)

View Link Analytics

Extract encodeId from short URL (e.g., pse.is/abc123abc123), then:

TOKEN=$(jq -r '.apiToken' ~/.openclaw/workspace/skills/picsee-short-link/config.json)
curl -X GET "https://api.pics.ee/v1/links/<ENCODE_ID>/overview?dailyClicks=true" \
  -H "Authorization: Bearer $TOKEN"

Response includes:

  • totalClicks, uniqueClicks
  • dailyClicks array (date + click counts)

Generate chart (if user asks for visualization):

  1. Extract daily clicks data from API response using jq
  2. Build QuickChart URL with chart config (line chart, total/unique clicks over time)
  3. Download chart image

Example:

# After getting API response, parse data and generate chart
ENCODE_ID="abc123"
TOKEN=$(jq -r '.apiToken' ~/.openclaw/workspace/skills/picsee-short-link/config.json)

# Fetch analytics
RESPONSE=$(curl -s -X GET "https://api.pics.ee/v1/links/$ENCODE_ID/overview?dailyClicks=true" \
  -H "Authorization: Bearer $TOKEN")

# Parse dates and clicks (example - adjust based on actual response structure)
DATES=$(echo "$RESPONSE" | jq -r '.data.dailyClicks[].date' | jq -R -s -c 'split("\n")[:-1]')
TOTAL=$(echo "$RESPONSE" | jq -r '.data.dailyClicks[].totalClicks' | jq -s -c '.')
UNIQUE=$(echo "$RESPONSE" | jq -r '.data.dailyClicks[].uniqueClicks' | jq -s -c '.')

# Build QuickChart config (URL-encoded JSON)
CHART_CONFIG=$(cat <<EOF | jq -R -s -c '@uri'
{
  "type": "line",
  "data": {
    "labels": $DATES,
    "datasets": [
      {
        "label": "Total Clicks",
        "data": $TOTAL,
        "borderColor": "rgb(75, 192, 192)",
        "fill": false
      },
      {
        "label": "Unique Clicks",
        "data": $UNIQUE,
        "borderColor": "rgb(255, 99, 132)",
        "fill": false
      }
    ]
  },
  "options": {
    "title": {
      "display": true,
      "text": "Link Analytics - $ENCODE_ID"
    },
    "scales": {
      "yAxes": [{
        "ticks": {
          "beginAtZero": true
        }
      }]
    }
  }
}
EOF
)

# Download chart
curl -o "/tmp/${ENCODE_ID}_analytics.png" "https://quickchart.io/chart?c=$CHART_CONFIG"
  1. Send chart via message tool with filePath: "/tmp/<encodeId>_analytics.png"

List Recent Links

TOKEN=$(jq -r '.apiToken' ~/.openclaw/workspace/skills/picsee-short-link/config.json)
curl -X POST "https://api.pics.ee/v2/links/overview?isAPI=false&limit=50&startTime=<ISO8601_DATE>" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json"

Date format: YYYY-MM-DDTHH:MM:SS (no timezone suffix)

⚠️ IMPORTANT: startTime Parameter Behavior

The startTime parameter FILTERS results backwards from that timestamp. It returns links created on or before the specified date, in reverse chronological order (newest first).

Examples:

  • To query December 2025:

    • Use: startTime=2025-12-31T23:59:59 (last day of month, not first!)
    • This returns all links up to Dec 31, including Dec 1–31
  • To query a specific month:

    • Use the LAST DAY of that month at 23:59:59
    • December → 2025-12-31T23:59:59
    • January → 2026-01-31T23:59:59
  • To query a specific date range:

    • Use startTime = end date of range
    • Combine with limit to control how many results returned
    • Adjust limit if you need older entries

Common mistake: Using the first day of a month will miss data from that month.


Check Plan Tier

TOKEN=$(jq -r '.apiToken' ~/.openclaw/workspace/skills/picsee-short-link/config.json)
curl -X GET https://api.pics.ee/v2/my/api/status \
  -H "Authorization: Bearer $TOKEN"

Plan values: "free", "basic", "advanced"

Feature restrictions:

  • Free/Basic: Create links, view analytics, list links
  • Advanced only: Edit links, custom thumbnails/titles, UTM params, tracking pixels

Edit Short Link (Advanced plan only)

TOKEN=$(jq -r '.apiToken' ~/.openclaw/workspace/skills/picsee-short-link/config.json)
curl -X PUT https://api.pics.ee/v2/links/<ENCODE_ID> \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url":"<NEW_DESTINATION_URL>"}'

If user is NOT on Advanced plan: Block and suggest creating a new link instead.


Delete Short Link

TOKEN=$(jq -r '.apiToken' ~/.openclaw/workspace/skills/picsee-short-link/config.json)
curl -X POST https://api.pics.ee/v2/links/<ENCODE_ID>/delete \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"value":"delete"}'

(Use "recover" to restore)


Mode Summary

ModeBase URLAuth RequiredFeatures
Unauthenticatedchrome-ext.picsee.twNoCreate links only
Authenticatedapi.pics.eeYesCreate + analytics + list + edit (plan-dependent)

Default: Unauthenticated (fastest, no setup).


Output Guidelines

  • Short URLs: Always in code blocks for easy copying
  • Language: All responses in user's language
  • No jargon: Avoid "API call", "endpoint", "JSON" in user-facing messages
  • Charts: English labels, professional styling, save to /tmp/ and send via message tool

Quick Reference

Token location: skills/picsee-short-link/config.jsonapiToken field
Config location: skills/picsee-short-link/config.json
Default domain: pse.is
externalId: Always openclaw


Error Handling

  • Unauthenticated mode + user requests analytics: Reply: "This feature requires login. Provide your PicSee API token to unlock it."
  • Non-Advanced plan + user requests edit: Reply: "Editing links requires the Advanced plan. You can create a new link instead."
  • Invalid token: Reply: "Invalid API token. Get a new one from https://picsee.io/ → Settings → API"

如何使用「Picsee Short Link」?

  1. 打开小龙虾AI(Web 或 iOS App)
  2. 点击上方「立即使用」按钮,或在对话框中输入任务描述
  3. 小龙虾AI 会自动匹配并调用「Picsee Short Link」技能完成任务
  4. 结果即时呈现,支持继续对话优化

相关技能