agent-zero/plugins
Alessandro 306012eb00 Default desktop text files to Writer
Set LibreOffice Writer as the Desktop MIME default for Markdown and plain text while keeping Agent Zero Editor as the secondary Open With association.

Update the Desktop DOX contract and extend the routing regression test to pin the Writer-first association order.
2026-07-03 01:08:02 +02:00
..
_a0_connector Reassemble chunked connector file results 2026-06-16 13:59:38 +02:00
_browser Fix browser URL intent routing 2026-07-03 01:07:49 +02:00
_chat_branching Add file-level DOX docs & update AGENTS indexes 2026-06-08 12:41:53 +02:00
_chat_compaction Fix mobile compaction modal spacing 2026-06-23 19:58:06 +02:00
_code_execution Merge pull request #1705 from TriTechAI/fix/git-pager-cpu-spin 2026-06-24 11:14:27 +02:00
_desktop Default desktop text files to Writer 2026-07-03 01:08:02 +02:00
_discovery Refine onboarding model setup flow 2026-07-02 17:29:40 +02:00
_document_query Refine document query image routing 2026-06-19 01:49:50 +02:00
_editor feat: add tiny local tool-use profile 2026-06-24 03:59:21 -04:00
_email_integration Add file-level DOX docs & update AGENTS indexes 2026-06-08 12:41:53 +02:00
_error_retry Add file-level DOX docs & update AGENTS indexes 2026-06-08 12:41:53 +02:00
_infection_check Add file-level DOX docs & update AGENTS indexes 2026-06-08 12:41:53 +02:00
_kokoro_tts Add file-level DOX docs & update AGENTS indexes 2026-06-08 12:41:53 +02:00
_memory Coerce memory load numeric args 2026-07-02 17:29:40 +02:00
_model_config Update default main model to Claude Sonnet 5 2026-07-02 17:29:40 +02:00
_oauth fix: prevent stale OAuth model provider selection 2026-07-02 17:29:40 +02:00
_office Improve Editor text file workflows 2026-06-23 14:42:49 +02:00
_onboarding Update default main model to Claude Sonnet 5 2026-07-02 17:29:40 +02:00
_plugin_installer Add file-level DOX docs & update AGENTS indexes 2026-06-08 12:41:53 +02:00
_plugin_scan Add file-level DOX docs & update AGENTS indexes 2026-06-08 12:41:53 +02:00
_plugin_validator Add file-level DOX docs & update AGENTS indexes 2026-06-08 12:41:53 +02:00
_promptinclude Add file-level DOX docs & update AGENTS indexes 2026-06-08 12:41:53 +02:00
_skills Add protocol prompt area before history 2026-06-18 21:42:06 +02:00
_telegram_integration Preserve subordinate agent profiles 2026-06-17 13:07:22 +02:00
_text_editor feat: add tiny local tool-use profile 2026-06-24 03:59:21 -04:00
_time_travel Time Travel workspace selector + LiteLLM globals 2026-06-09 17:16:41 +02:00
_whats_new Disable What's New cards 2026-07-02 17:29:40 +02:00
_whatsapp_integration Merge pull request #1676 from hash-anmol/telegram-native-integration-production 2026-06-11 04:11:12 +02:00
_whisper_stt Refresh welcome screen and composer 2026-06-22 15:12:20 +02:00
AGENTS.md Disable What's New cards 2026-07-02 17:29:40 +02:00
README.md Add AGENTS.md DOX files and migrate docs 2026-06-01 13:55:07 +02:00

Agent Zero - Core Plugins

This directory contains the system-level plugins bundled with Agent Zero.

Directory Structure

  • plugins/: Core system plugins. Reserved for framework updates — do not place custom plugins here.
  • usr/plugins/: The correct location for all user-developed and custom plugins. This directory is gitignored.

Documentation

For detailed guides on how to create, extend, or configure plugins, refer to:

What a Plugin Can Provide

Plugins are automatically discovered based on the presence of a plugin.yaml file. Each plugin can contribute:

  • Backend: API handlers, tools, helpers, named lifecycle extensions, and implicit @extensible hooks under extensions/python/_functions/...
  • Frontend: HTML/JS UI contributions via core extension breakpoints
  • Settings: Isolated configuration scoped per-project and per-agent profile
  • Activation: Global and scoped ON/OFF rules via .toggle-1 and .toggle-0 files, including advanced per-scope switching in the WebUI
  • Agent profiles: Plugin-distributed subagent definitions under agents/<profile>/agent.yaml

Backend extension layouts:

  • extensions/python/<point>/ for named lifecycle hooks
  • extensions/python/_functions/<module>/<qualname>/<start|end>/ for implicit @extensible hooks

Do not use the retired flattened extensions/python/<module>_<qualname>_<start|end>/ form.

Plugin Manifest

Every plugin requires a plugin.yaml at its root:

name: my_plugin              # required for community plugins
title: My Plugin
description: What this plugin does.
version: 1.0.0
settings_sections:
  - agent
per_project_config: false
per_agent_config: false
always_enabled: false

Plugin Script (execute.py)

Plugins can include an optional execute.py at the plugin root for user-triggered operations such as setup, post-install steps, maintenance, repairs, migrations, or resource refreshes. Users trigger it from the Plugin List UI.

Guidelines:

  • Treat it as a manual plugin script, not as the primary way to use the plugin
  • Prefer making it safe to rerun, or detect state and explain why a rerun is not appropriate
  • Return 0 on success and print progress messages for user feedback
  • Use hooks.py instead when the behavior is framework-internal or should happen automatically

Runtime Hooks (hooks.py)

Plugins can also include an optional hooks.py at the plugin root. The framework loads it on demand and can call exported hook functions by name through helpers.plugins.call_plugin_hook(...).

  • hooks.py runs inside the Agent Zero framework runtime and Python environment.
  • Use it for framework-internal work such as install hooks, cache preparation, registration, or filesystem setup.
  • If it runs sys.executable -m pip install ..., packages are installed into the same Python environment that runs Agent Zero.
  • If you need to install into the separate agent runtime or into the system environment, explicitly target that environment from a subprocess by selecting the correct interpreter, virtualenv, or package manager.

In Docker, hooks.py normally affects /opt/venv-a0; the agent execution runtime is /opt/venv.

Plugin Index & Community Sharing

The Plugin Index at https://github.com/agent0ai/a0-plugins is the community-maintained registry of plugins available to all Agent Zero users.

To share a plugin with the community:

  1. Create a standalone GitHub repository with the plugin contents at the repo root. The runtime plugin.yaml must include a name field matching the intended index folder name. Add a LICENSE file at the repo root (required for Plugin Index listings so users have explicit terms of use).
  2. Fork https://github.com/agent0ai/a0-plugins and add a folder plugins/<your_plugin_name>/ containing a separate index manifest named index.yaml (not plugin.yaml):
title: My Plugin
description: What this plugin does.
github: https://github.com/yourname/your-plugin-repo
tags:
  - tools

Optional additional fields: screenshots (up to 5 image URLs).

  1. Open a Pull Request. CI validates the submission; a maintainer reviews and merges.

Note: The index index.yaml is a different file with a different schema from the runtime plugin.yaml. Folder names use ^[a-z0-9_]+$ (underscores, no hyphens) and must match the name field in the remote plugin.yaml exactly.

Plugin Hub

Agent Zero now includes a built-in Plugin Hub flow through the always-enabled Plugin Installer plugin. From the Plugins dialog, users can either open the Browse tab or click Install, which opens the installer modal on its own Browse tab.

The Plugin Hub surfaces Plugin Index entries directly in the UI and lets users search, filter, inspect, and install community plugins without leaving Agent Zero.