@orangemust/dify-cli
v0.2.3
Published
CLI for interacting with Dify applications
Maintainers
Readme
@orangemust/dify-cli
A command-line interface for interacting with Dify applications.
Installation
For Humans
Copy and paste this prompt to your LLM agent (Claude Code, Cursor, Codex, etc.):
Install and configure dify-cli by following the instructions here:
https://raw.githubusercontent.com/mack-peng/dify-cli/main/docs/guide/installation.mdOr read the Installation Guide, but seriously, let an agent do it. Humans fat-finger configs.
For LLM Agents
Fetch the installation guide and follow it:
curl -s https://raw.githubusercontent.com/mack-peng/dify-cli/main/docs/guide/installation.mdQuick Start
Install
npm install -g @orangemust/dify-cli
# Or run without installing:
# npx @orangemust/dify-cli chat send "hello"1. Configure API Key
Dify 有两种 API Key,互不通用。配置哪个 key,后续命令就操作哪个资源。
# 操作应用(chat/completion/workflow)用 app- 开头的 key
dify-cli config init --api-key app-xxxx
# 操作知识库用 dataset- 开头的 key
dify-cli config init --api-key dataset-xxxx
# 自部署需指定 base-url
dify-cli config init --api-key app-xxxx --base-url https://dify.example.com/v1切换操作对象时重新
config init,或用--api-key临时覆盖:dify-cli chat send "hello" --api-key app-xxxxdify-cli knowledge list --api-key dataset-xxxx
2. Try It
# 如果配了 app key
dify-cli info
# 如果配了 dataset key
dify-cli knowledge listAPI Keys
| Type | Prefix | Commands |
|------|--------|----------|
| App Key | app- | info, chat, completion, chatflow, workflow, conversation, file, audio, feedback, annotation |
| Dataset Key | dataset- | knowledge (datasets, documents, segments) |
Config file (~/.dify/config.json) holds one key at a time. Switch by re-running config init or override per-command with --api-key.
Configuration
# Initialize
dify-cli config init --api-key <key> --base-url <url> --default-user <user>
# Set individual values
dify-cli config set apiKey <key>
dify-cli config set baseUrl https://api.dify.ai/v1
# Get config
dify-cli config get
dify-cli config get apiKeyPriority: CLI flags > Environment variables > Config file
DIFY_API_KEY API key
DIFY_BASE_URL API base URL (default: https://api.dify.ai/v1)
DIFY_DEFAULT_USER User identifier (default: cli-user)Commands
App Info
dify-cli info # Get app info
dify-cli parameters # Get app parameters
dify-cli meta # Get app meta
dify-cli site # Get WebApp settingsChat App
dify-cli chat send "message" # Blocking
dify-cli chat send "message" --mode streaming # Streaming
dify-cli chat send "message" -c <conversation_id> # Continue conversation
dify-cli chat stop <task_id> # Stop generation
dify-cli chat feedback <message_id> -r like # Feedback
dify-cli chat suggested <message_id> # Suggested questionsCompletion App
dify-cli completion send "prompt"
dify-cli completion send "prompt" --mode streaming
dify-cli completion stop <task_id>Chatflow App
dify-cli chatflow send "message"
dify-cli chatflow stop <task_id>
dify-cli chatflow feedback <message_id> -r likeWorkflow App
dify-cli workflow run
dify-cli workflow run --inputs '{"key":"value"}'
dify-cli workflow stop <task_id>
dify-cli workflow logs
dify-cli workflow detail <run_id>Knowledge Base
dify-cli knowledge list
dify-cli knowledge create "My Knowledge"
dify-cli knowledge get <dataset_id>
dify-cli knowledge update <dataset_id> --name "New Name"
dify-cli knowledge delete <dataset_id>
# Documents
dify-cli knowledge document list <dataset_id>
dify-cli knowledge document create-text <dataset_id> --name "Doc" --text "content"
dify-cli knowledge document create-text <dataset_id> --name "Doc" --text "content" --process-rule-mode custom --max-tokens 500 --overlap 50
dify-cli knowledge document create-file <dataset_id> --file ./doc.pdf
dify-cli knowledge document create-file <dataset_id> --file ./doc.pdf --process-rule-mode custom --separator "\n" --max-tokens 500 --overlap 50 --remove-extra-spaces
dify-cli knowledge document get <dataset_id> <document_id>
dify-cli knowledge document delete <dataset_id> <document_id>
dify-cli knowledge document status <dataset_id> <batch>
# Segments
dify-cli knowledge segment list <dataset_id> <document_id>
dify-cli knowledge segment create <dataset_id> <document_id> --content "text"
dify-cli knowledge segment update <dataset_id> <document_id> <segment_id> --content "text"
dify-cli knowledge segment delete <dataset_id> <document_id> <segment_id>
# Retrieve
dify-cli knowledge retrieve <dataset_id> --query "search text"
dify-cli knowledge retrieve <dataset_id> --query "test" --retrieval-model '{"search_method":"hybrid_search","reranking_enable":false,"top_k":5,"score_threshold_enabled":false}'Conversation
dify-cli conversation list
dify-cli conversation get <conversation_id>
dify-cli conversation rename <conversation_id> -n "New Name"
dify-cli conversation delete <conversation_id>
dify-cli conversation variables <conversation_id>File
dify-cli file upload <file_path>
dify-cli file preview <file_id>Audio
dify-cli audio to-text <audio_file>
dify-cli audio to-audio "text to speak"Feedback
dify-cli feedback list --app-type chatAnnotations
dify-cli annotation create -q "question" -a "answer"
dify-cli annotation list
dify-cli annotation update <id> -q "new question" -a "new answer"
dify-cli annotation delete <id>
dify-cli annotation reply-configGlobal Options
--api-key <key> Override API key
--base-url <url> Override base URL
--user <id> User identifier (default: cli-user)Development
npm install
npm run build
npm run watch
npx tsc --noEmitLicense
MIT
