- Category
- AI Agents
- Rank
- No. 838Tools index
- Pricing
- Open Source
- Platform
- cli
- Type
- TOOL
- Builder
- @wevm
- GitHub
- 601 stars
- Latest release
- incur@0.5.1
- Added
- Mar 4, 2026
About
A CLI framework designed specifically for both AI agents and humans, with built-in agent discovery, token-efficient output formats, and automatic integration with Skills and MCP systems.
What it does
Incur lets TypeScript developers define commands from Zod schemas, handlers, nested groups, Fetch-compatible servers, OpenAPI documents, or remote MCP tools. One command tree can run in a terminal, answer HTTP requests, or expose MCP tools. It also formats structured results, generates help and schemas, filters large responses, and supports token-based output pagination.
Why it's ranked here
The strongest case is architectural reuse. A single typed command definition can serve terminal users, HTTP clients, and MCP clients, while OpenAPI and remote MCP sources can become ordinary subcommands. Built-in schemas, structured errors, completion scripts, output filtering, and multiple serialization formats cover work that CLI projects usually assemble from separate packages. The Node requirement and broad feature surface narrow its appeal for small or older projects.
What's good
Zod definitions drive argument parsing, option validation, help text, JSON Schema, generated skill documentation, and inferred handler types. Fetch-compatible applications can be mounted behind curl-style flags, while command trees can also become Fetch handlers. MCP supports direct or progressive tool discovery, structured output when schemas exist, streaming progress notifications, tool annotations, and command suggestions. Standalone updates verify SHA-256 digests and validate the downloaded executable before replacement.
Tradeoffs
The package requires Node 22 or newer, which excludes older supported runtimes. Its adapters cover many boundaries, but adopting them ties command structure, validation, formatting, HTTP translation, MCP exposure, documentation generation, and binary updates to one framework. Fetch-backed command parsing reserves specific curl-style flags and treats other long flags as query parameters. The standalone updater targets public GitHub Releases and requires digest-bearing assets. Claims about reduced token use appear in the documentation, but the supplied repository text does not include the supporting benchmark.
How to use it well
Use Incur when a TypeScript team wants one schema-driven command model shared across shell automation, agent tools, and HTTP entry points. It fits internal developer tools, API wrappers, and products whose commands need structured output, discovery metadata, filtering, and standalone distribution. Start with explicit input and output schemas, then add MCP or Fetch exposure where the same operation genuinely needs another interface. It does not replace the HTTP framework or remote service being wrapped.
Technical notes+
package.json defines an ESM npm package, requires Node >=22, exports source through src/index.ts, and declares Zod, TOON, YAML, token counting, JSON Schema, and MCP dependencies. src/Cli.ts contains the generic command tree, middleware registration, Fetch routing, serving, built-ins, and output controls. src/Mcp.ts lazily imports the MCP server, supports stdio transport, progressive discovery, direct exposure, structured content, annotations, and streaming notifications. src/Fetch.ts translates curl-style arguments into Web Request objects and parses JSON, text, and NDJSON responses. src/Skill.ts generates compact manifests and split Markdown skill content from command schemas. src/bin.ts provides binary building and type generation commands. src/Binary.ts implements GitHub Releases selection, SHA-256 verification, staged validation, and platform-specific replacement.
Observed
- License
- MIT
- Primary language
- TypeScript
- Packaging
- ESM npm package installable with npm, pnpm, or Bun
- Runtime requirement
- Node.js 22 or newer
- Interfaces
- CLI framework and library with Fetch API and MCP server surfaces
- Output formats
- TOON, JSON, YAML, Markdown, and JSONL
- Standalone platforms
- macOS, Linux, and Windows executables
Read from README.md, package.json, src/Cli.ts, src/index.ts, src/Mcp.ts, src/bin.ts, src/Help.ts, src/Fetch.ts, src/Skill.ts, src/Binary.ts, src/Errors.ts, src/Filter.ts.
What it can do
Discover and connect to AI agents
Agent search criteria or identifiers → List of available AI agents with connection details
Synchronize with Skills systems
Skills system configuration → Integrated skill capabilities and functions
Synchronize with MCP (Model Context Protocol) systems
MCP system endpoints and credentials → Connected MCP services and context data
Optimize command output for token efficiency
CLI commands and responses → Token-optimized output with up to 3x fewer tokens
Generate TOON format output for agent parsing
Raw command results or data → TOON-formatted text optimized for AI agent consumption
Create interactive call-to-action prompts
User commands or agent interactions → Interactive prompts with actionable options
Save and manage CLI sessions
Command history and session data → Persistent session files with reduced token usage
Tags
Tech Stack
Comments (0)
No comments yet
Indexed by a proprietary survey. Corrections welcome.
