Skip to main content

LLMProc

LLMProc Logo

License Status

LLMProc: Unix-inspired runtime that treats LLMs as processes. Build production-ready LLM programs with fully customizable YAML/TOML files. Or experiment with meta-tools via Python SDK - fork/spawn, goto, and more. Learn more at llmproc.com.

🔥 Check out our LLMProc GitHub Actions to see LLMProc successfully automating code implementation, conflict resolution, and more!

📋 Latest Updates: See v0.9.3 Release Notes for cost control features, enhanced callbacks, and more.

Table of Contents

LLMProc GitHub Actions

Automate your development workflow with LLMProc-powered GitHub Actions:

  • @llmproc /resolve - Automatically resolve merge conflicts
  • @llmproc /ask <question> - Answer questions on issues/PRs
  • @llmproc /code <request> - Implement features from comments

Why LLMProc over Claude Code?

Feature LLMProc Claude Code
License / openness ✅ Apache-2.0 ❌ Closed, minified JS
Token overhead ✅ Zero. You send exactly what you want ❌ 12-13k tokens (system prompt + builtin tools)
Custom system prompt ✅ Yes 🟡 Append-only (via CLAUDE.md)
Tool selection ✅ Opt-in; pick only the tools you need 🟡 Opt-out via --disallowedTools*
Tool schema override ✅ Supports alias, description overrides ❌ Not possible
Configuration ✅ Single YAML/TOML "LLM Program" 🟡 Limited config options
Scripting / SDK ✅ Python SDK with function tools ❌ JS-only CLI

*--disallowedTools allows removing builtin tools, but not MCP tools.

Installation

pip install llmproc

Run without installing

uvx llmproc

Quick Start

Python usage

# Full example: examples/multiply_example.py
import asyncio
from llmproc import LLMProgram  # Optional: import register_tool for advanced tool configuration


def multiply(a: float, b: float) -> dict:
    """Multiply two numbers and return the result."""
    return {"result": a * b}  # Expected: π * e = 8.539734222677128


async def main():
    program = LLMProgram(
        model_name="claude-3-7-sonnet-20250219",
        provider="anthropic",
        system_prompt="You're a helpful assistant.",
        parameters={"max_tokens": 1024},
        tools=[multiply],
    )
    process = await program.start()
    await process.run("Can you multiply 3.14159265359 by 2.71828182846?")

    print(process.get_last_message())


if __name__ == "__main__":
    asyncio.run(main())

Configuration

CLI Usage

  • llmproc - Execute an LLM program. Use --json mode to pipe output for automation (see GitHub Actions examples)
  • llmproc-demo - Interactive debugger for LLM programs/processes

Features

Production Ready

  • Claude 3.7/4 models with full tool calling support
  • Python SDK - Register functions as tools with automatic schema generation
  • Async and sync APIs - Use await program.start() or program.start_sync()
  • TOML/YAML configuration - Define LLM programs declaratively
  • MCP protocol - Connect to external tool servers
  • Built-in tools - File operations, calculator, spawning processes
  • Tool customization - Aliases, description overrides, parameter descriptions
  • Automatic optimizations - Prompt caching, retry logic with exponential backoff

In Development

  • OpenAI/Gemini models - Basic support, tool calling not yet implemented
  • Streaming API - Real-time token streaming (planned)
  • Process persistence - Save/restore conversation state

Experimental Features

These cutting-edge features bring Unix-inspired process management to LLMs:

  • Process Forking - Create copies of running LLM processes with full conversation history, enabling parallel exploration of different solution paths

  • Program Linking - Connect multiple LLM programs together, allowing specialized models to collaborate (e.g., a coding expert delegating to a debugging specialist)

  • GOTO/Time Travel - Reset conversations to previous states, perfect for backtracking when the LLM goes down the wrong path or for exploring alternative approaches

  • File Descriptor System - Handle massive outputs elegantly with Unix-like pagination, reference IDs, and smart chunking - no more truncated responses

  • Tool Access Control - Fine-grained permissions (READ/WRITE/ADMIN) for multi-process environments, ensuring security when multiple LLMs collaborate

  • Meta-Tools - LLMs can modify their own runtime parameters! Create tools that let models adjust temperature, max_tokens, or other settings on the fly for adaptive behavior

Documentation

📚 Documentation Index - Comprehensive guides and API reference

🔧 Key Resources:

Design Philosophy

LLMProc treats LLMs as processes in a Unix-inspired runtime framework:

  • LLMs function as processes that execute prompts and make tool calls
  • Tools operate at both user and kernel levels, with system tools able to modify process state
  • The Process abstraction naturally maps to Unix concepts like spawn, fork, goto, IPC, file descriptors, and more
  • This architecture provides a foundation for evolving toward a more complete LLM runtime

For in-depth explanations of these design decisions, see our API Design FAQ.

License

Apache License 2.0

Metadata

Release files for llmproc 0.9.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for llmproc 0.9.5
File Size Uploaded Provenance Actions
llmproc-0.9.5.tar.gz 494.9 kB With provenance Details for llmproc-0.9.5.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for llmproc 0.9.5
File Interpreter ABI Platform Actions
llmproc-0.9.5-py3-none-any.whl Python 3 none any Details for llmproc-0.9.5-py3-none-any.whl

Total release size: 661.0 kB

Release files / llmproc-0.9.5.tar.gz

Download URL llmproc-0.9.5.tar.gz
Size 494.9 kB
Tags Source
SHA-256 checksum
How to use checksums
c6f5670be24669eb297fe8ceafbcc9304de4c4d95154326a21abe2e2ce96d394
BLAKE2b-256 checksum
How to use checksums
1c1f47cac8f44472ed68023a57eb5b061c0944c8a9b39c60023487807e005b17
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 9, 2025.

Transparency log

Release files / llmproc-0.9.5-py3-none-any.whl

Download URL llmproc-0.9.5-py3-none-any.whl
Size 166.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cb903b836acead8032632d5512af01481dc00c5c75e014a7a4f8b7dc46574397
BLAKE2b-256 checksum
How to use checksums
aa97042c7c269368276fcae602498b5e09b97c4b15b1af5c3e6766297609d4df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 9, 2025.

Transparency log

Security for llmproc 0.9.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for llmproc-0.9.5.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 9, 2025.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page