poly
v0.28.2Zero-dependency lint & format orchestrator over MCP — one pure-Rust binary wrapping ruff/oxc/taplo/rumdl and more as in-process backends, plus a tree-sitter generic tier for everything else. Exposes lint/format/cache tools with structured JSON output.
By Na'aman HirschfeldLicense: MIT19 GitHub starsUpdated 2 weeks ago
Directory evidence
- Runtimes
- Codex and Claude Code
- Parsed components
- 6 skill or MCP entries
- Source updated
- Oct 3, 2026
- Manifest status
- Canonical path parsed
The directory validates manifest shape and source location. It does not execute the plugin or provide a security endorsement. Review the indexing methodology →
Install poly for Codex and Claude Code
codex plugin marketplace add IchenDEV/agent-plugin-mkt
codex plugin marketplace upgrade agent-plugin-marketplace
codex plugin add poly@agent-plugin-marketplacePaste and run these commands in a terminal with Codex. They add and refresh the PluginsMP catalog, then install this plugin.
The installer fetches third-party code from the source repository shown on this page. This directory validates manifest structure and source location, but does not perform a security audit; review the manifest, components, and source before installing.
Get the source manually
git clone https://github.com/Goldziher/polyClone the source repository, then follow its setup instructions to add the plugin to a compatible client. The repository root is the plugin root.
Plugin files
├── .codex-plugin/plugin.json├── .claude-plugin/plugin.json├── skills/poly-lint-and-format/SKILL.md├── skills/poly-mcp/SKILL.md├── skills/poly-orchestrator/SKILL.md├── skills/poly-overview/SKILL.md├── skills/poly-tiers-and-scope/SKILL.md└── .mcp.json
Included Skills5
Running poly lint / poly fmt — --fix, --format pretty|json|toon, --exclude, --config, exit codes, inline suppression, and the check → read-json → fix → re-check loop
The poly MCP server — the eleven tools and which are read-only vs mutating, the paths/exclude/config/format params, async Tasks for the whole-project phase, and the isError contract
Use poly as the single lint/format gate instead of invoking ruff/oxlint/rustfmt directly — one poly.toml, poly hooks install, poly migrate, CI via the Goldziher/poly setup Action
What poly is — the native, tree-sitter, native-toolchain, quality, and built-in-rule-pack tiers, language coverage, and when to reach for it
poly's coverage tiers (native / tree-sitter / native-toolchain / quality / built-in ast-grep pack), the per-file tier vs the whole-project phase (--no-workspace), staged isolation (ADR 0019), and hierarchical poly.toml in monorepos (ADR 0018)
MCP servers1
- command
- poly
- args
- mcp
Plugin manifests2
{
"name": "poly",
"version": "0.28.2",
"description": "Zero-dependency lint & format orchestrator over MCP — one pure-Rust binary wrapping ruff/oxc/taplo/rumdl and more as in-process backends, plus a tree-sitter generic tier for everything else. Exposes lint/format/cache tools with structured JSON output.",
"author": {
"name": "Na'aman Hirschfeld",
"email": "[email protected]",
"url": "https://github.com/Goldziher"
},
"homepage": "https://github.com/Goldziher/poly",
"repository": "https://github.com/Goldziher/poly",
"license": "MIT",
"keywords": [
"linter",
"formatter",
"mcp",
"code-quality",
"rust"
],
"skills": "./skills/",
"mcpServers": "./.mcp.json",
"interface": {
"displayName": "poly",
"shortDescription": "Zero-dependency lint & format orchestrator over MCP",
"longDescription": "poly is a single pure-Rust binary that lints and formats a whole repository across languages — wrapping ruff/oxc/taplo/rumdl and more as in-process backends, with a tree-sitter generic tier for everything else. Its MCP server exposes lint/format/cache tools with structured JSON output, no subprocesses and no system dependencies by default.",
"developerName": "Na'aman Hirschfeld",
"category": "Developer Tools",
"capabilities": [
"Interactive",
"Read"
],
"defaultPrompt": [
"Lint this repository with poly and summarize the findings.",
"Check formatting drift with poly and list the affected files.",
"Apply poly's lint and format autofixes, then report what remains.",
"Show poly's effective configuration for this repo."
],
"websiteURL": "https://github.com/Goldziher/poly",
"brandColor": "#F97316"
}
}{
"name": "poly",
"displayName": "poly",
"description": "Zero-dependency lint & format orchestrator over MCP — one pure-Rust binary wrapping ruff/oxc/taplo/rumdl and more as in-process backends, plus a tree-sitter generic tier for everything else. Exposes lint/format/cache tools with structured JSON output.",
"version": "0.28.2",
"author": {
"name": "Na'aman Hirschfeld",
"email": "[email protected]",
"url": "https://github.com/Goldziher"
},
"homepage": "https://github.com/Goldziher/poly",
"repository": "https://github.com/Goldziher/poly",
"license": "MIT",
"keywords": [
"linter",
"formatter",
"mcp",
"code-quality",
"rust"
],
"mcpServers": {
"poly": {
"command": "poly",
"args": [
"mcp"
]
}
}
}For maintainers
If you maintain this plugin, link to this source-backed listing from your README so users can review its manifest and indexed components.
[poly on Agent Plugins Marketplace](https://pluginsmp.com/plugins/poly)