Skip to main content

Plugin Manifest

# plugin.yaml
id: my-plugin
name: My Plugin
version: 1.0.0
description: What this plugin does
author: Your Name
license: MIT
engine: ">=1.0.0"

provides:
  tools: true
  skills: true
  prompt: prompt.md
  hooks:
    pre_tool_use:
      - script: hooks/validate.sh   # any filename — hooks.yaml points to it

Plugin Structure

plugins/my-plugin/
  plugin.yaml          # manifest
  prompt.md            # appended to system prompt
  tools/
    my-tool.yaml       # declarative tools
  skills/
    my-skill/
      SKILL.md
  hooks/
    validate.sh        # example — any filename, referenced from hooks.yaml

agent.yaml Plugin Config

# agent.yaml
plugins:
  my-plugin:
    enabled: true
    config:
      api_key: "your-api-key"
      timeout: 30
Config values can reference environment variables using ${VAR_NAME} syntax — API keys are never hardcoded.

Plugin Management CLI

# Install from git URL
gitagent plugin install https://github.com/user/plugin
# Install from local path
gitagent plugin install ./path/to/plugin
# List all plugins
gitagent plugin list
# Enable / disable
gitagent plugin enable my-plugin
gitagent plugin disable my-plugin
# Remove
gitagent plugin remove my-plugin
# Scaffold new plugin
gitagent plugin init my-plugin

Programmatic Plugin (SDK)

// plugin.ts
import type { GitagentPluginApi } from "@open-gitagent/gitagent";

export function register(api: GitagentPluginApi) {
  api.registerTool(myTool);
  api.registerHook("pre_tool_use", async (ctx) => ({ action: "allow" }));
  api.addPrompt("Additional context for the agent...");
}

What Plugins Can Provide

  • Tools — Expose new typed tools to the agent
  • Skills — Add reusable skill definitions
  • System Prompt Injection — Append context via prompt.md
  • Lifecycle Hooks — React to tool use and session events
  • Memory Layers — Add scoped memory files

Tools

Built-in and declarative tools the agent uses to act

Skills

Reusable task modules the agent learns and crystallizes over time

Hooks

Intercept, block, or modify agent behavior at every stage

SDK Reference

Embed GitAgent programmatically and register plugins at runtime