Token导航 LogoToken导航TokenDH.com
研究检索敏感数据github未标认证来源可访问许可证需确认审计异常

caido-mode凯多模式

Agent Skill

caido-mode 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

26,928

周安装

1,123

GitHub Stars

190

下载量

8,712
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:caido-mode(凯多模式)
来源仓库:https://github.com/caido/skills
仓库路径:skills/caido-mode
安装命令:
npx skills add https://github.com/caido/skills --skill caido-mode
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/caido/skills --skill caido-mode

简介

caido-mode 提供对 Caido API 的全覆盖 CLI 支持,用于 HTTP 历史记录检索、请求重放、会话管理、测试范围配置、筛选预设保存、环境变量存储和安全 findings 跟踪。

  • 适合在 Codex、Claude、Cursor、Gemini CLI 中执行渗透测试、API 调试或安全任务自动化时使用。
  • 通过 npx skills add 命令从指定 GitHub 仓库安装,需结合官方 SDK 使用。
  • 使用前应确认目标网络权限、项目作用域和敏感信息处理方式,避免越权访问或数据泄露。
  • caido-mode 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

Caido Mode Skill

Overview

Full-coverage CLI for Caido's API, built on the official @caido/sdk-client package. Covers:

  • HTTP History - Search, retrieve, replay, edit requests with HTTPQL
  • Replay & Sessions - Sessions, collections, entries, fuzzing
  • Scopes - Create and manage testing scopes (allowlist/denylist patterns)
  • Filter Presets - Save and reuse HTTPQL filter presets
  • Environments - Store test variables (victim IDs, tokens, etc.)
  • Findings - Create, list, update security findings
  • Tasks - Monitor and cancel background tasks
  • Projects - Switch between testing projects
  • Hosted Files - Manage files served by Caido
  • Intercept - Enable/disable request interception programmatically
  • Plugins - List installed plugins
  • Export - Convert requests to curl commands for PoCs
  • Health - Check Caido instance status

All traffic goes through Caido, so it appears in the UI for further analysis.

Why This Model?

Cookies and auth tokens can be huge - session cookies, JWTs, CSRF tokens can easily be 1-2KB. Rather than manually copy-pasting:

  1. Find an organic request in Caido's HTTP history that already has valid auth
  2. Use edit to modify just what you need (path, method, body) while keeping all auth headers intact
  3. Send it - response comes back with full context preserved

Authentication Setup

Setup (One-Time)

  1. Open Dashboard → Developer → Personal Access Tokens
  2. Create a new token
  3. Run:
npx tsx ~/.claude/skills/caido-mode/caido-client.ts setup <your-pat>

# Non-default Caido instance
npx tsx ~/.claude/skills/caido-mode/caido-client.ts setup <pat> http://192.168.1.100:8080

# Or set env var instead
export CAIDO_PAT=caido_xxxxx

The setup command validates the PAT via the SDK (which exchanges it for an access token), then saves both the PAT and the cached access token to ~/.claude/config/secrets.json. Subsequent runs load the cached token directly, skipping the PAT exchange.

Check Status

npx tsx ~/.claude/skills/caido-mode/caido-client.ts auth-status

How Auth Works

The SDK uses a device code flow internally — the PAT auto-approves it and receives an access token + refresh token. A custom SecretsTokenCache (implementing the SDK's TokenCache interface) persists these tokens to secrets.json so they survive across CLI invocations.

Auth resolution: CAIDO_PAT env var → secrets.json PAT → error with setup instructions

CLI Tool

Located at ~/.claude/skills/caido-mode/caido-client.ts. All commands output JSON.


HTTP History & Testing Commands

search - Search HTTP history with HTTPQL

npx tsx caido-client.ts search 'req.method.eq:"POST" AND resp.code.eq:200'
npx tsx caido-client.ts search 'req.host.cont:"api"' --limit 50
npx tsx caido-client.ts search 'req.path.cont:"/admin"' --ids-only
npx tsx caido-client.ts search 'resp.raw.cont:"password"' --after <cursor>

recent - Get recent requests

npx tsx caido-client.ts recent
npx tsx caido-client.ts recent --limit 50

get / get-response - Retrieve full details

npx tsx caido-client.ts get <request-id>
npx tsx caido-client.ts get <request-id> --headers-only
npx tsx caido-client.ts get-response <request-id>
npx tsx caido-client.ts get-response <request-id> --compact

edit - Edit and replay (KEY FEATURE)

Modifies an existing request while preserving all cookies/auth headers:

# Change path (IDOR testing)
npx tsx caido-client.ts edit <id> --path /api/user/999

# Change method and add body
npx tsx caido-client.ts edit <id> --method POST --body '{"admin":true}'

# Add/remove headers
npx tsx caido-client.ts edit <id> --set-header "X-Forwarded-For: 127.0.0.1"
npx tsx caido-client.ts edit <id> --remove-header "X-CSRF-Token"

# Find/replace text anywhere in request
npx tsx caido-client.ts edit <id> --replace "user123:::user456"

# Combine multiple edits
npx tsx caido-client.ts edit <id> --method PUT --path /api/admin --body '{"role":"admin"}' --compact
OptionDescription
--method <METHOD>Change HTTP method
--path <path>Change request path
--set-header <Name: Value>Add or replace a header (repeatable)
--remove-header <Name>Remove a header (repeatable)
--body <content>Set request body (auto-updates Content-Length)
--replace <from>:::<to>Find/replace text anywhere in request (repeatable)

replay / send-raw - Send requests

# Replay as-is
npx tsx caido-client.ts replay <request-id>

# Replay with custom raw
npx tsx caido-client.ts replay <id> --raw "GET /modified HTTP/1.1\r\nHost: example.com\r\n\r\n"

# Send completely custom request
npx tsx caido-client.ts send-raw --host example.com --port 443 --tls --raw "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n"

export-curl - Convert to curl for PoCs

npx tsx caido-client.ts export-curl <request-id>

Outputs a ready-to-use curl command with all headers and body.


Replay Sessions & Collections

Sessions

# Create replay session from an existing request
npx tsx caido-client.ts create-session <request-id>

# ALWAYS rename sessions for easy identification in Caido UI
npx tsx caido-client.ts rename-session <session-id> "idor-user-profile"

# List all replay sessions
npx tsx caido-client.ts replay-sessions
npx tsx caido-client.ts replay-sessions --limit 50

# Delete replay sessions
npx tsx caido-client.ts delete-sessions <session-id-1>,<session-id-2>

Collections

Organize replay sessions into collections:

# List replay collections
npx tsx caido-client.ts replay-collections
npx tsx caido-client.ts replay-collections --limit 50

# Create a collection
npx tsx caido-client.ts create-collection "IDOR Testing"

# Rename a collection
npx tsx caido-client.ts rename-collection <collection-id> "Auth Bypass Tests"

# Delete a collection
npx tsx caido-client.ts delete-collection <collection-id>

Fuzzing

# Create automate session for fuzzing
npx tsx caido-client.ts create-automate-session <request-id>

# Start fuzzing (configure payloads and markers in Caido UI first)
npx tsx caido-client.ts fuzz <session-id>

Scope Management

Define what's in scope for your testing. Uses glob patterns.

# List all scopes
npx tsx caido-client.ts scopes

# Create scope with allowlist and denylist
npx tsx caido-client.ts create-scope "Target Corp" --allow "*.target.com,*.target.io" --deny "*.cdn.target.com"

# Update scope
npx tsx caido-client.ts update-scope <scope-id> --allow "*.target.com,*.api.target.com"

# Delete scope
npx tsx caido-client.ts delete-scope <scope-id>

Glob patterns: *.example.com matches any subdomain of example.com.


Filter Presets

Save frequently used HTTPQL queries as named presets.

# List saved filters
npx tsx caido-client.ts filters

# Create filter preset
npx tsx caido-client.ts create-filter "API Errors" --query 'req.path.cont:"/api/" AND resp.code.gte:400'
npx tsx caido-client.ts create-filter "Auth Endpoints" --query 'req.path.regex:"/(login|auth|oauth)/"' --alias "auth"

# Update filter
npx tsx caido-client.ts update-filter <filter-id> --query 'req.path.cont:"/api/" AND resp.code.gte:500'

# Delete filter
npx tsx caido-client.ts delete-filter <filter-id>

Environment Variables

Store testing variables that persist across sessions. Great for IDOR testing with multiple user IDs.

# List environments
npx tsx caido-client.ts envs

# Create environment
npx tsx caido-client.ts create-env "IDOR-Test"

# Set variables
npx tsx caido-client.ts env-set <env-id> victim_user_id "user_456"
npx tsx caido-client.ts env-set <env-id> attacker_token "eyJhbG..."

# Select active environment
npx tsx caido-client.ts select-env <env-id>

# Deselect environment
npx tsx caido-client.ts select-env

# Delete environment
npx tsx caido-client.ts delete-env <env-id>

Findings

Create, list, and update security findings. Shows up in Caido's Findings tab.

# List all findings
npx tsx caido-client.ts findings
npx tsx caido-client.ts findings --limit 50

# Get a specific finding
npx tsx caido-client.ts get-finding <finding-id>

# Create finding linked to a request
npx tsx caido-client.ts create-finding <request-id> \
  --title "IDOR in user profile endpoint" \
  --description "Can access other users' profiles by changing ID parameter" \
  --reporter "rez0"

# With deduplication key (prevents duplicates)
npx tsx caido-client.ts create-finding <request-id> \
  --title "Auth bypass on /admin" \
  --dedupe-key "admin-auth-bypass"

# Update finding
npx tsx caido-client.ts update-finding <finding-id> \
  --title "Updated title" \
  --description "Updated description"

Tasks

Monitor and cancel background tasks (imports, exports, etc.).

# List all tasks
npx tsx caido-client.ts tasks

# Cancel a running task
npx tsx caido-client.ts cancel-task <task-id>

Project Management

# List all projects
npx tsx caido-client.ts projects

# Switch active project
npx tsx caido-client.ts select-project <project-id>

Hosted Files

# List hosted files
npx tsx caido-client.ts hosted-files

# Delete hosted file
npx tsx caido-client.ts delete-hosted-file <file-id>

Intercept Control

# Check intercept status
npx tsx caido-client.ts intercept-status

# Enable/disable interception
npx tsx caido-client.ts intercept-enable
npx tsx caido-client.ts intercept-disable

Info, Health & Plugins

# Current user info
npx tsx caido-client.ts viewer

# List installed plugins
npx tsx caido-client.ts plugins

# Check Caido instance health (version, ready state)
npx tsx caido-client.ts health

Output Control

Works with get, get-response, replay, edit, send-raw:

FlagDescription
--max-body <n>Max response body lines (default: 200, 0=unlimited)
--max-body-chars <n>Max body chars (default: 5000, 0=unlimited)
--no-requestSkip request raw in output
--headers-onlyOnly HTTP headers, no body
--compactShorthand: --no-request --max-body 50 --max-body-chars 5000

HTTPQL Reference

Caido's query language for searching HTTP history.

CRITICAL: String values MUST be quoted. Integer values are NOT quoted.

CRITICAL: HTTPQL has NO NOT operator. Never write NOT expr. Use the negated operator variant instead:

  • ncont (not contains), nlike (not like), nregex (not regex), ne (not equals)
  • Wrong: NOT req.path.cont:"/admin"
  • Right: req.path.ncont:"/admin"

Namespaces and Fields

NamespaceFieldTypeDescription
reqextstringFile extension (includes .)
reqhoststringHostname
reqmethodstringHTTP method (uppercase)
reqpathstringURL path
reqquerystringQuery string
reqrawstringFull raw request
reqportintPort number
reqlenintRequest body length
reqcreated_atdateCreation timestamp
reqtlsboolIs HTTPS
resprawstringFull raw response
respcodeintStatus code
resplenintResponse body length
resproundtripintRoundtrip time (ms)
rowidintRequest ID
source-special"intercept", "replay", "automate", "workflow"
preset-specialFilter preset reference

Operators

String: eq, ne, cont, ncont, like, nlike, regex, nregex Integer: eq, ne, gt, gte, lt, lte Boolean: eq, ne Logical: AND, OR, parentheses for grouping

Example Queries

# POST requests with 200 responses
req.method.eq:"POST" AND resp.code.eq:200

# API requests
req.host.cont:"api" OR req.path.cont:"/api/"

# Standalone string searches both req and resp
"password" OR "secret" OR "api_key"

# Error responses
resp.code.gte:400 AND resp.code.lt:500

# Large responses (potential data exposure)
resp.len.gt:100000

# Slow endpoints
resp.roundtrip.gt:5000

# Auth endpoints by regex
req.path.regex:"/(login|auth|signin|oauth)/"

# Replay/automate traffic only
source:"replay" OR source:"automate"

# Date filtering
req.created_at.gt:"2024-01-01T00:00:00Z"

# Exclude paths (use ncont, NOT doesn't exist)
req.path.ncont:"/static"

# Not equal
req.method.ne:"OPTIONS"

# Combine negations
req.path.ncont:"/health" AND req.path.ncont:"/metrics"

SDK Architecture

This CLI is built on @caido/sdk-client v0.1.4+, using a clean multi-file architecture:

caido-client.ts          # CLI entry point — arg parsing + command dispatch
lib/
  client.ts              # SDK Client singleton, SecretsTokenCache, auth config
  graphql.ts             # gql documents for features not yet in SDK
  output.ts              # Output formatting (truncation, headers-only, raw→curl)
  types.ts               # Shared types (OutputOpts)
  commands/
    requests.ts          # search, recent, get, get-response, export-curl
    replay.ts            # replay, send-raw, edit, sessions, collections, automate, fuzz
    findings.ts          # findings, get-finding, create-finding, update-finding
    management.ts        # scopes, filters, environments, projects, hosted-files, tasks
    intercept.ts         # intercept-status, intercept-enable, intercept-disable
    info.ts              # viewer, plugins, health, setup, auth-status

SDK Coverage

Most features use the high-level SDK directly:

SDK MethodCommands
client.request.list(), .get()search, recent, get, get-response, export-curl
client.replay.sessions.*create-session, replay-sessions, rename-session, delete-sessions
client.replay.collections.*replay-collections, create-collection, rename-collection, delete-collection
client.replay.send()replay, send-raw, edit
client.finding.*findings, get-finding, create-finding, update-finding
client.scope.*scopes, create-scope, update-scope, delete-scope
client.filter.*filters, create-filter, update-filter, delete-filter
client.environment.*envs, create-env, select-env, env-set, delete-env
client.project.*projects, select-project
client.hostedFile.*hosted-files, delete-hosted-file
client.task.*tasks, cancel-task
client.user.viewer()viewer
client.health()health

Features not yet in the high-level SDK use client.graphql.query()/client.graphql.mutation() with gql tagged templates from graphql-tag. This is the proper SDK approach (typed documents through urql) — no raw fetch anywhere.

GraphQL DocumentCommands
INTERCEPT_OPTIONS_QUERYintercept-status
PAUSE_INTERCEPT / RESUME_INTERCEPTintercept-enable, intercept-disable
PLUGIN_PACKAGES_QUERYplugins
CREATE_AUTOMATE_SESSIONcreate-automate-session
GET_AUTOMATE_SESSIONfuzz (verify session)
START_AUTOMATE_TASKfuzz (start task)

Workflow Examples

1. IDOR Testing (Primary Pattern)

# Find authenticated request
npx tsx caido-client.ts search 'req.path.cont:"/api/user"' --limit 10

# Create scope
npx tsx caido-client.ts create-scope "IDOR-Test" --allow "*.target.com"

# Create environment for test data
npx tsx caido-client.ts create-env "IDOR-Test"
npx tsx caido-client.ts env-set <env-id> victim_id "user_999"

# Test IDOR by changing user ID
npx tsx caido-client.ts edit <request-id> --path /api/user/999

# Mark as finding if it works
npx tsx caido-client.ts create-finding <request-id> --title "IDOR on /api/user/:id"

# Export curl for PoC
npx tsx caido-client.ts export-curl <request-id>

2. Privilege Escalation Testing

npx tsx caido-client.ts search 'req.path.cont:"/admin"' --limit 10
npx tsx caido-client.ts edit <id> --path /api/admin/users --method GET
npx tsx caido-client.ts edit <id> --method POST --body '{"role":"admin"}'

3. Header Bypass Testing

npx tsx caido-client.ts edit <id> --set-header "X-Forwarded-For: 127.0.0.1"
npx tsx caido-client.ts edit <id> --set-header "X-Original-URL: /admin"
npx tsx caido-client.ts edit <id> --remove-header "X-CSRF-Token"

4. Fuzzing with Automate

npx tsx caido-client.ts create-automate-session <request-id>
# Configure payload markers and wordlists in Caido UI
npx tsx caido-client.ts fuzz <session-id>

5. Filter + Analyze Pattern

# Save useful filters
npx tsx caido-client.ts create-filter "API 4xx" --query 'req.path.cont:"/api/" AND resp.code.gte:400 AND resp.code.lt:500'
npx tsx caido-client.ts create-filter "Large Responses" --query 'resp.len.gt:100000'
npx tsx caido-client.ts create-filter "Sensitive Data" --query '"password" OR "secret" OR "api_key" OR "token"'

# Quick search using preset alias
npx tsx caido-client.ts search 'preset:"API 4xx"' --limit 20

Instructions for Claude

  1. PREFER edit OVER replay --raw - preserves cookies/auth automatically
  2. Workflow: Search → find request with valid auth → use that ID for all tests via edit
  3. Don't dump raw requests into context - use --compact or --headers-only when exploring
  4. Always check auth first: health to verify connection, then recent --limit 1
  5. ALWAYS NAME REPLAY TABS: rename-session <id> "idor-user-profile"
  6. Create findings for anything interesting - they show up in Caido's Findings tab
  7. Use export-curl when building PoCs for reports
  8. Create filter presets for recurring searches to save typing
  9. Use environments to store test data (victim IDs, tokens, etc.)
  10. Output is JSON - parse response fields as needed
  11. NEVER use NOT in HTTPQL - it doesn't exist. Use negated operators: ne, ncont, nlike, nregex

Performance & Context Optimization

  • search/recent omit raw field (~200 bytes per request, safe for 100+)
  • get fetches raw (~5-20KB per request, fetch only what you need)
  • Use --limit aggressively (start with 5-10)
  • Use --compact flag for quick exploration
  • Filter server-side with HTTPQL, not client-side

Error Handling

  • Auth errors: Run npx tsx caido-client.ts auth-status to check, re-setup with npx tsx caido-client.ts setup <pat>
  • Connection refused: Caido not running → npx tsx caido-client.ts health
  • InstanceNotReadyError: Caido is starting up, wait and retry

Related Skills

  • caido-plugin-dev - For building Caido plugins (backend + frontend)
  • spider - Crawling with Katana (uses Caido as proxy)
  • website-fuzzing - Remote ffuf fuzzing on hunt6
  • JsAnalyzer - JS analysis for traffic-discovered files

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

34.19%
按下载量换算2,979

Claude

31.96%
按下载量换算2,784

Cursor

18.81%
按下载量换算1,639

Gemini CLI

10.02%
按下载量换算873

安全审计

Gen Agent Trust Hub

通过

Socket

可疑

Snyk

未通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills