OpenProgram

Frameworks & SDKs 💻 Python ⚖️ AGPL-3.0 🟢 Actively maintained
381 stars

OpenProgram is a self-programming AI assistant that lets developers build agents as Python functions, combining deterministic code with LLM judgment. It solves the problem of unpredictable LLM-only agents by providing a harness that interleaves code and model calls. It is for developers building reliable, multi-agent, or proactive AI systems.

✨ Key features

  • Agentic Function: agents as Python functions with docstring as system prompt
  • DAG Context: addressable context nodes for multi-agent systems
  • Agentic Workflow: code gates enforce validation and self-evolving agents
  • Event Infrastructure: unified event bus for proactive agents
  • Built-in browser with multiple panes and agent control
  • Multi-agent support with spawn, messaging, and git worktrees

🎯 Use cases

  • Classify support tickets and draft replies with code-controlled logic
  • Build multi-agent systems with clean context isolation and branching
  • Create self-improving agents that edit their own source code
  • Develop proactive agents that react to events like file changes

📦 Installation

🧰 Requirements: macOS or Linux; requires an LLM provider (Anthropic, OpenAI, or Gemini) and network access for installation.

curl -fsSL https://openprogram.io/install | sh

macOS desktop: download the unsigned DMG from GitHub Releases. Linux uses the same CLI/server runtime and the Web UI; no Linux desktop package is published. Windows native packaging is not in this release.

🚀 Usage

openprogram

Open the Web UI at http://localhost:18100:

openprogram web

Confirm with one printed reply:

openprogram --print "Introduce yourself in one sentence"

⚠️ Good to know

Windows native packaging is not in this release; Linux has no desktop package; the proactive policy layer is not yet built.

❓ FAQ

What is an Agentic Function?

An agentic function is a Python function decorated with @agentic_function. Its docstring serves as the system prompt, and arguments are inputs. You can call llm() for model decisions and use regular Python for deterministic logic.

How does OpenProgram handle multi-agent systems?

It uses a DAG context where each context is an addressable node. You can spawn branches, message other branches, fork nodes, and run branches in separate git worktrees for safe file access.

Can agents modify their own code?

Yes, agents can edit their own @agentic_function files using ordinary file tools. A watcher hot-loads the changes, making the new tool live on the next turn.

What providers are supported?

Built-in providers include Anthropic, OpenAI, and Gemini. Multi-account providers with automatic key rotation are also supported.

📊 Repository

Stars★ 381
Forks🍴 47
Open issues🐛 1
Last commit🕒 Sep 4, 2026
Created📅 Mar 2026
Language💻 Python
License⚖️ AGPL-3.0

🤖 Overview, features, install steps and FAQ were generated from the project's README on Sep 4, 2026. Always check the original source before running commands.