mvdan/sh
A shell parser, formatter, and interpreter with bash and zsh support; includes shfmt
Single-maintainer risk — review before adopting
dependency CVE scan unavailable
No blocking repository signals were found — inspect the evidence before forking.
Documented and popular — useful reference codebase to read through.
dependency CVE scan unavailable
- ⚠Single-maintainer risk — top contributor 84% of recent commits
- ✓Last commit 4d ago
- ✓7 active contributors
- ✓BSD-3-Clause licensed
- ✓CI configured
- ✓Tests present
Computed from maintenance signals — commit recency, contributor breadth, bus factor, license, CI, tests
Informational only. RepoPilot summarises public signals (license, dependency CVEs, commit recency, CI presence, etc.) at the time of analysis. Signals can be incomplete or stale. Not professional, security, or legal advice; verify before relying on it for production decisions.
Repository brief
Verdict
What it is
Start here
Get running
Key cautions & unknowns
Sources
Evidence note
Full context for agent files, or a concise PDF for human review.
View complete agent reference
Open to load every section of the agent reference.
Want this for your own repo?
Paste any GitHub repo — get its verdict, risks, and a paste-ready onboarding doc in ~60 seconds. Free, no sign-up.
Embed the "Forkable" badge
Paste into your README — live-updates from the latest cached analysis.
[](https://repopilot.app/r/mvdan/sh)Paste at the top of your README.md — renders inline like a shields.io badge.
▸Preview social card
This card auto-renders when someone shares https://repopilot.app/r/mvdan/sh on X, Slack, or LinkedIn.
Ask AI about mvdan/sh
Grounded in the actual source code. Pick a starter question or write your own.
Similar Go repos
Other mixed-signal Go repos by stars.
Embed this chat in your README
Drop this iframe anywhere — the widget runs against the same live analysis cache as the main app.
<iframe src="https://repopilot.app/embed/mvdan/sh" width="100%" height="500" style="border:1px solid #d0d7de; border-radius:8px;" allow="microphone" loading="lazy" ></iframe>