How Ponytail Handles Different Agent Hosts: Claude, Codex, Copilot, and Qoder

Ponytail uses a thin-adapter architecture where core skills live in the skills/ directory and host-specific adapters map each agent's extension points to those reusable behaviors.

The open-source Ponytail project provides a consistent "lazy senior developer" experience across multiple AI coding agents. Rather than duplicating logic for every platform, the repository centralizes behavior definitions and wraps them with minimal host-specific glue code. This design ensures that commands like /ponytail or /ponytail-review work identically whether you are using Claude, GitHub Copilot, or Qoder.

The Three-Layer Architecture

Ponytail organizes its agent support into three distinct layers, keeping the core logic portable while allowing hosts to integrate natively.

Core Skills Layer

The actual behavior definitions reside under the skills/ directory. Each skill is a self-contained markdown file describing capabilities, triggers, and system prompts. For example, skills/ponytail/SKILL.md defines the lazy senior developer mode, while skills/ponytail-review/SKILL.md handles over-engineering reviews. These files are host-agnostic and written in plain text so any agent can theoretically consume them.

Host Adapters Layer

Host adapters act as translation layers between a specific agent's plugin system and the core skills. These adapters are intentionally thin: when a host supports dynamic skill loading, the adapter simply points to the skills/ directory; when a host requires static instructions, the adapter copies relevant rules into host-specific files.

Fallback Instruction Set

For agents that only understand plain text context, Ponytail provides AGENTS.md at the repository root. This file contains a compact, always-on rule set that enables basic Ponytail commands without requiring plugin installation or hook registration.

Claude and Codex Integration

Claude and Codex support plugin manifests and JSON-based hooks, allowing deep integration with Ponytail's skill system.

Plugin Configuration

The adapters for these hosts use plugin.json files to register capabilities:

// .claude-plugin/plugin.json
{
  "name": "ponytail",
  "hooks": "hooks/claude-codex-hooks.json",
  "skills": "skills/"
}
// .codex-plugin/plugin.json
{
  "name": "ponytail",
  "hooks": "hooks/claude-codex-hooks.json", 
  "skills": "skills/"
}

Hook Registration

The shared hooks/claude-codex-hooks.json file maps host lifecycle events to Ponytail behaviors:

// hooks/claude-codex-hooks.json
{
  "onActivate": "pre_llm_call",
  "commands": ["/ponytail", "/ponytail-review"]
}

When you type /ponytail in a Claude or Codex session, the hook triggers the corresponding skill from skills/ponytail/SKILL.md, and the status line updates to reflect the current mode.

GitHub Copilot Support

GitHub Copilot does not expose a skill system, so Ponytail falls back to instruction-tier integration using always-on context files.

Instruction File Setup

Copilot reads project-level instructions from .github/copilot-instructions.md:

<!-- .github/copilot-instructions.md -->

# ponytail

/ponytail               # invoke the lazy-senior-dev mode

/ponytail-review        # run an over-engineering review

Because Copilot automatically injects these rules into every suggestion, typing /ponytail in a comment or docstring triggers the corresponding behavior defined in AGENTS.md. For Copilot CLI users, additional plugin manifests live under .github/plugin/.

Qoder Plugin Architecture

Qoder offers the richest extension points, supporting both skill loading and event hooks for dynamic behavior injection.

Plugin Manifest

The .qoder-plugin/plugin.json points to the core skills directory:

// .qoder-plugin/plugin.json
{
  "name": "ponytail",
  "skillsPath": "skills/",
  "hooks": "hooks/qoder-hooks.json"
}

Event Hooks

Qoder-specific hooks in hooks/qoder-hooks.json enable automatic mode switching and sub-agent injection:

// hooks/qoder-hooks.json
{
  "UserPromptSubmit": {
    "match": "*/ponytail*",
    "action": "injectRuleset"
  },
  "PreToolUse": {
    "match": "task|Task",
    "action": "subagentInject"
  }
}

When you submit a prompt like /ponytail-audit, the UserPromptSubmit hook injects the full ruleset, while PreToolUse ensures the appropriate sub-agent skill executes when task-related tools are invoked.

The "Thin Adapter" Design Philosophy

All Ponytail adapters follow a strict rule: keep adapters thin. When a host supports dynamic skill loading, adapters merely reference the existing skills/ and hooks/ directories rather than duplicating content. When a host only understands raw instructions, the adapter syncs relevant rule text into AGENTS.md or host-specific instruction files. This ensures behavioral consistency across platforms while minimizing maintenance overhead.

Summary

Frequently Asked Questions

Does Ponytail duplicate code for each agent host?

No. Ponytail keeps all behavioral logic in the skills/ directory. Host adapters are thin wrappers that either point to these files or copy their contents into host-specific instruction formats. According to the adapter rule documented in docs/agent-portability.md, this prevents drift between platforms.

Which Ponytail commands are available across all hosts?

The primary commands /ponytail (lazy senior dev mode) and /ponytail-review (over-engineering review) are available on all supported hosts. Claude, Codex, and Qoder expose these as native slash commands, while Copilot interprets them via AGENTS.md context injection.

How does Ponytail handle hosts that don't support plugins?

For agents without plugin systems, Ponytail provides AGENTS.md at the repository root. This file contains compact, always-on rules that enable basic Ponytail functionality through plain text instructions. Hosts like generic LLM clients can load this file as system context.

What happens when I type /ponytail-audit in Qoder?

Qoder's UserPromptSubmit hook (defined in hooks/qoder-hooks.json) detects the pattern and injects the full Ponytail ruleset. Subsequently, the PreToolUse hook ensures that task-related tool calls trigger the ponytail-audit skill from the skills/ directory.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →