Write language model prompts as typed Python functions with automatic version tracking and input/output history
Browse and compare different versions of your prompts side by side in the local Ell Studio web interface
Pass images or audio directly to prompt functions without writing any media conversion code
Test and iterate on prompts like regular Python code, with each change creating a new tracked version automatically
| madcowd/ell | weblateorg/weblate | jamwithai/production-agentic-rag-course | |
|---|---|---|---|
| Stars | 5,871 | 5,871 | 5,869 |
| Language | Python | Python | Python |
| Setup difficulty | easy | hard | hard |
| Complexity | 2/5 | 4/5 | 4/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires an API key for your chosen language model provider such as OpenAI.
ell is a Python framework for writing prompts for language models as regular Python functions. Instead of treating a prompt as a text string you pass to an API, ell encourages you to define it as a decorated function where the docstring becomes the system message and the return value becomes the user message. This makes a prompt a first-class piece of code, with a name, arguments, and the ability to be tested, versioned, and called from anywhere in a program. When you call one of these functions, ell captures what was sent to the model, what came back, and which version of the function was used. It stores this history automatically in a local file called a store, without requiring any extra setup or a separate database. Versioning is based on the actual code of the function, so changing the prompt text or its logic creates a new version automatically, with commit messages generated by a small model. Ell Studio is a local web interface you launch from the command line to browse and compare saved versions. You can look at the inputs and outputs for each version side by side, track how a prompt changed over time, and identify which version produced the best results. The tool is open source and runs entirely on your own machine. Multimodal inputs are supported natively. You can pass PIL image objects, audio, or other media directly alongside text in the same function call, and ell handles the conversion into the format the model expects. The code examples in the README show a webcam image being described in a single function call with no extra conversion code. ell is installed as the ell-ai package via pip. The README links to documentation and a Discord community for support.
ell is a Python framework that lets you write language model prompts as regular Python functions, automatically tracking every input, output, and code version so you can compare and improve prompts over time.
Mainly Python. The stack also includes Python, PIL.
Setup difficulty is rated easy, with roughly 5min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.