awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
MadcowD avatar

MadcowD/ell

0
View on GitHub↗
5,874 stars·344 forks·Python·MIT·24 viewsdocs.ell.so↗

Ell

Ell is a Python library that treats prompts as callable functions, transforming a Python function into a language model program where the docstring defines the system message and the return value defines the user message. It provides a framework for writing language model programs that can accept and return images, audio, and text natively within message objects, and supports chaining multiple model calls into a single function for multi-step reasoning or test-time compute.

The library decouples model selection from client instantiation through a registry that supports multiple provider backends, and includes a provider plugin interface for routing model calls to different backends. It automatically tracks every change to a prompt function with generated commit messages and full history, and logs the full input and output of every language model call for later analysis or dataset creation. A local web-based dashboard visualizes and compares prompt outputs across versions to catch regressions and track behavior over time.

Ell offers a model registry with temporary overrides for testing or routing, and a configuration system for setting global defaults for model parameters, storage, logging, and versioning behavior. The library persists prompt versions, invocations, and metadata to a local filesystem store for offline browsing and comparison.

Features

  • Prompt Programming Libraries - Encapsulates prompts as callable Python functions with automatic versioning, logging, and multimodal support.
  • Prompt - Transforms a Python function into a language model program using its docstring and return value to define system and user messages.
  • AI Model Clients - Provides a client resolution mechanism that returns an OpenAI client and fallback flag for a given model name.
  • Prompt Chaining - Implements prompt chaining by composing multiple language model programs into sequential sub-tasks with output passing.
  • Model Provider Plugins - Provides a plugin interface for registering third-party inference services and custom model providers.
  • Multimodal Prompt Embedding - Integrates images, audio, and external documents into prompts via file paths or encoded data using rich type coercion.
  • Provider Abstraction Layers - Decouples model selection from client instantiation with a registry for multiple provider backends.
  • Multimodal Prompting - Accepts and returns images, audio, and text natively within message objects for multimodal model interactions.
  • Versioned Prompt Variants - Tracks every change to a prompt function automatically with generated commit messages and full history.
  • Prompt Programming Libraries - Defines a prompt as a callable Python function that combines system instructions, user messages, and model parameters into a reusable subroutine.
  • Function-Based - Ships a mechanism to chain several language model calls into a single function for multi-step reasoning.
  • Reasoning Pipelines - Chains several language model calls into a single function for multi-step reasoning or test-time compute.
  • Prompt Version Trackers - Automatically tracks every change to a prompt function with generated commit messages and full history.
  • Prompt Versioning Engines - Captures prompt versions by combining static code analysis with runtime invocation snapshots, generating commit messages automatically.
  • Language Model Programming Libraries - Treats prompts as callable Python functions, transforming a Python function into a language model program.
  • Model Client Fallback Resolutions - Returns an OpenAI client and a fallback flag for a given model name, decoupling model selection from client instantiation.
  • Multimodal Type Coercions - Accepts and returns images, audio, and other media alongside text by coercing them into a unified message object format.
  • Prompt and Agent Versioning - Tracks prompt iterations and analyzes performance shifts over time via a local dashboard.
  • Temporary Model Registry Overrides - Maintains a global model configuration map that can be temporarily swapped within a context manager for testing or routing.
  • Global Default Configurations - Sets global defaults for model parameters, storage, logging, and versioning behavior in a single initialization call.
  • Local Interaction Stores - Persists prompt versions, invocations, and metadata to a local filesystem store for offline browsing and comparison.
  • Multimodal Output Selectors - Allows returning either plain text or structured message objects with tool calls and multimodal content from a single function.
  • Invocation Logging - Captures and stores the full input and output of every language model call for later analysis, fine-tuning, or dataset creation.
  • Prompt Output Comparison Dashboards - Provides a local dashboard to visualize, compare, and track prompt outputs across different versions and runs.
  • Prompt Version Dashboards - Launches a web-based UI to visualize, compare, and debug prompt versions and their outputs over time.

Star history

Star history chart for madcowd/ellStar history chart for madcowd/ell

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with Ell

These projects share indexed features with Ell. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • helicone/heliconeHelicone avatar

    Helicone/helicone

    5,830View on GitHub↗

    Helicone is an AI gateway and observability platform designed to intercept, manage, and monitor interactions with large language models. By acting as a reverse-proxy, it provides a centralized layer for routing requests across multiple AI providers, allowing developers to maintain consistent application logic while gaining deep visibility into model performance, usage, and costs. The platform distinguishes itself through a robust suite of traffic management and prompt engineering tools. It enables policy-driven control, including automatic failover between providers, rate limiting, and edge-b

    TypeScript
    View on GitHub↗5,830
  • agenta-ai/agentaAgenta-AI avatar

    Agenta-AI/agenta

    3,860View on GitHub↗

    Agenta is a Prompt Ops lifecycle manager and prompt management platform that decouples prompt engineering from application code. It serves as a centralized system for developing, versioning, and deploying prompt templates and model configurations across different environments. The platform functions as an AI agent orchestrator with a visual interface for building agent workflows and connecting models to external tools. It further acts as an evaluation framework and observability tool, utilizing OpenTelemetry to capture execution traces, monitor latency, and track token costs. The system cove

    TypeScriptagentsevaluationllm-as-a-judge
    View on GitHub↗3,860
  • firebase/genkitfirebase avatar

    firebase/genkit

    6,121View on GitHub↗

    Genkit is an open-source framework for building AI-powered applications. It provides a unified interface for connecting to hundreds of generative AI models from multiple providers, enabling text, image, audio, and video generation through a single API. The framework structures multi-step AI interactions—including chat, retrieval-augmented generation, tool use, and agentic workflows—as composable, traceable flows with built-in streaming and state management. The framework distinguishes itself through a comprehensive developer toolkit that includes a command-line interface and a local developer

    TypeScript
    View on GitHub↗6,121
  • piebald-ai/claude-code-system-promptsPiebald-AI avatar

    Piebald-AI/claude-code-system-prompts

    4,676View on GitHub↗

    This repository catalogs the system prompts used by Claude Code, organizing them into browsable categories with token-count estimates for each prompt. It functions as both a prompt library browser and a revision tracker, surfacing the size and complexity of individual prompts to support auditing and prompt engineering decisions. The project records prompt revisions by parsing git diffs between versions, capturing additions, removals, and token-count changes in a structured changelog. Token counts are approximated from character length using a fixed heuristic ratio, avoiding the need for API c

    JavaScriptclaude-codeclaude-code-system-promptssystem-prompts
    View on GitHub↗4,676
Compare all 30 related projects→

Frequently asked questions

What does madcowd/ell do?

Ell is a Python library that treats prompts as callable functions, transforming a Python function into a language model program where the docstring defines the system message and the return value defines the user message. It provides a framework for writing language model programs that can accept and return images, audio, and text natively within message objects, and supports chaining multiple model calls into a single function for multi-step reasoning or test-time compute.

What are the main features of madcowd/ell?

The main features of madcowd/ell are: Prompt Programming Libraries, Prompt, AI Model Clients, Prompt Chaining, Model Provider Plugins, Multimodal Prompt Embedding, Provider Abstraction Layers, Multimodal Prompting.

Which projects share features with madcowd/ell?

Projects with overlapping indexed features include: helicone/helicone — Helicone is an AI gateway and observability platform designed to intercept, manage, and monitor interactions with… agenta-ai/agenta — Agenta is a Prompt Ops lifecycle manager and prompt management platform that decouples prompt engineering from… piebald-ai/claude-code-system-prompts — This repository catalogs the system prompts used by Claude Code, organizing them into browsable categories with… firebase/genkit — Genkit is an open-source framework for building AI-powered applications. It provides a unified interface for… arize-ai/phoenix — Arize Phoenix is an LLM observability platform and evaluation framework designed to capture execution traces and… strands-agents/sdk-python — This is an open-source Python SDK for building and orchestrating production-grade AI agents. It provides a unified…