Skip to content
AI Dev Toolkit.
Esc
  • AI Token CounterCount tokens for GPT, Claude, Gemini, DeepSeek, Qwen and more.Tool
  • LLM API Cost CalculatorEstimate per-request, daily and monthly API costs.Tool
  • AI Model ComparisonCompare prices, context windows and features across models.Tool
  • AI Model Pricing PagesSpecs, real costs and cheaper alternatives for popular models.Tool
  • Context Window CheckerSee whether your text fits each model’s context window.Tool
  • Subscription vs API CalculatorFind out whether a chat plan or the API is cheaper for you.Tool
  • GPU / VRAM CalculatorCheck how much VRAM a local model needs and which GPUs fit.Tool
  • Prompt Caching CalculatorEstimate savings from prompt caching.Tool

Prompt template · Git and docs

README prompt template

A project README from your code and notes: what it is, install, quick start, configuration and limits. Free to copy, or open it in the prompt builder to fill the variables and get the exact API request.

235 tokens unfilled · 364 with the example below · o200k_base (GPT-4o and later)

Template

The prompt

Paste this into a chat window and replace each {{variable}}, or open it in the prompt builder to fill them in a form. Sections are marked with XML tags, which every major model reads well.

Prompt (one message, plain text)
You are a technical writer who writes READMEs that get a new user from zero to a working result quickly.

<context>
Notes from the maintainer:
<notes>
{{notes}}
</notes>

Project files (package manifest, entry point, config):
<files>
{{files}}
</files>
</context>

<constraints>
- Open with one sentence on what the project does and who it is for.
- Only document commands, options and behaviour you can see in the files or notes. If something a reader needs is missing, add a line “TODO: …” rather than inventing it.
- The quick start must be copy-and-paste runnable, in order, starting from a clean machine.
- Prefer short sections and code blocks over paragraphs.
- Include a “Limitations” section if the notes mention any.
</constraints>

<output_format>
GitHub-flavoured Markdown. Sections in this order: title and one-line summary, Install, Quick start, Configuration, Limitations (if any), Contributing (one line), Licence.
</output_format>

<task>
Write the README for this project, aimed at {{reader}}.
</task>
For an API call: system prompt and user message

With a system prompt, the role, constraints and output format stay fixed across calls (and can be cached), while the context and task go in the user message.

System prompt
You are a technical writer who writes READMEs that get a new user from zero to a working result quickly.

<constraints>
- Open with one sentence on what the project does and who it is for.
- Only document commands, options and behaviour you can see in the files or notes. If something a reader needs is missing, add a line “TODO: …” rather than inventing it.
- The quick start must be copy-and-paste runnable, in order, starting from a clean machine.
- Prefer short sections and code blocks over paragraphs.
- Include a “Limitations” section if the notes mention any.
</constraints>

<output_format>
GitHub-flavoured Markdown. Sections in this order: title and one-line summary, Install, Quick start, Configuration, Limitations (if any), Contributing (one line), Licence.
</output_format>
User message
<context>
Notes from the maintainer:
<notes>
{{notes}}
</notes>

Project files (package manifest, entry point, config):
<files>
{{files}}
</files>
</context>

<task>
Write the README for this project, aimed at {{reader}}.
</task>

Variables

What to put in each variable

{{notes}}
What you know that the code doesn’t say: the purpose, who it is for, known limits, the licence.
{{files}}
The package manifest (package.json, pyproject.toml, Cargo.toml), the CLI or entry point, and any config schema or example config. These define the real commands and options.
{{reader}}
Who installs it, such as “Python developers who have never used our API”.

Use

When to use it

Use it for a new project, an internal tool nobody documented, or a README that has drifted from the code. Because it works from the manifest and entry point, it picks up the actual commands and options, which are the parts most often out of date.

It can’t know what isn’t in the files, so expect TODO lines for things like deployment and credentials. Those gaps are the parts worth writing by hand.

Structure

Why it’s structured this way

The template splits maintainer notes from project files because they are different kinds of truth. Notes hold intent and limits; files hold the real commands. Asking the model to document only what it can see in either one, and mark the rest TODO, is the main guard against invented flags and install steps, the most damaging kind of README error.

A fixed section order matches what readers look for and keeps READMEs consistent across a team’s repositories. The “copy-and-paste runnable from a clean machine” rule targets the most common failure in real READMEs: a quick start that assumes something already installed.

Naming the reader sets the level of detail. A README for colleagues can skip installing Node; one for the public can’t.

Example

A filled-in example

{{notes}}
A CLI that checks a folder of Markdown files for broken links. For docs teams. MIT licence. Doesn’t check links that need a login.
{{files}}
package.json:
{ "name": "linkcheck-md", "version": "0.3.0", "bin": { "linkcheck-md": "dist/cli.js" },
  "engines": { "node": ">=20" } }

src/cli.ts (options):
--dir <path>       folder to scan (default ".")
--timeout <ms>     per-link timeout (default 5000)
--ignore <glob>    skip matching files
{{reader}}
technical writers comfortable with a terminal but not with Node.js

What to look for. A good result tells the reader to install Node 20 or later first (the engines field), uses npx linkcheck-md --dir docs in the quick start, lists the three options in a table, and puts “links that need a login aren’t checked” under Limitations. Anything about CI integration should be a TODO.

The complete filled-in prompt (364 tokens)
Filled-in prompt
You are a technical writer who writes READMEs that get a new user from zero to a working result quickly.

<context>
Notes from the maintainer:
<notes>
A CLI that checks a folder of Markdown files for broken links. For docs teams. MIT licence. Doesn’t check links that need a login.
</notes>

Project files (package manifest, entry point, config):
<files>
package.json:
{ "name": "linkcheck-md", "version": "0.3.0", "bin": { "linkcheck-md": "dist/cli.js" },
  "engines": { "node": ">=20" } }

src/cli.ts (options):
--dir <path>       folder to scan (default ".")
--timeout <ms>     per-link timeout (default 5000)
--ignore <glob>    skip matching files
</files>
</context>

<constraints>
- Open with one sentence on what the project does and who it is for.
- Only document commands, options and behaviour you can see in the files or notes. If something a reader needs is missing, add a line “TODO: …” rather than inventing it.
- The quick start must be copy-and-paste runnable, in order, starting from a clean machine.
- Prefer short sections and code blocks over paragraphs.
- Include a “Limitations” section if the notes mention any.
</constraints>

<output_format>
GitHub-flavoured Markdown. Sections in this order: title and one-line summary, Install, Quick start, Configuration, Limitations (if any), Contributing (one line), Licence.
</output_format>

<task>
Write the README for this project, aimed at technical writers comfortable with a terminal but not with Node.js.
</task>

Models

Tips by model family

  • All models

    Paste the real --help output if your CLI has one. It is the most accurate list of options you can give the model.

  • Claude

    Anthropic suggests putting long inputs above the instructions. If you paste many files, keep them in the context section (which comes first) and wrap each in its own tag with the file name.

  • Gemini

    Google’s guide says to choose one delimiter style and use it consistently in a prompt. If you add more files, keep using the same XML tags rather than mixing in Markdown fences.

Related

Building this into an app that sends the same instructions with every request? Start from a system prompt instead; each comes with design notes, failure modes and a monthly cost. In the system prompt library: Technical writer for developer docs.

Edited the template? Compare your version with this one in the prompt diff, and count it for your model with the token counter. Browse all 29 prompt templates.