CLI tools designed for agents. agent-clis.sh
Software has always been built for human users. That era is ending. Agents are becoming the primary executors of software workflows — browsing, building, deploying, debugging — and the tools they rely on were never designed for how they work. They can't verify safety before execution. They can't report friction when something breaks. They can't compose tools through validated contracts.
agent-clis is an open-source ecosystem of CLI tools built agent-first: structured I/O, zero GUI dependencies, programmatic error reporting, and machine-readable output by default. Humans benefit from these tools too, but agents are the design target.
| Tool | Description | Status |
|---|---|---|
| skill-issue | Static security analyzer for AI skill directories. 50+ rules for prompt injection, credential leaks, obfuscated content, and social engineering patterns. | |
| cage.sh | Sandboxed execution for untrusted scripts. Restricted filesystem, network, and resource limits. Apple containerization on macOS, Firecracker on Linux. Built in Rust. | |
| contract.sh | Input/output contract validation for CLI tools. Type checking for shell pipelines. Verifies the seams between chained tools in agent workflows. |
| Tool | Description | Status |
|---|---|---|
| atomic-dag.sh | Multilingual DAG runner. Define tasks as Python or TypeScript scripts with TOML dependencies. Topological sort, parallel execution, mid-graph resumption. Built in Rust. | |
| mcp2cli | Convert any MCP server into a CLI. Introspects tool catalogs, generates subcommands from schemas. Makes MCP servers testable, composable, and debuggable without an agent framework. | |
| mcp-progressive-disclosure | Context-aware MCP proxy. Surfaces tool names by default, expands full schemas on demand. Implements progressive disclosure for AI tool interfaces to prevent context rot. | |
| mock-api.sh | Instant fake API from an OpenAPI spec. One command, zero config. Agents building frontends can test without waiting for a real backend. |
| Tool | Description | Status |
|---|---|---|
| gripe.sh | Structured feedback as GitHub issues from the CLI. YAML schema → interactive or automated issue creation. Agents report friction they encounter during execution without human intervention. | |
| diagrams.sh | Architecture diagrams from YAML. CLI renders to SVG, PNG, and native PPTX. No browser, no drag-and-drop. | |
| decks.sh | Slide decks from atomic JS snippets. Each slide is an independent file, enabling parallel generation by multiple agents with unified theming. Single binary via Bun. | |
| next-on-rails | Bootstrap a fully wired Next.js project across Vercel, Clerk, Neon, and Resend. DNS, callback URLs, env vars, and domain verification from a single command. |
Structured I/O. Every tool accepts and emits JSON. Human-readable output is the secondary format, not the default.
Zero runtime dependencies. Single binaries where possible. No Python version conflicts, no node_modules, no Docker required.
Composable by default. Tools are designed to chain. The output of one is the input of another. contract.sh validates the seams.
Feedback loops built in. When a tool fails, gripe.sh gives agents a voice. Maintainers opt in with automated: allow. Consent-based, not spam.
Each tool lives in its own repository under this org. Issues, PRs, and feedback welcome — including via gripe submit.
Each tool is individually licensed. See the respective repository for details.