mirror of
https://github.com/actions/ai-inference
synced 2026-09-05 19:59:15 +00:00
Mirror of https://github.com/actions/ai-inference
- TypeScript 82.9%
- Shell 12.1%
- JavaScript 5%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .devcontainer | ||
| .github | ||
| .licenses/npm | ||
| .vscode | ||
| __fixtures__ | ||
| __tests__ | ||
| dist | ||
| script | ||
| src | ||
| .env.example | ||
| .gitattributes | ||
| .gitignore | ||
| .licensed.yml | ||
| .node-version | ||
| .prettierignore | ||
| action.yml | ||
| CODE_OF_CONDUCT.md | ||
| CODEOWNERS | ||
| CONTRIBUTING.md | ||
| eslint.config.mjs | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| rollup.config.ts | ||
| SECURITY.md | ||
| SUPPORT.md | ||
| tsconfig.base.json | ||
| tsconfig.eslint.json | ||
| tsconfig.json | ||
AI Inference in GitHub Actions
Run AI inference in workflows using the GitHub Copilot CLI.
Usage
The action is Copilot-only. The provider input defaults to copilot, and copilot is the only supported value.
Because the Copilot CLI is not pre-installed on GitHub-hosted runners, install and authenticate it before invoking this action.
name: AI inference
on: workflow_dispatch
jobs:
inference:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
- name: Install Copilot CLI
run: npm install -g @github/copilot
- name: Run AI Inference via Copilot
id: inference
uses: actions/ai-inference@v1
with:
prompt: Summarize the latest changes in this repository.
model: gpt-4.1
env:
COPILOT_GITHUB_TOKEN: ${{ secrets.COPILOT_PAT }}
- name: Print output
run: echo "${{ steps.inference.outputs.response }}"
Prompt Files
You can provide prompt content inline or from files.
Text prompt file
steps:
- name: Run AI Inference with Text File
id: inference
uses: actions/ai-inference@v1
with:
prompt-file: ./.github/prompts/prompt.txt
Structured .prompt.yml file
steps:
- name: Run AI Inference with Prompt YAML
id: inference
uses: actions/ai-inference@v1
with:
prompt-file: ./.github/prompts/sample.prompt.yml
input: |
repo: actions/ai-inference
file_input: |
diff: ./artifacts/diff.txt
Example:
messages:
- role: system
content: Be concise and concrete.
- role: user
content: Summarize changes for {{repo}} using this diff:\n{{diff}}
model: gpt-4.1
System Prompt File
steps:
- name: Run AI Inference with System Prompt File
id: inference
uses: actions/ai-inference@v1
with:
prompt: Hello
system-prompt-file: ./.github/prompts/system.txt
Response File Output
The action writes the model response to a temporary file and exposes the path via response-file.
steps:
- name: Run AI Inference
id: inference
uses: actions/ai-inference@v1
with:
prompt: Hello
- name: Use Response File
run: |
echo "Response saved to: ${{ steps.inference.outputs.response-file }}"
cat "${{ steps.inference.outputs.response-file }}"
Inputs
Inputs are defined in action.yml.
| Name | Description | Default |
|---|---|---|
prompt |
Inline user prompt. | "" |
prompt-file |
Path to prompt file (.txt or .prompt.yml). When both are set, this takes precedence over prompt. |
"" |
input |
YAML template variables for .prompt.yml files. |
"" |
file_input |
YAML map of template variable names to file paths; file contents are injected into templates. | "" |
model |
Model to pass to Copilot CLI (for example gpt-4.1, claude-sonnet-4.5). Set empty to let CLI choose its default. |
gpt-4.1 |
system-prompt |
Inline system prompt. | You are a helpful assistant |
system-prompt-file |
Path to system prompt file. When both are set, this takes precedence over system-prompt. |
"" |
token |
Token value masked by the action. Defaults to github.token. |
github.token |
provider |
Inference provider. Only copilot is supported. |
copilot |
copilot-cli-path |
Path to Copilot CLI binary. If empty, uses copilot on PATH. |
"" |
copilot-allow-tools |
Comma-separated list of --allow-tool values passed to Copilot CLI. |
"" |
Outputs
| Name | Description |
|---|---|
response |
Model response text. |
response-file |
Path to temp file containing the response text. |
Notes
- The action invokes Copilot CLI with
-p <prompt> -s --no-ask-user. - No
--allow-toolflags are passed unless you setcopilot-allow-tools. - Ensure Copilot CLI authentication is configured on the runner, typically via
COPILOT_GITHUB_TOKEN.
Publishing a New Release
This project includes a helper script, script/release, to streamline tagging and pushing new releases for GitHub Actions. For more information, see Versioning in the GitHub Actions toolkit.