prompts/list and prompts/get, so clients can discover prompt templates and instantiate them with concrete arguments.
Where prompt definitions live
By default, prompt config files are discovered from:app/prompts/**/*.terse
.hyperterse:
.hyperterse
.hyperterse using the prompts array form. See Root configuration.
Prompt file shape
Each prompt file defines:- prompt identity (
name, optional; defaults to filename) - optional metadata (
title,description) - optional argument definitions (
arguments) - one or more message templates (
messages)
app/prompts/summarize-release.terse
Argument interpolation
When a client callsprompts/get, Hyperterse interpolates {{ argumentName }} placeholders in each message using the provided prompt arguments.
- Missing placeholders are left as-is.
- Supported placeholder token characters are alphanumeric and underscore.
- Message order is preserved exactly as configured.
Runtime behavior
Once loaded, prompt definitions are available through MCP:prompts/listto discover promptsprompts/getto render message content with argumentscompletion/completefor prompt argument completions whencompletionvalues are declarednotifications/prompts/list_changedwhen prompt definitions change after a model reload
Validation and constraints
Prompt configs are validated before runtime:- prompt names must be unique
- at least one
messagesentry is required - each message requires
role+text - supported roles:
user,assistant,system - argument names must be unique within a prompt