difyctl skills install to write a skill file for the coding agents on your machine. The agent picks it up and onboards itself from there.
The installed SKILL.md is a bootstrap, not a manual. It tells the agent the one thing that matters: run difyctl help -o json and treat that output as the source of truth.
At runtime, the agent reads the full command surface from the installed difyctl.
When to Use the Skill
- Your agent runtime reads skills: Claude Code, Codex, OpenCode, Cursor, pi, or anything else that picks up
SKILL.mdfiles from a skill directory. - The agent can run shell commands. The skill drives
difyctlthrough the agent’s shell tool. - You want zero maintenance: the skill never goes stale, because it lists no commands.
difyctl directly by reading difyctl help -o json at runtime.
Prerequisites
- Install
difyctland sign in on the machine the agent runs on, so it can reuse your session. For a server or container, see Authenticate Where Your Agent Runs. - Use a coding agent that reads skills and can run shell commands. A sandboxed agent with no shell access can’t use the skill.
- Launch the agent at least once before installing, so its config directory exists for
difyctl skills installto find.
Steps
1
Preview where the skill will land
Without
--yes, the command is a dry run:2
Write the skill
--yes writes to every detected agent. Pass --agent <name> to write to just one.3
Start a fresh agent session
Start a new session so the agent indexes the skill it just received.
See the Skills reference page for detection, target paths per agent, and the
--agent, --stdout, and explicit-directory forms.Test
The install prints the path it wrote; open that file to confirm the skill is there. Then check that the agent actually uses it:- Discovery: In a fresh session, ask the agent: “What can you do with
difyctl?” A correctly onboarded agent runsdifyctl help -o jsonand answers from its output rather than guessing commands. - End to end: Ask the agent to list your Dify apps and run one. Watch for
difyctl get app -o jsonfollowed by adescribe/runsequence with real IDs from the list. - Pause handling: If you have a Workflow app with a human-input step, ask the agent to run it. A paused run exits 0 and reports
"status": "paused"on stdout. The agent should recognize the pause and offer to resume, not report a failure or retry the run.
Troubleshooting
For everything else, see the full Troubleshooting page.