github / github/copilot-cli

Add a `--prompt-file <path>` flag (large prompts hit ARG_MAX; stdin is awkward)

Open
#3,398 2 comments 0 reactions 0 assignees View on GitHub
area:non-interactive
Dominant language
Shell
Stars
11.2k
Forks
1.9k
Avg merge
14h 16m
Merged PRs (30d)
6

Description

## Summary

Add a `--prompt-file ` flag to read the prompt from a file instead of from `-p ` or stdin.

## Motivation

Today there are two ways to give Copilot CLI a prompt in non-interactive mode:

1. `-p "$(cat prompt.md)"` — convenient, but the whole prompt is passed on the command line, which is subject to `ARG_MAX` (~2 MB on typical Linux). For our use case (code-review bot that inlines the PR diff plus prior reviews) this is close enough to the limit to be a concern.
2. `< prompt.md` (stdin) — works, no size limit, but is awkward to thread through wrapper scripts that already use stdin for other purposes, and it's harder for new users to discover.

A first-class `--prompt-file` flag would:
- Have no size limit (just reads the file).
- Be self-documenting in scripts (`copilot --prompt-file ./review-prompt.md` vs `copilot -p "$(cat review-prompt.md)"`).
- Compose naturally with workflows that build prompts incrementally (instructions + diff + prior reviews) into a single file.

## Suggested behaviour

```bash
copilot --model gpt-5.5 --prompt-file ./prompt.md # equivalent to `-p "$(cat ./prompt.md)"` but unbounded
copilot --model gpt-5.5 --prompt-file - # explicit stdin (same as today's bare `<`)
```

Mutually exclusive with `-p`/`--prompt`. Error if the file doesn't exist or is empty.

## Why now

I just shipped a self-hosted GitHub Actions workflow that calls Copilot CLI three times per PR (two reviewers + synthesiser), each with a prompt that inlines the PR diff, repo instructions, and (for the synthesiser) the two prior reviews. The consensus prompt can approach several hundred KB; we use stdin today, which works but isn't obvious to anyone reading the workflow. `--prompt-file` would make the intent clear without a wrapper.

## Environment

- GitHub Copilot CLI: `1.0.49`
- Use case: non-interactive `-p`/stdin in GitHub Actions

Contributor guide

Open the contributing guide

Research direction

Start by locating the existing -p/--prompt option handling and the non-interactive stdin path. Add the mutually exclusive --prompt-file path, including '-' for stdin, and verify that missing or empty files produce errors and that normal file prompts work as described.

Written by the indexing model from the issue text.

Assessment

Tech stack
shell
Domain
cli
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
64/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.