skills/chat-directline/SKILL.md
Send a message to a Copilot Studio agent via DirectLine v3. Use for agents with no auth or manual auth. Requires a token endpoint URL or DirectLine secret.
npx skillsauth add microsoft/skills-for-copilot-studio skills/chat-directlineInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Send a single utterance to a published agent via the DirectLine v3 REST API. Use this for agents with no authentication (authenticationmode 1) or manual authentication (authenticationmode 3).
Run the script with --token-endpoint (from detect-mode output) and the utterance from $ARGUMENTS:
node ${CLAUDE_SKILL_DIR}/../../scripts/chat-with-agent.bundle.js \
--token-endpoint "<tokenEndpoint>" "<utterance>"
If the user provided a DirectLine secret instead:
node ${CLAUDE_SKILL_DIR}/../../scripts/chat-with-agent.bundle.js \
--directline-secret "<secret>" "<utterance>"
Parse the JSON output from stdout.
status: "ok"){
"status": "ok",
"protocol": "directline",
"utterance": "hello",
"conversation_id": "abc123-XYZ",
"directline_token": "eyJ...",
"watermark": "3",
"start_activities": [ ... ],
"activities": [ ... ]
}
Display the agent's response from the activities array:
type === "message" — show textsuggestedActions.actions arrayattachments with contentType === "application/vnd.microsoft.card.adaptive"Save conversation_id, directline_token, and watermark — needed for follow-ups.
status: "signin_required")The agent requires the user to authenticate (manual auth agents):
{
"status": "signin_required",
"protocol": "directline",
"signin_url": "https://...",
"resume_command": "...",
"followup_command": "..."
}
signin_url to the user, ask for the validation codenode ${CLAUDE_SKILL_DIR}/../../scripts/chat-with-agent.bundle.js <resume_command with code substituted>node ${CLAUDE_SKILL_DIR}/../../scripts/chat-with-agent.bundle.js <followup_command>Use resume_command and followup_command exactly as given.
Pass all three values from the previous response:
node ${CLAUDE_SKILL_DIR}/../../scripts/chat-with-agent.bundle.js \
--token-endpoint "<url>" "<follow-up>" \
--conversation-id "<id>" --directline-token "<token>" --watermark "<watermark>"
directline_token is bound to the conversation — do NOT fetch a new token. Always reuse from the previous response.watermark tracks seen activities — pass it to avoid duplicates.--conversation-id).| Error | Cause | Resolution |
|-------|-------|------------|
| Token endpoint rejected | Agent not published or wrong URL | Verify agent is published |
| Conversation not found | Token expired (>30 min) | Start a new conversation |
development
Pattern library for Copilot Studio agent design. Contains proven and recommended implementation patterns with YAML examples. Used by the Advisor agent to suggest patterns and by the Author agent to reference YAML structure during implementation. USE FOR: design guidance, pattern suggestions, review against best practices, troubleshooting known pitfalls, YAML reference during implementation. DO NOT USE FOR: general YAML schema reference (use int-reference), topic creation mechanics (use new-topic).
testing
Look up Copilot Studio YAML schema definitions. Use when the user asks about schema structure, element properties, or how to use a specific YAML kind.
data-ai
Reference tables for Copilot Studio YAML authoring: triggers, actions, variables, entities, Power Fx functions, templates. Preloaded by author and advisor agents.
development
Add a knowledge source (public website or SharePoint) to a Copilot Studio agent. Use when the user asks to add a knowledge source, documentation URL, website, or SharePoint site for the agent to search.