{"id":45342307,"url":"https://github.com/iflow-ai/iflow-cli-action","last_synced_at":"2026-02-21T10:33:32.716Z","repository":{"id":306978214,"uuid":"1027896321","full_name":"iflow-ai/iflow-cli-action","owner":"iflow-ai","description":"Automate software development tasks within your GitHub repositories with iFlow CLI and AI ecosystem. https://github.com/iflow-ai/iflow-cli","archived":false,"fork":false,"pushed_at":"2026-02-04T03:06:53.000Z","size":1627,"stargazers_count":59,"open_issues_count":2,"forks_count":15,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-04T14:47:58.840Z","etag":null,"topics":["agent-client-protocol","github-actions","iflow","iflow-cli","rust"],"latest_commit_sha":null,"homepage":"https://iflow-ai.github.io/iflow-cli-action/","language":"Rust","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/iflow-ai.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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":"2025-07-28T17:41:05.000Z","updated_at":"2026-02-04T03:06:57.000Z","dependencies_parsed_at":"2025-07-28T20:30:50.421Z","dependency_job_id":"42901902-28dd-4246-8631-52b21185a124","html_url":"https://github.com/iflow-ai/iflow-cli-action","commit_stats":null,"previous_names":["vibe-ideas/iflow-cli-action","iflow-ai/iflow-cli-action"],"tags_count":26,"template":false,"template_full_name":null,"purl":"pkg:github/iflow-ai/iflow-cli-action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iflow-ai%2Fiflow-cli-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iflow-ai%2Fiflow-cli-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iflow-ai%2Fiflow-cli-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iflow-ai%2Fiflow-cli-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iflow-ai","download_url":"https://codeload.github.com/iflow-ai/iflow-cli-action/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iflow-ai%2Fiflow-cli-action/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29679049,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T09:33:50.764Z","status":"ssl_error","status_checked_at":"2026-02-21T09:33:19.949Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["agent-client-protocol","github-actions","iflow","iflow-cli","rust"],"created_at":"2026-02-21T10:33:32.655Z","updated_at":"2026-02-21T10:33:32.710Z","avatar_url":"https://github.com/iflow-ai.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ![iflow-icon-ai](./assets/icon.png) iFlow CLI GitHub Action\n\n![GitHub License](https://img.shields.io/github/license/iflow-ai/iflow-cli-action) [![iFlow with MCP](https://github.com/iflow-ai/iflow-cli-action/actions/workflows/iflow-with-mcp.yml/badge.svg)](https://github.com/iflow-ai/iflow-cli-action/actions/workflows/iflow-with-mcp.yml) [![codecov](https://codecov.io/gh/vibe-ideas/iflow-cli-action/graph/badge.svg?token=d7IGlAGhlN)](https://codecov.io/gh/vibe-ideas/iflow-cli-action) ![GitHub Release](https://img.shields.io/github/v/release/iflow-ai/iflow-cli-action)\n\n\u003c!-- TOC start --\u003e\n## Table of Contents\n\n- [Features](#features)\n- [Usage](#usage)\n  - [Basic Example](#basic-example)\n- [Inputs](#inputs)\n- [Outputs](#outputs)\n- [Authentication](#authentication)\n  - [Getting an iFlow API Key](#getting-an-iflow-api-key)\n  - [Available Models](#available-models)\n- [Custom Configuration](#custom-configuration)\n  - [Using Pre-Execution Commands](#using-pre-execution-commands)\n    - [Multi-line Commands](#multi-line-commands)\n  - [Using Custom Settings](#using-custom-settings)\n  - [Using Custom Tool Versions](#using-custom-tool-versions)\n  - [Using MCP Servers](#using-mcp-servers)\n  - [Example: Using DeepWiki MCP Server](#example-using-deepwiki-mcp-server)\n  - [When to Use MCP Servers](#when-to-use-mcp-servers)\n- [Common Use Cases](#common-use-cases)\n  - [Code Analysis and Review](#code-analysis-and-review)\n  - [Documentation Generation](#documentation-generation)\n  - [Automated Testing Suggestions](#automated-testing-suggestions)\n  - [Issue Management](#issue-management)\n  - [Architecture Analysis](#architecture-analysis)\n- [Troubleshooting](#troubleshooting)\n  - [Common Issues](#common-issues)\n  - [Debug Mode](#debug-mode)\n- [Contributing](#contributing)\n- [License](#license)\n- [Related](#related)\n\u003c!-- TOC end --\u003e\n\nA GitHub Action that enables you to run [iFlow CLI](https://github.com/iflow-ai/iflow-cli) commands within your GitHub workflows. This Docker-based action comes with Node.js 22, npm, and uv (ultra-fast Python package manager) pre-installed for optimal performance, and executes your specified commands using the iFlow CLI.\n\n- [中文文档](README_zh.md)\n- [Deep Dive (中文)](docs/DeepDive.md)\n- [Deep Dive (English)](docs/DeepDive_en.md)\n\n\u003e Docs Site (generated with iFlow CLI GitHub Action): [https://iflow-ai.github.io/iflow-cli-action/](https://iflow-ai.github.io/iflow-cli-action/)\n\n## Features\n\n- ✅ Docker-based action with pre-installed Node.js 22, npm, go, cargo, and uv\n- ✅ Configurable authentication with iFlow API\n- ✅ Support for MCP servers\n- ✅ **Agent Client Protocol**: use [Rust ACP Websocket client](https://crates.io/crates/iflow-cli-sdk-rust) to communicate with iFlow CLI\n- ✅ Support for custom models and API endpoints\n- ✅ Flexible command execution with timeout control\n- ✅ Works in any working directory\n- ✅ Built with Rust for fast, reliable execution\n- ✅ **GitHub Actions Summary integration**: Rich execution reports in PR summaries\n- ✅ PR/Issue Integration: Works seamlessly with GitHub comments and PR reviews\n\n## Usage\n\n### Basic Example\n\nIssue triage with iFLOW CLI:\n\n```yaml\nname: '🏷️ iFLOW CLI Automated Issue Triage'\n\non:\n  issues:\n    types:\n      - 'opened'\n      - 'reopened'\n  issue_comment:\n    types:\n      - 'created'\n  workflow_dispatch:\n    inputs:\n      issue_number:\n        description: 'issue number to triage'\n        required: true\n        type: 'number'\n\nconcurrency:\n  group: '${{ github.workflow }}-${{ github.event.issue.number }}'\n  cancel-in-progress: true\n\ndefaults:\n  run:\n    shell: 'bash'\n\npermissions:\n  contents: 'read'\n  issues: 'write'\n  statuses: 'write'\n\njobs:\n  triage-issue:\n    if: |-\n      github.event_name == 'issues' ||\n      github.event_name == 'workflow_dispatch' ||\n      (\n        github.event_name == 'issue_comment' \u0026\u0026\n        contains(github.event.comment.body, '@iflow-cli /triage') \u0026\u0026\n        contains(fromJSON('[\"OWNER\", \"MEMBER\", \"COLLABORATOR\"]'), github.event.comment.author_association)\n      )\n    runs-on: 'ubuntu-latest'\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v4\n\n      - name: 'Run iFlow CLI Issue Triage'\n        uses: iflow-ai/iflow-cli-action@v2.0.0\n        id: 'iflow_cli_issue_triage'\n        env:\n          GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'\n          ISSUE_TITLE: '${{ github.event.issue.title }}'\n          ISSUE_BODY: '${{ github.event.issue.body }}'\n          ISSUE_NUMBER: '${{ github.event.issue.number }}'\n          REPOSITORY: '${{ github.repository }}'\n        with:\n          api_key: ${{ secrets.IFLOW_API_KEY }}\n          timeout: \"3600\"\n          debug: \"true\"\n          prompt: |\n            ## Role\n\n            You are an issue triage assistant. Analyze the current GitHub issue\n            and apply the most appropriate existing labels. Use the available\n            tools to gather information; do not ask for information to be\n            provided.\n\n            ## Steps\n\n            1. Run: `gh label list` to get all available labels.\n            2. Review the issue title and body provided in the environment\n               variables: \"${ISSUE_TITLE}\" and \"${ISSUE_BODY}\".\n            3. Classify issues by their kind (bug, enhancement, documentation,\n               cleanup, etc) and their priority (p0, p1, p2, p3). Set the\n               labels according to the format `kind/*` and `priority/*` patterns.\n            4. Apply the selected labels to this issue using:\n               `gh issue edit \"${ISSUE_NUMBER}\" --add-label \"label1,label2\"`\n            5. If the \"status/needs-triage\" label is present, remove it using:\n               `gh issue edit \"${ISSUE_NUMBER}\" --remove-label \"status/needs-triage\"`\n\n            ## Guidelines\n\n            - Only use labels that already exist in the repository\n            - Do not add comments or modify the issue content\n            - Triage only the current issue\n            - Assign all applicable labels based on the issue content\n            - Reference all shell variables as \"${VAR}\" (with quotes and braces)\n\n      - name: 'Post Issue Triage Failure Comment'\n        if: |-\n          ${{ failure() \u0026\u0026 steps.iflow_cli_issue_triage.outcome == 'failure' }}\n        uses: 'actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea'\n        with:\n          github-token: '${{ secrets.GITHUB_TOKEN }}'\n          script: |-\n            github.rest.issues.createComment({\n              owner: '${{ github.repository }}'.split('/')[0],\n              repo: '${{ github.repository }}'.split('/')[1],\n              issue_number: '${{ github.event.issue.number }}',\n              body: 'There is a problem with the iFlow CLI issue triaging. Please check the [action logs](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) for details.'\n            })\n```\n\n## Inputs\n\n| Input | Description | Required | Default |\n|-------|-------------|----------|---------|\n| `prompt` | The prompt to execute with iFlow CLI | ✅ Yes | - |\n| `api_key` | iFlow API key for authentication | ✅ Yes | - |\n| `settings_json` | Complete `~/.iflow/settings.json` content (JSON string). If provided, this will override other configuration options. | ❌ No | - |\n| `base_url` | Custom base URL for iFlow API | ❌ No | `https://apis.iflow.cn/v1` |\n| `model` | Model name to use | ❌ No | `qwen3-coder-plus` |\n| `working_directory` | Working directory to run iFlow CLI from | ❌ No | `.` |\n| `timeout` | Timeout for iFlow CLI execution in seconds (1-86400) | ❌ No | `86400` |\n| `precmd` | Shell command(s) to execute before running iFlow CLI (e.g., \"npm install\", \"git fetch\") | ❌ No | `` |\n| `gh_version` | Version of GitHub CLI to install (e.g., \"2.76.2\"). If not specified, uses the pre-installed version. | ❌ No | `` |\n| `iflow_version` | Version of iFlow CLI to install (e.g., \"0.2.4\"). If not specified, uses the pre-installed version. | ❌ No | `` |\n\n## Outputs\n\n| Output | Description |\n|--------|-------------|\n| `result` | Output from iFlow CLI execution |\n| `exit_code` | Exit code from iFlow CLI execution |\n\n## Authentication\n\n### Getting an iFlow API Key\n\n1. Register for an iFlow account at [iflow.cn](https://iflow.cn)\n2. Go to your profile settings or [click here to get your API key](https://iflow.cn/?open=setting)\n3. Click \"Reset\" in the pop-up dialog to generate a new API key\n4. Add the API key to your GitHub repository secrets as `IFLOW_API_KEY`\n\n### Available Models\n\n[Models](https://platform.iflow.cn/models)\n\n- `qwen3-coder-plus` (default) - Excellent for code analysis and generation\n- `kimi-k2-0905` - Good for general AI tasks and longer contexts\n- `glm-4.6` - Advanced reasoning and problem-solving\n- Custom models supported via OpenAI-compatible APIs\n\n## Custom Configuration\n\n### Using Pre-Execution Commands\n\nThe `precmd` input allows you to run shell commands before executing the iFlow CLI. This is useful for setting up the environment or installing dependencies needed for your iFlow commands.\n\n```yaml\n- name: iFlow with Pre-Execution Commands\n  uses: iflow-ai/iflow-cli-action@v2.0.0\n  with:\n    prompt: \"Analyze this codebase after installing dependencies\"\n    api_key: ${{ secrets.IFLOW_API_KEY }}\n    precmd: |\n      npm install\n      git fetch origin main\n```\n\n#### Multi-line Commands\n\nYou can specify multiple commands by separating them with newlines:\n\n```yaml\nprecmd: |\n  npm ci\n  npm run build\n```\n\n### Using Custom Settings\n\nFor advanced users who need complete control over the iFlow configuration, you can provide a custom `settings.json` directly:\n\n```yaml\n- name: Custom iFlow Configuration\n  uses: iflow-ai/iflow-cli-action@v2.0.0\n  with:\n    prompt: \"Analyze this codebase with custom configuration\"\n    api_key: ${{ secrets.IFLOW_API_KEY }}  # Still required for basic validation\n    settings_json: |\n      {\n        \"theme\": \"Dark\",\n        \"selectedAuthType\": \"iflow\",\n        \"apiKey\": \"${{ secrets.IFLOW_API_KEY }}\",\n        \"baseUrl\": \"https://custom-api.example.com/v1\",\n        \"modelName\": \"custom-model\",\n        \"searchApiKey\": \"${{ secrets.SEARCH_API_KEY }}\",\n        \"customField\": \"customValue\"\n      }\n```\n\nWhen `settings_json` is provided, it takes precedence over individual configuration inputs (`base_url`, `model`, etc.). This allows you to:\n\n- Use custom authentication types\n- Configure additional fields not available as inputs\n- Maintain complex configurations across multiple workflow runs\n- Support custom API endpoints and models\n\n**Note:** The `api_key` input is still required for validation, but the actual API key used will be the one specified in your `settings_json`.\n\n### Using Custom Tool Versions\n\nYou can specify custom versions of GitHub CLI and iFlow CLI to use in your workflow:\n\n```yaml\n- name: iFlow CLI with Custom Versions\n  uses: iflow-ai/iflow-cli-action@v2.0.0\n  with:\n    prompt: \"Analyze this codebase with specific tool versions\"\n    api_key: ${{ secrets.IFLOW_API_KEY }}\n    gh_version: \"2.76.2\"\n    iflow_version: \"0.2.4\"\n```\n\nThis is useful when you need to ensure compatibility with specific versions of these tools or when you want to use features available only in certain versions.\n\n### Using MCP Servers\n\n[MCP (Model Context Protocol)](https://modelcontextprotocol.io) allows iFlow CLI to connect to external tools and services, extending its capabilities beyond just AI model interactions. You can configure MCP servers in your workflow to enable features like code search, database querying, or custom tool integrations.\n\n### Example: Using DeepWiki MCP Server\n\nThe following example demonstrates how to configure and use the DeepWiki MCP server for enhanced code search capabilities:\n\n```yaml\n- name: iFlow CLI with MCP Server\n  uses: iflow-ai/iflow-cli-action@v2.0.0\n  with:\n    prompt: \"use @deepwiki to search how to use Skynet to build a game\"\n    api_key: ${{ secrets.IFLOW_API_KEY }}\n    settings_json: |\n      {\n        \"selectedAuthType\": \"iflow\",\n        \"apiKey\": \"${{ secrets.IFLOW_API_KEY }}\",\n        \"baseUrl\": \"https://apis.iflow.cn/v1\",\n        \"modelName\": \"qwen3-coder-plus\",\n        \"searchApiKey\": \"${{ secrets.IFLOW_API_KEY }}\",\n        \"mcpServers\": {\n          \"deepwiki\": {\n            \"command\": \"npx\",\n            \"args\": [\"-y\", \"mcp-deepwiki@latest\"]\n          }\n        }\n      }\n    model: \"qwen3-coder-plus\"\n    timeout: \"1800\"\n    debug: \"true\"\n```\n\nIn this example:\n\n- The `mcpServers` configuration defines a server named `deepwiki`\n- The server is executed using `npx -y mcp-deepwiki@latest`\n- The prompt references the server with `@deepwiki` to utilize its capabilities\n\n### When to Use MCP Servers\n\nMCP servers are particularly useful when you need:\n\n- Enhanced code search and documentation lookup capabilities\n- Integration with external tools and services\n- Access to specialized knowledge bases or databases\n- Custom tooling that extends the iFlow CLI functionality\n\n## Common Use Cases\n\nFor detailed examples of these use cases, please refer to the workflow files in the [examples](examples) directory.\n\n### Code Analysis and Review\n\nFor code review workflows, see:\n\n- [Code Review on Pull Requests](examples/code-review.yml) - Automatically reviews PRs when opened/reopened or when triggered by comment\n- [PR Review Killer](examples/pr-review-killer.yml) - Implements changes to PRs based on comments\n\n### Documentation Generation\n\nFor documentation generation workflows, see:\n\n- [Documentation Generation](examples/documentation.yml) - Automatically generates technical documentation from codebase\n\n### Automated Testing Suggestions\n\nAutomated testing suggestions can be implemented similar to the code review pattern. See the [code review example](examples/code-review.yml) for a template that can be adapted for testing suggestions by modifying the prompt.\n\n### Issue Management\n\nFor issue management workflows, see:\n\n- [Issue Killer](examples/issue-killer.yml) - Automatically implements features based on GitHub issues\n- [Issue Triage](examples/issue-triage.yaml) - Automatically labels new GitHub issues\n- [Issue Killer](examples/issue-killer.yml) - Implements features based on GitHub issues\n\n### Architecture Analysis\n\nArchitecture analysis can be performed using the iFlow CLI Action with custom prompts. See the [documentation example](examples/documentation.yml) for a template that can be adapted for architecture analysis by modifying the prompt.\n\n## Troubleshooting\n\n### Common Issues\n\n**Command timeout:** Increase the `timeout` value for complex operations\n\n```yaml\ntimeout: \"900\"  # 15 minutes\n```\n\n**API authentication failed:** Verify your API key is correctly set in repository secrets\n\n**Working directory not found:** Ensure the path exists and checkout action is used\n\n### Debug Mode\n\nEnable verbose logging by setting environment variables:\n\n```yaml\nenv:\n  ACTIONS_STEP_DEBUG: true\n```\n\n## Contributing\n\nContributions are welcome! Please feel free to submit issues and pull requests. Start with [Contributing Guide](./CONTRIBUTING.md).\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Related\n\n- [iFlow CLI](https://github.com/iflow-ai/iflow-cli) - The underlying CLI tool\n- [iFlow Platform](https://docs.iflow.cn/en/docs) - Official documentation\n- [GitHub Actions Documentation](https://docs.github.com/en/actions)\n- [Gemini CLI GitHub Action](https://github.com/google-github-actions/run-gemini-cli)\n- [iFlow CLI SDK for Rust](https://crates.io/crates/iflow-cli-sdk-rust)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiflow-ai%2Fiflow-cli-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiflow-ai%2Fiflow-cli-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiflow-ai%2Fiflow-cli-action/lists"}