{"id":51026747,"url":"https://github.com/gitstq/flowforge","last_synced_at":"2026-06-21T20:02:17.630Z","repository":{"id":360037875,"uuid":"1248461651","full_name":"gitstq/flowforge","owner":"gitstq","description":"A lightweight CLI tool for defining, executing, and managing development workflows","archived":false,"fork":false,"pushed_at":"2026-05-24T17:12:52.000Z","size":28,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-24T19:15:38.974Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gitstq.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-24T17:12:16.000Z","updated_at":"2026-05-24T17:12:56.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/gitstq/flowforge","commit_stats":null,"previous_names":["gitstq/flowforge"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/gitstq/flowforge","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitstq%2Fflowforge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitstq%2Fflowforge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitstq%2Fflowforge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitstq%2Fflowforge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gitstq","download_url":"https://codeload.github.com/gitstq/flowforge/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitstq%2Fflowforge/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34623906,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-21T02:00:05.568Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-21T20:02:16.710Z","updated_at":"2026-06-21T20:02:17.618Z","avatar_url":"https://github.com/gitstq.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/version-1.0.0-blue.svg\" alt=\"Version\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/license-MIT-green.svg\" alt=\"License\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/node-%3E%3D16.0.0-brightgreen.svg\" alt=\"Node Version\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey.svg\" alt=\"Platform\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#english\"\u003eEnglish\u003c/a\u003e | \n  \u003ca href=\"#简体中文\"\u003e简体中文\u003c/a\u003e | \n  \u003ca href=\"#繁體中文\"\u003e繁體中文\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n\u003ca name=\"english\"\u003e\u003c/a\u003e\n# 🎉 FlowForge\n\n**A lightweight CLI tool for defining, executing, and managing development workflows.**\n\nFlowForge helps developers automate repetitive tasks with simple YAML configuration. Define your workflows once, run them everywhere. Perfect for build pipelines, deployment scripts, and development automation.\n\n## ✨ Core Features\n\n- 📝 **Simple Configuration** - Define workflows in YAML or JSON with minimal syntax\n- ⚡ **Flexible Execution** - Run tasks in serial or parallel with dependency management\n- 🔗 **Smart Dependencies** - Define task dependencies with automatic execution order\n- 🎯 **Conditional Execution** - Run tasks based on branch, environment, or file conditions\n- 📊 **Beautiful Output** - Modern terminal UI with progress tracking and summaries\n- 💾 **History Tracking** - View execution history and statistics\n- 🧩 **Auto-Detection** - Automatically detect project type and generate templates\n- 🚀 **Zero Dependencies** - Single binary, no external dependencies required\n\n## 🚀 Quick Start\n\n### Installation\n\n```bash\n# Using npm\nnpm install -g flowforge\n\n# Using yarn\nyarn global add flowforge\n\n# Or run directly with npx\nnpx flowforge --help\n```\n\n### Initialize a Workflow\n\n```bash\n# Auto-detect project type and create config\nflowforge init\n\n# Or specify project type\nflowforge init --type node\nflowforge init --type python\nflowforge init --type go\nflowforge init --type rust\n```\n\n### Run a Workflow\n\n```bash\n# Run with default config\nflowforge run\n\n# Run with parallel execution\nflowforge run --parallel\n\n# Run specific task only\nflowforge run --task build\n\n# Run with verbose output\nflowforge run --verbose\n```\n\n## 📖 Detailed Usage\n\n### Workflow Configuration\n\nCreate a `flowforge.yml` file in your project root:\n\n```yaml\nname: my-project\nversion: 1.0.0\ndescription: Development workflow for my project\n\nsettings:\n  parallel: true      # Run tasks in parallel\n  failFast: true      # Stop on first failure\n  maxParallel: 4      # Max concurrent tasks\n  timeout: 300000     # 5 minutes timeout\n\ntasks:\n  - name: install\n    command: npm install\n    description: Install dependencies\n\n  - name: lint\n    command: npm run lint\n    description: Run linter\n    dependsOn: [install]\n\n  - name: test\n    command: npm test\n    description: Run tests\n    dependsOn: [install]\n\n  - name: build\n    command: npm run build\n    description: Build project\n    dependsOn: [lint, test]\n```\n\n### Task Options\n\nEach task supports the following options:\n\n| Option | Type | Description |\n|--------|------|-------------|\n| `name` | string | Task name (required) |\n| `command` | string | Command to execute (required) |\n| `description` | string | Task description |\n| `cwd` | string | Working directory |\n| `env` | object | Environment variables |\n| `timeout` | number | Timeout in milliseconds |\n| `retry` | number | Number of retry attempts |\n| `dependsOn` | string[] | Task dependencies |\n| `condition` | object | Conditional execution rules |\n| `silent` | boolean | Suppress output |\n| `ignoreError` | boolean | Continue on failure |\n\n### Conditional Execution\n\nRun tasks based on conditions:\n\n```yaml\ntasks:\n  - name: deploy-production\n    command: npm run deploy:prod\n    condition:\n      branch: main           # Only on main branch\n      env: CI               # Only when CI env var is set\n      fileExists: dist/     # Only when dist/ exists\n```\n\n### CLI Commands\n\n```bash\nflowforge init              # Create new workflow config\nflowforge run [file]        # Execute workflow\nflowforge list              # List all tasks\nflowforge validate [file]   # Validate configuration\nflowforge history           # Show execution history\nflowforge stats             # Show workflow statistics\nflowforge clean             # Clear history\n```\n\n## 💡 Design Philosophy\n\nFlowForge was designed with these principles in mind:\n\n1. **Simplicity First** - Minimal configuration, maximum productivity\n2. **Developer Experience** - Beautiful output, helpful error messages\n3. **Flexibility** - Support for any project type and workflow\n4. **Reliability** - Proper error handling and dependency resolution\n\n### Future Roadmap\n\n- [ ] Web UI for workflow visualization\n- [ ] Remote execution support\n- [ ] Plugin system for custom task types\n- [ ] Integration with CI/CD platforms\n- [ ] Workflow templates marketplace\n\n## 📦 Deployment\n\n### Build from Source\n\n```bash\ngit clone https://github.com/gitstq/flowforge.git\ncd flowforge\nnpm install\nnpm run build\nnpm link  # Install globally\n```\n\n### Create Distribution Package\n\n```bash\nnpm pack\n```\n\n## 🤝 Contributing\n\nWe welcome contributions! Please follow these steps:\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'feat: add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n### Development Setup\n\n```bash\ngit clone https://github.com/gitstq/flowforge.git\ncd flowforge\nnpm install\nnpm run dev  # Run in development mode\n```\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n---\n\n\u003ca name=\"简体中文\"\u003e\u003c/a\u003e\n# 🎉 FlowForge\n\n**轻量级开发工作流自动化 CLI 工具**\n\nFlowForge 帮助开发者通过简单的 YAML 配置自动化重复性任务。一次定义工作流，随处运行。非常适合构建流水线、部署脚本和开发自动化。\n\n## ✨ 核心特性\n\n- 📝 **简洁配置** - 使用 YAML 或 JSON 定义工作流，语法极简\n- ⚡ **灵活执行** - 支持串行或并行执行，自动管理依赖\n- 🔗 **智能依赖** - 定义任务依赖关系，自动计算执行顺序\n- 🎯 **条件执行** - 基于分支、环境变量或文件条件执行任务\n- 📊 **美观输出** - 现代化终端 UI，实时进度跟踪\n- 💾 **历史记录** - 查看执行历史和统计数据\n- 🧩 **自动检测** - 自动识别项目类型并生成模板\n- 🚀 **零依赖** - 单一二进制文件，无需外部依赖\n\n## 🚀 快速开始\n\n### 安装\n\n```bash\n# 使用 npm\nnpm install -g flowforge\n\n# 使用 yarn\nyarn global add flowforge\n\n# 或直接使用 npx 运行\nnpx flowforge --help\n```\n\n### 初始化工作流\n\n```bash\n# 自动检测项目类型并创建配置\nflowforge init\n\n# 或指定项目类型\nflowforge init --type node\nflowforge init --type python\nflowforge init --type go\nflowforge init --type rust\n```\n\n### 运行工作流\n\n```bash\n# 使用默认配置运行\nflowforge run\n\n# 并行执行\nflowforge run --parallel\n\n# 只运行特定任务\nflowforge run --task build\n\n# 详细输出模式\nflowforge run --verbose\n```\n\n## 📖 详细使用\n\n### 工作流配置\n\n在项目根目录创建 `flowforge.yml` 文件：\n\n```yaml\nname: my-project\nversion: 1.0.0\ndescription: 我项目的开发工作流\n\nsettings:\n  parallel: true      # 并行执行任务\n  failFast: true      # 首次失败时停止\n  maxParallel: 4      # 最大并发任务数\n  timeout: 300000     # 5分钟超时\n\ntasks:\n  - name: install\n    command: npm install\n    description: 安装依赖\n\n  - name: lint\n    command: npm run lint\n    description: 运行代码检查\n    dependsOn: [install]\n\n  - name: test\n    command: npm test\n    description: 运行测试\n    dependsOn: [install]\n\n  - name: build\n    command: npm run build\n    description: 构建项目\n    dependsOn: [lint, test]\n```\n\n### 任务选项\n\n每个任务支持以下选项：\n\n| 选项 | 类型 | 描述 |\n|------|------|------|\n| `name` | string | 任务名称（必填） |\n| `command` | string | 要执行的命令（必填） |\n| `description` | string | 任务描述 |\n| `cwd` | string | 工作目录 |\n| `env` | object | 环境变量 |\n| `timeout` | number | 超时时间（毫秒） |\n| `retry` | number | 重试次数 |\n| `dependsOn` | string[] | 任务依赖 |\n| `condition` | object | 条件执行规则 |\n| `silent` | boolean | 静默输出 |\n| `ignoreError` | boolean | 失败时继续 |\n\n### 条件执行\n\n基于条件执行任务：\n\n```yaml\ntasks:\n  - name: deploy-production\n    command: npm run deploy:prod\n    condition:\n      branch: main           # 仅在 main 分支\n      env: CI               # 仅当 CI 环境变量存在\n      fileExists: dist/     # 仅当 dist/ 目录存在\n```\n\n### CLI 命令\n\n```bash\nflowforge init              # 创建新的工作流配置\nflowforge run [file]        # 执行工作流\nflowforge list              # 列出所有任务\nflowforge validate [file]   # 验证配置\nflowforge history           # 显示执行历史\nflowforge stats             # 显示工作流统计\nflowforge clean             # 清除历史\n```\n\n## 💡 设计理念\n\nFlowForge 的设计遵循以下原则：\n\n1. **简洁优先** - 最小配置，最大生产力\n2. **开发者体验** - 美观输出，友好的错误提示\n3. **灵活性** - 支持任何项目类型和工作流\n4. **可靠性** - 完善的错误处理和依赖解析\n\n### 未来规划\n\n- [ ] 工作流可视化 Web UI\n- [ ] 远程执行支持\n- [ ] 自定义任务类型插件系统\n- [ ] CI/CD 平台集成\n- [ ] 工作流模板市场\n\n## 📦 部署\n\n### 从源码构建\n\n```bash\ngit clone https://github.com/gitstq/flowforge.git\ncd flowforge\nnpm install\nnpm run build\nnpm link  # 全局安装\n```\n\n### 创建发布包\n\n```bash\nnpm pack\n```\n\n## 🤝 贡献指南\n\n欢迎贡献！请遵循以下步骤：\n\n1. Fork 本仓库\n2. 创建功能分支 (`git checkout -b feature/amazing-feature`)\n3. 提交更改 (`git commit -m 'feat: add amazing feature'`)\n4. 推送到分支 (`git push origin feature/amazing-feature`)\n5. 创建 Pull Request\n\n### 开发环境设置\n\n```bash\ngit clone https://github.com/gitstq/flowforge.git\ncd flowforge\nnpm install\nnpm run dev  # 开发模式运行\n```\n\n## 📄 开源协议\n\n本项目基于 MIT 协议开源 - 详见 [LICENSE](LICENSE) 文件。\n\n---\n\n\u003ca name=\"繁體中文\"\u003e\u003c/a\u003e\n# 🎉 FlowForge\n\n**輕量級開發工作流程自動化 CLI 工具**\n\nFlowForge 幫助開發者透過簡單的 YAML 配置自動化重複性任務。一次定義工作流程，隨處執行。非常適合建構流水線、部署腳本和開發自動化。\n\n## ✨ 核心特性\n\n- 📝 **簡潔配置** - 使用 YAML 或 JSON 定義工作流程，語法極簡\n- ⚡ **靈活執行** - 支援序列或並行執行，自動管理依賴\n- 🔗 **智慧依賴** - 定義任務依賴關係，自動計算執行順序\n- 🎯 **條件執行** - 基於分支、環境變數或檔案條件執行任務\n- 📊 **美觀輸出** - 現代化終端 UI，即時進度追蹤\n- 💾 **歷史記錄** - 查看執行歷史和統計資料\n- 🧩 **自動偵測** - 自動識別專案類型並產生範本\n- 🚀 **零依賴** - 單一二進位檔案，無需外部依賴\n\n## 🚀 快速開始\n\n### 安裝\n\n```bash\n# 使用 npm\nnpm install -g flowforge\n\n# 使用 yarn\nyarn global add flowforge\n\n# 或直接使用 npx 執行\nnpx flowforge --help\n```\n\n### 初始化工作流程\n\n```bash\n# 自動偵測專案類型並建立設定\nflowforge init\n\n# 或指定專案類型\nflowforge init --type node\nflowforge init --type python\nflowforge init --type go\nflowforge init --type rust\n```\n\n### 執行工作流程\n\n```bash\n# 使用預設設定執行\nflowforge run\n\n# 並行執行\nflowforge run --parallel\n\n# 只執行特定任務\nflowforge run --task build\n\n# 詳細輸出模式\nflowforge run --verbose\n```\n\n## 📖 詳細使用\n\n### 工作流程設定\n\n在專案根目錄建立 `flowforge.yml` 檔案：\n\n```yaml\nname: my-project\nversion: 1.0.0\ndescription: 我專案的開發工作流程\n\nsettings:\n  parallel: true      # 並行執行任務\n  failFast: true      # 首次失敗時停止\n  maxParallel: 4      # 最大並發任務數\n  timeout: 300000     # 5分鐘逾時\n\ntasks:\n  - name: install\n    command: npm install\n    description: 安裝依賴\n\n  - name: lint\n    command: npm run lint\n    description: 執行程式碼檢查\n    dependsOn: [install]\n\n  - name: test\n    command: npm test\n    description: 執行測試\n    dependsOn: [install]\n\n  - name: build\n    command: npm run build\n    description: 建構專案\n    dependsOn: [lint, test]\n```\n\n### 任務選項\n\n每個任務支援以下選項：\n\n| 選項 | 類型 | 描述 |\n|------|------|------|\n| `name` | string | 任務名稱（必填） |\n| `command` | string | 要執行的命令（必填） |\n| `description` | string | 任務描述 |\n| `cwd` | string | 工作目錄 |\n| `env` | object | 環境變數 |\n| `timeout` | number | 逾時時間（毫秒） |\n| `retry` | number | 重試次數 |\n| `dependsOn` | string[] | 任務依賴 |\n| `condition` | object | 條件執行規則 |\n| `silent` | boolean | 靜默輸出 |\n| `ignoreError` | boolean | 失敗時繼續 |\n\n### 條件執行\n\n基於條件執行任務：\n\n```yaml\ntasks:\n  - name: deploy-production\n    command: npm run deploy:prod\n    condition:\n      branch: main           # 僅在 main 分支\n      env: CI               # 僅當 CI 環境變數存在\n      fileExists: dist/     # 僅當 dist/ 目錄存在\n```\n\n### CLI 命令\n\n```bash\nflowforge init              # 建立新的工作流程設定\nflowforge run [file]        # 執行工作流程\nflowforge list              # 列出所有任務\nflowforge validate [file]   # 驗證設定\nflowforge history           # 顯示執行歷史\nflowforge stats             # 顯示工作流程統計\nflowforge clean             # 清除歷史\n```\n\n## 💡 設計理念\n\nFlowForge 的設計遵循以下原則：\n\n1. **簡潔優先** - 最小設定，最大生產力\n2. **開發者體驗** - 美觀輸出，友善的錯誤提示\n3. **靈活性** - 支援任何專案類型和工作流程\n4. **可靠性** - 完善的錯誤處理和依賴解析\n\n### 未來規劃\n\n- [ ] 工作流程視覺化 Web UI\n- [ ] 遠端執行支援\n- [ ] 自訂任務類型外掛系統\n- [ ] CI/CD 平台整合\n- [ ] 工作流程範本市集\n\n## 📦 部署\n\n### 從原始碼建構\n\n```bash\ngit clone https://github.com/gitstq/flowforge.git\ncd flowforge\nnpm install\nnpm run build\nnpm link  # 全域安裝\n```\n\n### 建立發布套件\n\n```bash\nnpm pack\n```\n\n## 🤝 貢獻指南\n\n歡迎貢獻！請遵循以下步驟：\n\n1. Fork 本儲存庫\n2. 建立功能分支 (`git checkout -b feature/amazing-feature`)\n3. 提交變更 (`git commit -m 'feat: add amazing feature'`)\n4. 推送到分支 (`git push origin feature/amazing-feature`)\n5. 建立 Pull Request\n\n### 開發環境設定\n\n```bash\ngit clone https://github.com/gitstq/flowforge.git\ncd flowforge\nnpm install\nnpm run dev  # 開發模式執行\n```\n\n## 📄 開源授權\n\n本專案基於 MIT 授權開源 - 詳見 [LICENSE](LICENSE) 檔案。\n\n---\n\n\u003cp align=\"center\"\u003e\n  Made with ❤️ by the FlowForge Team\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgitstq%2Fflowforge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgitstq%2Fflowforge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgitstq%2Fflowforge/lists"}