Portable AI agent orchestration with mechanical protocol enforcement. 186 agents, zero runtime dependencies.
# Add to your Claude Code skills
git clone https://github.com/GammaLabTechnologies/harmonistLast scanned: 5/2/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-05-02T06:06:31.469Z",
"semgrepRan": false,
"npmAuditRan": true,
"pipAuditRan": true
}harmonist is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by GammaLabTechnologies. Portable AI agent orchestration with mechanical protocol enforcement. 186 agents, zero runtime dependencies. It has 2,394 GitHub stars.
Yes. harmonist passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/GammaLabTechnologies/harmonist" and add it to your Claude Code skills directory (see the Installation section above).
harmonist is primarily written in Python. It is open-source under GammaLabTechnologies on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh harmonist against similar tools.
No comments yet. Be the first to share your thoughts!
If you are an AI agent asked to install or integrate this pack: read
integration-prompt.mdand execute its steps. Do not applyAGENTS.template.mdas a live rule inside the pack folder — it is the template that becomes the user project'sAGENTS.mdduring integration.
A drop-in multi-agent framework for Cursor, Claude Code, Copilot, Windsurf, Aider, and other AI coding assistants.
Built and maintained by GammaLab · @GammaLabTechnologies
Most AI coding frameworks trust the language model to follow the rules. Harmonist refuses to let it skip them. Every code-changing turn is gated by hooks that check whether the required reviewers ran, whether memory was updated, and whether the supply chain of every shipped file is intact. If the checks fail, the turn doesn't complete — no matter how confidently the model claims it's done.
This is the first open-source agent framework where protocol enforcement is a mechanical gate, not a polite request in a prompt.
AI coding assistants have a structural problem that prompt engineering alone cannot fix.
The problem: every serious engineering workflow has non-negotiable rules — "no floating-point for money", "run QA before merging", "every external call retries with idempotency keys", "security review before touching auth code". An LLM can be told to follow them, but there is no mechanism forcing it to. It can agree, move on, and silently skip the step. On a good day you notice. On a bad day the bug ships.
The current landscape is split between two imperfect answers:
Harmonist takes a different stance. Protocol enforcement is
implemented as IDE-level hooks — concrete shell and Python scripts that
observe every subagent dispatch, every file edit, every session stop.
When the rules the project declared aren't met, the stop hook
returns a followup_message to the AI and refuses to allow the turn
to complete. The model can't argue with that; it's a state machine on
disk.
No runtime. No database. No vendor lock-in. Just markdown, stdlib Python, and bash — sitting next to your code, doing one job correctly.
Seven concrete, checkable properties — each one addresses a gap that other open-source agent frameworks leave open.
The stop hook in .cursor/hooks/ parses subagent dispatch markers
from the session, checks whether qa-verifier ran, whether any
required reviewer was missing, whether session-handoff.md was
updated, and returns a structured followup_message if the turn
is incomplete. loop_limit: 3 caps retries. On exhaustion, an
incident is recorded and surfaced in the next session. The AI
literally cannot ship a code change that skipped review.
All runtime-shipped content — agents/, hooks/, memory/,
playbooks/, root docs — is hashed in MANIFEST.sha256 (CI configs
and repo metadata are pack-repo-only and excluded). upgrade.py
sha-verifies each source before copying into a project. A tampered
security-reviewer.md (say, one that returns approve for
everything) is REFUSED — it never enters the project. install_extras.py
inherits the same guard for on-demand specialist installs. This is
the first OSS agent catalogue with paranoid-level supply-chain
posture.
Every memory entry has a correlation_id of the form
<session_id>-<task_seq> generated by the hooks at session start
(<unix-seconds><pid4> — collision-safe across parallel sessions).
The LLM reads the active ID via CLI; it never writes the ID itself.
This means the linkage between a state entry, a decision, and a
pattern from the same task is cryptographically ordered from
the hook's perspective — not trusted to the model.
memory.py append is the only supported write path. It validates
every entry against a YAML schema (memory/SCHEMA.md), rejects
duplicates, and scans the body for ~30 classes of secrets: AWS
access keys, GitHub PATs, Stripe tokens, Slack webhooks, GCP service
accounts, Azure connection strings, Telegram bot tokens, Discord
tokens, Heroku/Postmark UUIDs (context-scoped), generic high-entropy
tokens with secret: prefixes, and DB connection strings with
embedded credentials. Placeholder fences (${VAR}, <NAME>) suppress
the scan so your templates still write cleanly.
Harmonist's catalogue is not a handful of roles. It's 193 curated
specialists across 16 categories: blockchain-security-auditor for
Solidity audits, zk-steward for zero-knowledge circuits, visionos-
spatial-engineer for Apple Vision Pro, wechat-mini-program-developer
and xiaohongshu-specialist for the China market, laravel-livewire-
specialist for PHP, roblox-systems-scripter for Roblox Luau, 30+
marketing agents from SEO to Douyin, finance / sales / product /
support / academic coverage. The orchestrator picks by
domains × roles × tags, not by hard-coded slug lists.
There is no installer binary. Integration happens by pasting
integration-prompt.md into a Cursor Agent-mode session. The AI
reads the prompt, analyzes the project, asks the user which roles
will be active (engineering / design / product / marketing / sales /
support / finance / testing / academic), selects the right
specialists from agents/index.json, and wires everything up —
including writing a project-specific AGENTS.md with domain-tailored
invariants. The AI integrates itself.
No npm, no Docker, no LangChain, no vector database. Pure Python
stdlib (with optional POSIX .sh conveniences). Integration,
upgrade, conversion, install, and the enforcement runtime all run
natively on Windows, macOS, and Linux — no WSL or Git Bash
required. The enforcement runtime has two implementations — POSIX
.sh scripts for macOS / Linux / WSL, and a pure-Python
hook_runner.py that is the active path on every OS (and the only
one on native Windows). upgrade.py renders .cursor/hooks.json
with a Python launcher that actually exists on the host (py -3 /
python on Windows, python3 on POSIX). .gitattributes pins
eol=lf so a Windows checkout can't break MANIFEST.sha256. Both
hook paths are exercised against identical scenarios, and a
native-Windows CI job runs the full install path end-to-end.
.sh
conveniences and the shell test harness (macOS default works). All
integration, upgrade, conversion, and install tooling is pure Python,
and on native Windows the pure-Python hook_runner.py is the active
hook path; no WSL or Git Bash required.The pack folder may have any name — docs refer to it as
<PACK_DIR>. Examples below assume the folder is namedharmonist(whatgit cloneproduces). The protocol template ships asAGENTS.template.md; the f