Skip to content
Research
Skill

/claude-to-deerflow

Interact with DeerFlow AI agent platform via its HTTP API. Use this skill when the user wants to send messages or questions to DeerFlow for research/analysis, start a DeerFlow conversation thread, check DeerFlow status or health, list available models/skills/agents in DeerFlow,

From plugin
deer-flow
80k29 skills3 agents
Install
$ npx -y skills add bytedance/deer-flow --skill claude-to-deerflow --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/claude-to-deerflow

Context preview

The summary Claude sees to decide when to auto-load this skill.

Interact with DeerFlow AI agent platform via its HTTP API. Use this skill when the user wants to send messages or questions to DeerFlow for research/analysis, start a DeerFlow conversation thread, check DeerFlow status or health, list available models/skills/agents in DeerFlow,

SKILL.md

claude-to-deerflow.SKILL.md
name: claude-to-deerflow
description: "Interact with DeerFlow AI agent platform via its HTTP API. Use this skill when the user wants to send messages or questions to DeerFlow for research/analysis, start a DeerFlow conversation thread, check DeerFlow status or health, list available models/skills/agents in DeerFlow, manage DeerFlow memory, upload files to DeerFlow threads, or delegate complex research tasks to DeerFlow. Also use when the user mentions deerflow, deer flow, or wants to run a deep research task that DeerFlow can handle."

DeerFlow Skill

Communicate with a running DeerFlow instance via its HTTP API. DeerFlow is an AI agent platform built on LangGraph that orchestrates sub-agents for research, code execution, web browsing, and more.

Architecture

DeerFlow exposes two API surfaces behind an Nginx reverse proxy:

| Service | Direct Port | Via Proxy | Purpose | |----------------|-------------|----------------------------------|----------------------------------| | Gateway API | 8001 | `$DEERFLOW_GATEWAY_URL` | REST endpoints and embedded agent runtime | | LangGraph-compatible API | 8001 | `$DEERFLOW_LANGGRAPH_URL` | Agent threads, runs, streaming |

Environment Variables

All URLs are configurable via environment variables. **Read these env vars before making any request.**

| Variable | Default | Description | |-------------------------|------------------------------------------|------------------------------------| | `DEERFLOW_URL` | `http://localhost:2026` | Unified proxy base URL | | `DEERFLOW_GATEWAY_URL` | `${DEERFLOW_URL}` | Gateway API base (models, skills, memory, uploads) | | `DEERFLOW_LANGGRAPH_URL`| `${DEERFLOW_URL}/api/langgraph` | LangGraph API base (threads, runs) |

When making curl calls, always resolve the URL like this:

# Resolve base URLs from env (do this FIRST before any API call)
DEERFLOW_URL="${DEERFLOW_URL:-http://localhost:2026}"
DEERFLOW_GATEWAY_URL="${DEERFLOW_GATEWAY_URL:-$DEERFLOW_URL}"
DEERFLOW_LANGGRAPH_URL="${DEERFLOW_LANGGRAPH_URL:-$DEERFLOW_URL/api/langgraph}"

Available Operations

1. Health Check

Verify DeerFlow is running:

curl -s "$DEERFLOW_GATEWAY_URL/health"

2. Send a Message (Streaming)

This is the primary operation. It creates a thread and streams the agent's response.

**Step 1: Create a thread**

curl -s -X POST "$DEERFLOW_LANGGRAPH_URL/threads" \
  -H "Content-Type: application/json" \
  -d '{}'

Response: `{"thread_id": "<uuid>", ...}`

**Step 2: Stream a run**

curl -s -N -X POST "$DEERFLOW_LANGGRAPH_URL/threads/<thread_id>/runs/stream" \
  -H "Content-Type: application/json" \
  -d '{
    "assistant_id": "lead_agent",
    "input": {
      "messages": [
        {
          "type": "human",
          "content": [{"type": "text", "text": "YOUR MESSAGE HERE"}]
        }
      ]
    },
    "stream_mode": ["values", "messages-tuple"],
    "stream_subgraphs": true,
    "config": {
      "recursion_limit": 1000
    },
    "context": {
      "thinking_enabled": true,
      "is_plan_mode": true,
      "subagent_enabled": true,
      "thread_id": "<thread_id>"
    }
  }'

The response is an SSE stream. Each event has the format:

event: <event_type>
data: <json_data>

Key event types:

  • `metadata` — run metadata including `run_id`
  • `values` — full state snapshot with `messages` array
  • `messages-tuple` — incremental message updates (AI text chunks, tool calls, tool results)
  • `end` — stream is complete

**Context modes** (set via `context`):

  • Flash mode: `thinking_enabled: false, is_plan_mode: false, subagent_enabled: false`
  • Standard mode: `thinking_enabled: true, is_plan_mode: false, subagent_enabled: false`
  • Pro mode: `thinking_enabled: true, is_plan_mode: true, subagent_enabled: false`
  • Ultra mode: `thinking_enabled: true, is_plan_mode: true, subagent_enabled: true`

3. Continue a Conversation

To send follow-up messages, reuse the same `thread_id` from step 2 and POST another run with the new message.

4. List Models

curl -s "$DEERFLOW_GATEWAY_URL/api/models"

Returns: `{"models": [{"name": "...", "provider": "...", ...}, ...]}`

5. List Skills

curl -s "$DEERFLOW_GATEWAY_URL/api/skills"

Returns: `{"skills": [{"name": "...", "enabled": true, ...}, ...]}`

6. Enable/Disable a Skill

curl -s -X PUT "$DEERFLOW_GATEWAY_URL/api/skills/<skill_name>" \
  -H "Content-Type: application/json" \
  -d '{"enabled": true}'

7. List Agents

curl -s "$DEERFLOW_GATEWAY_URL/api/agents"

Returns: `{"agents": [{"name": "...", ...}, ...]}`

8. Get Memory

curl -s "$DEERFLOW_GATEWAY_URL/api/memory"

Returns user context, facts, and conversation history summaries.

9. Upload Files to a Thread

curl -s -X POST "$DEERFLOW_GATEWAY_URL/api/threads/<thread_id>/uploads" \
  -F "files=@/path/to/file.pdf"

Supports PDF, PPTX, XLSX, DOCX — automatically converts to Markdown.

10. List Uploaded Files

curl -s "$DEERFLOW_GATEWAY_URL/api/threads/<thread_id>/uploads/list"

11. Get Thread History

curl -s "$DEERFLOW_LANGGRAPH_URL/threads/<thread_id>/history"

12. List Threads

curl -s -X POST "$DEERFLOW_LANGGRAPH_URL/threads/search" \
  -H "Content-Type: application/json" \
  -d '{"limit": 20, "sort_by": "updated_at", "sort_order": "desc"}'

Usage Script

For sending messages and collecting the full response, use the helper script:

bash /path/to/skills/claude-to-deerflow/scripts/chat.sh "Your question here"

See `scripts/chat.sh` for the implementation. The script: 1. Checks health 2. Creates a thread 3. Streams the run and collects the final AI response 4. Prints the result

Parsing SSE Output

Read more
Ships withdeer-flow

On February 28th, 2026, DeerFlow claimed the 🏆 #1 spot on GitHub Trending following the launch of version 2. Thanks a million to our incredible community — you made this happen!

Get the whole plugin

Other skills on deer-flow.