Self-programming AI agent framework

Build agents that
program their own workflows.

OpenProgram lets agents create, run, and refine agentic functions while its runtime manages models, tools, memory, context, and multi-agent collaboration.

OpenProgram Web UI
OpenProgram Web UI showing an agent session with a conversation summary
Run agents, inspect sessions, and review every call from one interface.

Start where you need

Use an agent or build your own.

Start from a shipped agent, or use the same OpenProgram runtime to create one in ordinary Python.

~89 functions · 10 stages

Research Agent

Literature → experiment → paper in one pipeline. Citations are checked against four indexes. Numbers in the paper have to match a run_record.

Template-driven HTML wiki

Wiki Agent

Pour sessions and notes into statically hostable HTML pages. Named slots accumulate; full-text search is built in.

Build your own

Your agent, ordinary Python

Define an Agent class with ordinary methods. Context follows its calls automatically.

from openprogram import Agent

class Triage(Agent):
    instructions = "Classify tickets as bug or feature."

    def run(self, ticket: str):
        return self(ticket, tools=[])
Read the harness guide →

Quick Start

Install, then run.

Start the Web UI at http://localhost:18100. The first run guides you through connecting a model provider.

Platform and developer installation →

Included framework

Everything you need to run agents.

Use the complete runtime or adopt only the components required by your workflow. Configuration and execution remain available from Python, the Web UI, and the terminal.

providers

Model providers

Connect Anthropic, OpenAI, Gemini, and compatible backends with account and model configuration.

tools + mcp

Tools and MCP

Give agents local tools, browser actions, external services, and MCP server capabilities.

skills + memory

Skills and memory

Load reusable instructions and retain task knowledge across longer-running work.

multi-agent

Agent collaboration

Spawn agents, exchange messages, and isolate file-changing work in separate branches.

sessions

Sessions and branches

Keep conversations, calls, context, forks, and execution history inspectable.

web · tui · cli

Three interfaces

Run the same agents from the browser, terminal UI, or headless command line.

channels

Channel integrations

Connect agent workers to supported messaging channels without replacing the runtime.

programs

Installable harnesses

Install, manage, run, and publish Python harnesses through one package contract.

One runtime, several surfaces

Use the interface that fits the task.

The Web UI and built-in Browser share sessions, providers, tools, skills, memory, and the same execution DAG.

Web UIBrowserCLIProvidersMCPSkillsMemoryChannels
OpenProgram execution DAG showing the session call graph
Execution DAGInspect the call graph.
OpenProgram Web UI showing a conversation and execution DAG
Web UIInspect sessions, branches, calls, and context.
OpenProgram built-in browser showing the bookmark bar and multiple pages
Built-in BrowserBookmark bar and multiple pages.

Framework internals

Inspectable context, control, and events.

OpenProgram keeps agent execution inside Python while recording model calls, context dependencies, validation, and runtime events.

caller + reads

DAG Context

Every user turn, model call, and function call is a node. Dependency edges select the context used by branches, sub-agents, and cross-session messages.

Read the context documentation →
Python gates

Agentic Workflow

Python fixes required execution order, validates model decisions, retries failed checks, and combines agentic functions with ordinary tools.

Explore runtime features →
Event(type, payload, ts)

Event Infrastructure

A process-wide event bus carries typed activity from the agent loop, authentication, context, channels, and memory.

Inspect the event design →

Install

Build your next agent with OpenProgram.

Install the framework, connect a model provider, and start from an existing harness or your own Python workflow.