Skip to content

PromptScript API


Interface: PromptScriptConfig

Defined in: core/src/types/config.ts:95

PromptScript configuration file (promptscript.yaml).

Properties

customConventions?

optional customConventions: Record\<string, OutputConvention>

Defined in: core/src/types/config.ts:246

Custom convention definitions. Register custom conventions that can be referenced by name in targets.


extends?

optional extends: string

Defined in: core/src/types/config.ts:104

Extend another configuration file. Paths are resolved relative to the current config file.

Example

extends: '../base-config.yaml'

formatting?

optional formatting: FormattingConfig

Defined in: core/src/types/config.ts:227

Formatting configuration. Controls how generated markdown files are formatted.

Example

formatting:
  prettier: true  # Auto-detect .prettierrc

formatting:
  tabWidth: 4
  proseWrap: always

inherit?

optional inherit: string

Defined in: core/src/types/config.ts:113

Inheritance path


input?

optional input: object

Defined in: core/src/types/config.ts:119

Input file configuration. Controls which PromptScript files to compile.

entry?

optional entry: string

Entry file path (defaults to '.promptscript/project.prs')

exclude?

optional exclude: string[]

Glob patterns for files to exclude

include?

optional include: string[]

Glob patterns for additional files to include


output?

optional output: object

Defined in: core/src/types/config.ts:207

Output configuration. Global output settings applied to all targets.

baseDir?

optional baseDir: string

Base directory for all output files

optional header: string

Custom header to prepend to generated files

overwrite?

optional overwrite: boolean

Whether to overwrite existing files without warning


project

project: object

Defined in: core/src/types/config.ts:107

Project identification

id

id: string

team?

optional team: string


registry?

optional registry: object

Defined in: core/src/types/config.ts:129

Registry configuration

auth?

optional auth: object

Authentication for HTTP registries

auth.token?

optional token: string

Token for bearer auth, or "username:password" for basic auth

auth.tokenEnvVar?

optional tokenEnvVar: string

Environment variable containing the token (alternative to token)

auth.type

type: "bearer" | "basic"

Authentication type

cache?

optional cache: object

Cache settings

cache.enabled?

optional enabled: boolean

Whether caching is enabled

cache.ttl?

optional ttl: number

Cache TTL in milliseconds

git?

optional git: object

Git repository configuration. When specified, the registry will be cloned from a Git repository.

git.auth?

optional auth: object

Authentication options for private repositories

git.auth.sshKeyPath?

optional sshKeyPath: string

Path to SSH key (for SSH auth).

Default
'~/.ssh/id_rsa'
git.auth.token?

optional token: string

Personal access token (for token auth)

git.auth.tokenEnvVar?

optional tokenEnvVar: string

Environment variable containing the token

git.auth.type

type: "token" | "ssh"

Authentication type. - 'token': Use a personal access token (PAT) - 'ssh': Use SSH key authentication

git.path?

optional path: string

Subdirectory within the repository to use as registry root.

Example
'registry/'
git.ref?

optional ref: string

Git ref to checkout (branch, tag, or commit hash).

Default
'main'
git.url

url: string

Git repository URL (HTTPS or SSH)

path?

optional path: string

Local path to registry

url?

optional url: string

Remote URL (HTTP registry)


targets

targets: TargetEntry[]

Defined in: core/src/types/config.ts:240

Output targets.

Can be simple names or objects with configuration:

Example

targets:
  - github
  - claude:
      convention: markdown
      output: custom/CLAUDE.md

validation?

optional validation: object

Defined in: core/src/types/config.ts:249

Validation settings

requiredGuards?

optional requiredGuards: string[]

rules?

optional rules: Record\<string, "error" | "warning" | "off">


version

version: "1"

Defined in: core/src/types/config.ts:97

Config version


watch?

optional watch: object

Defined in: core/src/types/config.ts:192

Watch mode configuration. Settings for prs compile --watch.

clearScreen?

optional clearScreen: boolean

Clear screen before each recompilation

debounce?

optional debounce: number

Debounce time in milliseconds before recompiling

exclude?

optional exclude: string[]

Glob patterns for files to ignore

include?

optional include: string[]

Glob patterns for files to watch (defaults to '**/*.prs')