MyWorkflow 命令行界面(CLI)
一个基于Typer的现代命令行工具,用于协调日常自动化任务,集成了基于大型语言模型(LLM)的意图解析、LangGraph工作流、MCP工具以及事件驱动触发器。
📚 文档
入门指南
uv sync
cp .env.example .env # update the values inside
uv run myworkflow --help # use `uv run mw` or `.venv/bin/mw` inside the project拥有全球视野 mw 命令,通过(某种方式)安装 pipx (见下文)。填充/填写 .env 使用您的凭据和配置。示例条目(全部可选——如果没有API密钥,CLI将回退到基于规则的意图解析):
MYWORKFLOW_LLM_API_KEY=sk-...
MYWORKFLOW_LLM_MODEL=deepseek-chat
MYWORKFLOW_LLM_BASE_URL=https://api.deepseek.com/v1
MYWORKFLOW_MCP_CONFIG=./.myworkflow/mcp_config.json
MYWORKFLOW_CONFIG_FILE=./.myworkflow/app_config.json配置文件现在由……进行管理 .myworkflow/ 用于更好组织的目录:
.myworkflow/
├── app_config.json # Application configuration
├── mcp_config.json # MCP server configuration
└── workflows/ # Workflow definitions directory
├── git-log-notify.json
├── multi-branch-git-log.json
└── custom_workflow.jsonMCP配置遵循最新的 mcp-use 文档格式。
配置管理
自动初始化配置文件:
# Initialize all configuration files
uv run myworkflow config init
# Check configuration status
uv run myworkflow config status
# Auto-initialize missing configs only
uv run myworkflow config auto-init工作流模板初始化
快速从模板或自定义任务列表创建新工作流:
# List available workflow templates
uv run myworkflow workflow-init list-templates
# List available tasks for custom workflows
uv run myworkflow workflow-init list-tasks
# View template details
uv run myworkflow workflow-init template-info simple_sequence
# Initialize workflow from template
uv run myworkflow workflow-init init --template simple_sequence --name my-workflow
# Create custom workflow with specific tasks
uv run myworkflow workflow-init init --name custom-workflow --tasks echo,shell,git_command
# Check workflow directory status
uv run myworkflow workflow-init status可用模板:
- 简单序列基本顺序执行工作流程
- Git工作流Git操作工作流模板
- 文件处理文件处理工作流程模板
对于工作流默认设置(例如,git log 输出路径),应用程序配置现在存储在 .myworkflow/app_config.json 并通过CLI命令自动加载。 对它而言。CLI 命令会自动读取这些默认值。
附加的使用说明已记录在 docs/使用指南.md面向开发者的 指导存在于 docs/开发指南.md。
使用 pipx 进行全局安装
pipx install --include-deps .安装后,使用简短命令:
mw # launches interactive shell (global)
mw task list # standard Typer subcommands remain available交互式外壳提示:
- 命令面板(
/)使用↑↓键浏览,按Tab插入高亮显示的命令(不自动运行),Enter执行;实施,Esc取消。 - 上下文感知补全选择一个需要参数的命令后(例如。
/task run), 壳程序(或命令行界面)列出所有有效的任务/工作流/模板名称;继续使用 ↑↓/Tab完成参数后,输入以进行筛选。 - 斜杠快捷键在任何Typer命令前加上
/(/task list,/workflow run-by-name),或输入自然语言(执行 echo 输出你好) 以直接调用解释流程。 - 实时状态与提示命令会显示成功/错误状态,并提供如何修正拼写错误的指导(例如,最接近的任务名称),同时在长时间运行的工作流程执行时显示旋转反馈指示。
命令行用户体验增强:
- 所有Typer命令(例如。
myworkflow task run,myworkflow workflow info) 包括任务/工作流/模板名称的自动补全功能——按Tab在大多数终端中需按两次以探索选项。 - 当提供的任务/工作流/模板缺失时,CLI 现在会建议最接近的匹配项,并指出后续命令(例如
myworkflow task list)。 - 长时间运行的操作(任务执行、工作流运行、模板初始化)会显示进度旋转器和时间摘要,让您随时了解命令行界面(CLI)正在执行的操作。
主要特点
- 由Typer驱动的现代命令行界面(CLI)
- 增强型交互式外壳(或:增强的交互式命令行界面)命令面板、上下文自动补全和实时执行状态反馈
- 使用 Pydantic 验证的任务注册表与 LangGraph 工作流
- 通过DeepSeek(兼容OpenAI)或基于规则的备用方法进行自然语言意图解析
- 使用可选的MCP工具执行
mcp-use - 用于构建自定义自动化的可重用 Git 和文件系统任务
- 通过文件系统事件实现自动化
watchdog
示例用法
基本命令
uv run myworkflow task list
uv run myworkflow task run echo -p text="Hello"
uv run myworkflow interpret "Run echo with text hello" --execute
uv run myworkflow events watch --path .工作流管理
列出所有可用的工作流:
uv run myworkflow workflow list查看工作流详情:
uv run myworkflow workflow info git_log_notify按名称执行工作流:
uv run myworkflow workflow run-by-name git_log_notify
uv run myworkflow workflow run-by-name multi_branch_git_log顺序工作流示例(传统方法):
uv run myworkflow workflow run echo shell --parameters workflow.json导出 Git 提交历史:
uv run myworkflow task run git_log_analysis --repository-path . --format oneline工作流配置文件
新的工作流配置格式支持丰富的元数据和步骤定义。请将配置文件放置在 .myworkflow/workflows/ 目录:
重要提示在工作流中,参数名称必须与任务的 Pydantic 模型字段完全匹配。例如:
echo任务要求text参数shell任务要求command参数read_file任务要求path参数write_file任务要求file_path并且content参数
如果参数名称不匹配,工作流执行将失败。请使用 uv run myworkflow task list 查看所有可用任务及其参数要求。
{
"name": "git_log_notify",
"version": "1.0.0",
"description": "Get Git log and send desktop notification",
"author": "MyWorkflow",
"tags": ["git", "notification", "log"],
"entry_step": "git_command",
"steps": {
"git_command": {
"task": "git_command",
"description": "Get the last 10 Git commit logs",
"next": "write_file",
"parameters": {
"command": "log",
"args": ["--oneline", "-10"]
}
},
"write_file": {
"task": "write_file",
"description": "Save Git log to temporary file",
"next": "desktop_notification",
"parameters": {
"file_path": "/tmp/git-log.txt",
"content": "{{git_command.output}}",
"mode": "w"
}
},
"desktop_notification": {
"task": "desktop_notification",
"description": "Send desktop notification with Git log content",
"parameters": {
"title": "Git Log Complete",
"message": "Git log saved to /tmp/git-log.txt\n{{git_command.output}}"
}
}
},
"timeout": 300,
"environment": {},
"variables": {},
"metadata": {}
}传统的 workflow.json 参数文件示例:
{
"echo": {"text": "Hello"},
"shell": {"command": ["echo", "World"]}
}增强命令选择功能的交互式Shell
启动交互式外壳:
uv run mw
# or directly
mw交互式命令选择:
- 类型
/进入命令选择器 - 使用↑↓箭头键浏览命令
- 新闻界;媒体
Tab填充选定命令(不执行) - 根据需要添加参数
- 新闻界;按压
Enter执行
示例交互流程:
╭─[MyWorkflow]
╰─➤ / # Enter command selector
# Command selector opens with categorized commands
# Navigate with ↑↓, select with Tab
╭─[MyWorkflow]
╰─➤ /task run # Command filled, ready for parameters
╭─[MyWorkflow]
╰─➤ /task run echo -p text="Hello World"
# Press Enter to execute
# Workflow related commands
╭─[MyWorkflow]
╰─➤ /workflow list # List all workflows
╭─[MyWorkflow]
╰─➤ /workflow info git_log_notify # View workflow details
╭─[MyWorkflow]
╰─➤ /workflow run-by-name git_log_notify # Execute workflow
# Workflow initialization commands
╭─[MyWorkflow]
╰─➤ /workflow-init list-templates # List available templates
╭─[MyWorkflow]
╰─➤ /workflow-init init --template simple_sequence --name test # Create from template创造传统 workflow.json 包含每个任务的参数:
{
"echo": {"text": "Hello"},
"shell": {"command": ["echo", "World"]}
}当使用MCP工装时,请确保 .myworkflow/mcp_config.json 文件列出了以下的MCP服务器 mcpServers 如上游README中所述的密钥。
