Skip to main content

Git for prompts - Manage LLM prompts with version control

Project description

Grompt - Git for Prompts

PyPI version License: MIT Tests Coverage Python Versions

Store prompts as YAML files, version them, and use them in code by ID.

That's it. Everything else is optional.


The Core Idea

Grompt lets you store prompts as YAML files, version them, and use them in code by ID.

  • ✅ Prompts live in files (prompts/code-review.yaml) - not buried in code
  • ✅ Version changes with grompt commit code-review
  • ✅ Use in code: prompt = grompt.load("code-review")

That's the core. Everything else is nice-to-have.


Why Grompt?

Problem: Prompts buried in code are hard to version, test, and optimize.

Solution: Prompts as files, referenced by ID.

Benefits:

  • ✅ Change prompts without touching code
  • ✅ Version prompts with git
  • ✅ Test prompts with real data
  • ✅ Track which version is in production

What Grompt Is

1. Prompt Storage

  • Prompts live in YAML files (prompts/code-review.yaml)
  • Not buried in code
  • Easy to edit, review, and share

2. Versioning

  • Track changes with version numbers
  • Commit changes: grompt commit code-review
  • Only version when content actually changes (hash-based)

3. Use in Code

import grompt
prompt = grompt.load("code-review")
result = prompt.render(code="...", language="Python")

What Grompt Is NOT

  • Not a test runner - Use pytest for that
  • Not an LLM execution engine - Just manages prompts
  • Not a prompt optimization tool - Just stores and versions them
  • Not a database - Just files

Installation

Install Grompt via pip:

pip install grompt

For development installation:

pip install -e ".[dev]"

Quick Start

The Simple Workflow

1. Create prompt file    → prompts/code-review.yaml
2. Edit it               → vim prompts/code-review.yaml
3. Test it               → Use test inputs or pytest
4. Commit changes        → grompt commit code-review
5. Use in code          → grompt.load("code-review")

Step-by-Step

1. Initialize Grompt

Initialize Grompt in your project root. This creates a .grompt config file and a prompts directory.

grompt init

2. Create a Prompt

Create a new prompt named code-review.

grompt add code-review --template "Review this code:\n{{ code }}"

This creates prompts/code-review.yaml.

3. Use in Python

Load and use the prompt in your application.

import grompt

# Load the prompt
prompt = grompt.load("code-review")

# Render with variables
rendered = prompt.render(
    code="def add(a,b): return a+b"
)
print(rendered)

4. Load Variables from Files (Optional)

Use the optional helper to load test inputs from YAML files:

import grompt

prompt = grompt.load("code-review")

# Load variables from any YAML file
variables = grompt.load_variables("inputs/simple.yaml")
result = prompt.render(**variables)

5. Commit Changes

Commit changes when you're ready:

grompt commit code-review "Updated template"

File Structure

my-project/
├── prompts/
│   ├── code-review.yaml              ← Your prompts
│   └── test-inputs/                  ← Example inputs (optional)
│       └── code-review.simple.yaml
└── .grompt/                          ← Config (auto-created)
    └── config.yaml

Just files. Nothing hidden.


Quick Reference

Create Prompt

grompt add code-review

Edit Prompt

vim prompts/code-review.yaml

Test with Input

# Create input file (anywhere, any name)
cat > inputs/simple.yaml << EOF
code: "def add(a, b): return a + b"
language: Python
EOF

# Use in Python
python3 << EOF
import grompt

prompt = grompt.load("code-review")
inputs = grompt.load_variables("inputs/simple.yaml")  # Any path
result = prompt.render(**inputs)
print(result)
EOF

Commit Changes

grompt commit code-review "Updated template"

Use in Code

import grompt
prompt = grompt.load("code-review")
result = prompt.render(code="...", language="Python")

Documentation


Contributing

We welcome contributions! Please see:


Security

For security concerns, please see SECURITY.md.

Please do not report security vulnerabilities through public GitHub issues. Instead, email: mkarots@users.noreply.github.com


License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

grompt-0.3.0.tar.gz (15.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

grompt-0.3.0-py3-none-any.whl (17.8 kB view details)

Uploaded Python 3

File details

Details for the file grompt-0.3.0.tar.gz.

File metadata

  • Download URL: grompt-0.3.0.tar.gz
  • Upload date:
  • Size: 15.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for grompt-0.3.0.tar.gz
Algorithm Hash digest
SHA256 e897d73eb99dd9b41cd4718f28dfec8e8bbb48eabdb6054f8acec0383ac4c6fe
MD5 0f686efa3a88a576257e0a8653d03cb1
BLAKE2b-256 b07e511a498111e25d1495064965afd2834d466dceb929bb47ef9420962b6213

See more details on using hashes here.

File details

Details for the file grompt-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: grompt-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 17.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for grompt-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9181bff8eb8bf251e9f25082c201f88ce990143eeb61caabf7d0c10f63ae9079
MD5 3c00001ff45d36cb8176c9a1c8b940a7
BLAKE2b-256 9b72b8312624e7b0d47c04682ae4909d3fa18e0b3804699a1d1e04406f87abbc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page