OpenProgram ships a set of functions registered as tools that the model calls directly in chat. This page lists them one by one, following the openprogram/functions/tools/ directory: what each tool does and which keys or local dependencies it needs. Most tools require zero configuration; the ones that need keys cluster in web search and images.
Collaboration splits into four domains, one word each — see
agent collaboration §1.
Domain
Tool
What it does
Requires
Planning
todo_create / todo_update / todo_list
The session planning board — a written checklist of intent (create entries, set status / owner / dependencies, list them grouped by status). Writing an entry starts nothing
Nothing
Execution
list_tasks / task_output / task_stop
The work actually running: list this session's background tasks, wait for one's result, or stop one. Only the session that dispatched a task may fetch or stop it
Nothing
Entity
agent
Spawn a new agent and collect its reply, or with to= hand a tracked task to an agent that already exists. run_in_background=true returns a task id instead of blocking; start_from picks where a new agent begins (clean / inherit / SID:MSG_ID); archive_when_done=true archives it once its task ends and the result has come back
Nothing
Entity
list_agents
The agent list: which agents exist, their names, addresses, sizes and busy state (scope="archived" shows the archived ones)
Nothing
Entity
archive_agent
Archive an agent whose work is finished: it leaves list_agents and refuses further send_message / agent(to=) deliveries, while read_conversation still reads its history and agent(start_from="SID:MSG_ID") still forks it. Any session may archive any agent, since archiving interrupts nothing and deletes nothing; it is one-way, and there is no unarchive
Nothing
Communication
send_message
Say something to an existing agent, addressed by "SID:HEAD" or by name. No task, no task id, nothing to cancel, which is why anyone may write to anyone
Nothing
Communication
read_conversation
Read any agent's history as a plain-text transcript, tool calls included, with turn ranges and a character budget
Nothing
Tool
What it does
Requires
program
Invoke any registered @agentic_function
Nothing
mixture_of_agents
Ask N models in parallel, then synthesize; defaults picked from the model registry, one per provider
At least 2 providers in the model registry
ask_user_question
Ask the user 1-N questions with options
Nothing
enter_plan_mode / exit_plan_mode
Enter / exit plan mode
Nothing
canvas
Incrementally write into named blocks of a markdown file
Nothing
memory_*
Read the persistent memory workspace — memory_search (by meaning), memory_grep (exact string), memory_get (one file, section or block), memory_browse (what exists), memory_status (size and revision), and memory_update to correct one thing. Recording the conversation is not among them: that happens in the background. There is one workspace per instance, shared by every agent and every conversation including chat channels (Chat Channels).
Nothing
worktree_*
Git worktrees: worktree_create (also opens a worktree straight from a PR — pr="123" / "#123" / a GitHub PR URL, via gh) / merge / discard / list / keep