A Minimal agent runtime built on OpenAI Responses API
Project description
LiteRun 🚀
A lightweight, flexible Python framework for building custom OpenAI agents (Responses API) with tool support and structured prompt management.
Features
- Custom Agent Execution: Control the loop with synchronous and streaming support.
- Tool Support: Easy registration with Pydantic-powered validation.
- Type Safety: Built for modern Python 3.10+ environments.
- Prompt Templates: Structured message management.
- Event-Driven: Granular control via a rich event system.
For detailed documentation on Architecture, Streaming, and Advanced Configuration, see DOCS.md.
Requirements
- Python 3.10+
Note: Core dependencies like
openaiandpydanticare automatically installed when you installliterun.
Installation
You can install literun directly from PyPI:
pip install literun
Quick Start
Basic Agent
Here is a simple example of how to create an agent with a custom tool.
import os
from literun import Agent, ChatOpenAI, Tool, ArgsSchema
# 1. Define a tool function
def get_weather(location: str, unit: str = "celsius") -> str:
return f"The weather in {location} is 25 degrees {unit}."
# 2. Wrap it with Tool schema
weather_tool = Tool(
func=get_weather,
name="get_weather",
description="Get the weather for a location",
args_schema=[
ArgsSchema(
name="location",
type=str,
description="The city and state, e.g. San Francisco, CA",
),
ArgsSchema(
name="unit",
type=str,
description="The unit of temperature",
enum=["celsius", "fahrenheit"],
),
],
)
# 3. Initialize Agent
agent = Agent(
llm=ChatOpenAI(model="gpt-4.1-mini", temperature=0.7),
system_prompt="You are a helpful assistant.",
tools=[weather_tool],
)
# 4. Run the Agent
result = agent.invoke(user_input="What is the weather in Tokyo?")
print(f"Final Answer: {result.final_output}")
Advanced Usage
LiteRun supports Streaming, Runtime Context Injection (for secrets), and Direct LLM Usage.
👉 Check out the Documentation and Examples for more details.
Project Structure
literun/
├── src/
│ └── literun/ # Main package source
│ ├── agent.py # Agent orchestrator
│ ├── llm.py # ChatOpenAI wrapper
│ ├── tool.py # Tool & Schema definitions
│ └── ...
├── tests/ # Unit tests (agent, llm, tools, prompts)
├── examples/ # Runnable examples
├── DOCS.md # Detailed documentation
├── LICENSE # MIT License
├── README.md # This file
└── pyproject.toml # Project configuration & dependencies
Contributing
We welcome contributions! Please follow these steps to set up your development environment:
-
Fork the repository and clone it locally:
git clone https://github.com/kaustubh-tr/literun.git cd literun
-
Install in editable mode with development dependencies:
pip install -e .[dev]
-
Create a feature branch and make your changes.
-
Test your changes (see below).
-
Submit a pull request.
Testing
This project uses pytest as the primary test runner, but supports unittest as well.
# Run all tests
pytest
or using unittest:
python -m unittest discover tests
Note: Some integration tests require the
OPENAI_API_KEYenvironment variable. They are automatically skipped if it is missing.
License
Copyright (c) 2026 Kaustubh Trivedi.
Distributed under the terms of the MIT license, LiteRun is free and open source software.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file literun-0.1.1.tar.gz.
File metadata
- Download URL: literun-0.1.1.tar.gz
- Upload date:
- Size: 25.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ca8ea3135384449e909a73a4dbb4c8f5620e412241db073bed17940402d5a0e2
|
|
| MD5 |
7f2104d472883b2759c5679823c0acbc
|
|
| BLAKE2b-256 |
7937b0d38a2b31b4b5d2858ee4d8ce61214b34e56f91ca5a591273a8aba9f36f
|
File details
Details for the file literun-0.1.1-py3-none-any.whl.
File metadata
- Download URL: literun-0.1.1-py3-none-any.whl
- Upload date:
- Size: 21.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30d39fb95370946f6e621752574b107293c96a43558088990ac30a0ae16c5d78
|
|
| MD5 |
61b744346da09996249fdbed8bfaaa82
|
|
| BLAKE2b-256 |
2f659c38c499b4b10d8138d73a1d56891a52bbce3bd496b9710382b7e32eedd2
|