Unified launcher for AI coding agent harnesses
Project description
Harnyard
A unified launcher for AI coding agent harnesses.
Start Claude Code, Copilot CLI, Kiro CLI, or Pi from a single command -- with shared config under .claude/.
Why
AI coding tools are converging on the same concepts: skills, plugins, MCP servers, hooks, and project context files. But each tool looks for config in different places and uses slightly different formats. Harnyard manages the translation layer so you can maintain one source of truth and launch any harness.
Supported Harnesses
| Harness | Command | Config Dir | Status |
|---|---|---|---|
| Claude Code | claude |
.claude/ |
Canonical |
| Copilot CLI | copilot-cli |
.claude/ |
Native support |
| Kiro CLI | kiro |
.kiro/ |
Symlink from .claude/ |
| Pi | pi |
.pi/ |
Symlink from .claude/ |
Quick Start
# Install
pip install harnyard # or: pipx install harnyard
# Run without installing
uvx harnyard list
# Start a harness in the current project
hy claude # Start Claude Code
hy copilot # Start Copilot CLI
hy kiro # Start Kiro CLI
hy pi # Start Pi Coding Agent
# Setup symlinks for a harness
hy setup kiro # Create .kiro/ symlinks pointing to .claude/
hy setup pi # Create .pi/ symlinks pointing to .claude/
hy setup --all # Setup all harnesses
# Show what each harness sees
hy status # Show config mapping for all harnesses
How It Works
- Canonical config: All your skills, plugins, agents, and context live under
.claude/ - Harness profiles: Harnyard knows where each tool looks for config
- Symlink bridge:
hy setup <harness>creates symlinks so each tool finds what it needs - Launch:
hy <harness>starts the tool with the right flags and environment
Config Mapping
.claude/ # Canonical (Claude Code + Copilot CLI read natively)
├── CLAUDE.md # Project context
├── settings.json # Hooks, permissions
├── skills/ # Skills (SKILL.md format)
├── agents/ # Agent definitions
└── plugins/ # Plugin manifests
.kiro/ → symlinks # Created by: hy setup kiro
├── steering.md → ../.claude/CLAUDE.md
├── skills/ → ../.claude/skills/
└── powers/ # Converted from .claude/plugins/
.pi/ → symlinks # Created by: hy setup pi
├── agent/extensions/ → ../.claude/plugins/
└── mcp.json → ../.claude/mcp.json
Harness Profiles
Each harness has a profile in profiles/ that defines:
- binary: Command to run (e.g.,
claude,kiro) - config_dir: Where it looks for config (e.g.,
.kiro/) - context_file: Project context filename (e.g.,
steering.md) - skills_dir: Where it looks for skills
- mcp_config: MCP server configuration file
- setup: Symlinks and conversions needed
Philosophy
.claude/is the source of truth -- other harness configs are derived- Non-destructive --
hy setuponly creates symlinks, never modifies.claude/ - Optional -- each harness still works standalone if you prefer manual config
- Open source -- contributions welcome for new harnesses
Mascot
Dolly the sheep. Because all the harnesses are clones of the same concepts.
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file harnyard-0.1.0.tar.gz.
File metadata
- Download URL: harnyard-0.1.0.tar.gz
- Upload date:
- Size: 20.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f1fa87c891f360b8239ca5de74d41888f96b21ba194b22e38d18626da6bbfd51
|
|
| MD5 |
766c3dd502f57e8a7ea920546da0b668
|
|
| BLAKE2b-256 |
b80d6ec64246ea41a5de96862a4b00ff956926392647ccc8821ca9b91d98c3b7
|
File details
Details for the file harnyard-0.1.0-py3-none-any.whl.
File metadata
- Download URL: harnyard-0.1.0-py3-none-any.whl
- Upload date:
- Size: 12.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c0e28b7fc0b7938497b80fef4983d9e58d25cdde83008a80805e763f0db32627
|
|
| MD5 |
78939cc60466a6c263023b9684e8ce83
|
|
| BLAKE2b-256 |
3ed84f5e3eee8ae521cf02fcd0f4e9c6c0475c32ff19eb7054b1d53c842db7c2
|