Skip to content
p promptel. github ↗
/// about

A DSL for prompts, not another wrapper.

Promptel is a Skelf Research project. It exists because prompts are software, but they get treated like configuration — flat strings, copy-pasted, version-bumped by Slack message. Once that pattern ships to production, you cannot review prompt changes, you cannot diff techniques, and you definitely cannot swap providers without surgery.

What it is

A Node.js library (≥ 18) and CLI that parses two equivalent surfaces — a curly-brace .prompt DSL and a YAML form — into a shared AST, then executes that AST against OpenAI, Anthropic, or Groq via their official SDKs.

The package ships a parser (Chevrotain-based), an executor, a provider abstraction, a format converter, and a CLI binary called promptel. That is the whole surface area. There is no agent runtime, no vector store, no observability platform. Promptel does one thing.

What it is not

  • Not an inference layer. Promptel uses the official SDKs you already trust.
  • Not a hosted service. There is no backend. Your keys, your machine.
  • Not a framework that owns your control flow. It returns a structured result; you decide what to do with it.
  • Not a replacement for evals. It plays nicely with eval harnesses by being a pure function over inputs.

Why a DSL

Because typed params, default values, technique blocks, and provider constraints all want to be checked before a token leaves your machine. A DSL gives you a place to put those checks. YAML gives you a place to validate them in CI without spinning up a Node process. Two surfaces, one AST.

The DSL is small on purpose. It looks like the JavaScript you already write, with template literals you already understand. The parser is Chevrotain; the grammar is short enough to read on one screen.

Who it's for

  • Teams running prompts in production who need them in source control with diffable structure.
  • Eval pipeline builders who want prompt definitions as data, not as code paths.
  • Anyone who has shipped f"You are a helpful assistant. {context}\n\nUser: {q}" and watched it grow tentacles.

Status

Promptel is at v0.3. The grammar is stable for everyday use, the provider abstraction covers three SDKs, and the Harmony Protocol integration ships against OpenAI's reasoning channels. The package is MIT licensed and published as promptel on npm.

For deeper reading: docs.skelfresearch.com/promptel. Source: github.com/skelf-research/promptel.