- Category
- Developer Tools
- Rank
- No. 2250Tools index
Previous survey · No. 2178 ·
- Pricing
- Open Source
- Type
- TOOL
- Builder
- tempoxyz
- GitHub
- 6 stars
- Date
About
Rust port of wevm/incur — a CLI framework for agents and humans.
What it does
Incur-rs lets Rust developers define command trees, typed arguments, options, handlers, help, and structured results. The same definitions can produce human-readable output, machine-oriented manifests, multiple serialization formats, and an MCP server over standard input and output.
Why it's ranked here
The design has unusual practical breadth: one command model serves terminal users and agent tooling, while configuration layers and structured errors cover real application needs. The case is tempered by sparse onboarding, an early package version, and MCP responses that omit structured content despite serializing JSON into text.
What's good
Commands expose JSON Schema to MCP clients, including required fields, defaults, descriptions, enums, and basic types. Output supports TOON, JSON, YAML, Markdown, and JSON Lines. Configuration follows explicit precedence across command arguments, environment variables, TOML, and code defaults. An optional bridge can expose existing clap command trees.
Tradeoffs
The repository provides no README, so adoption depends on API documentation and source examples. MCP tool results place serialized JSON in text while leaving structured content empty. Calls with metadata discard their suggested next actions in MCP mode. The native parser supports only string, number, boolean, and string-array option types.
How to use it well
Use it for Rust command-line applications that need both approachable terminal behavior and agent discovery from one command definition. It fits tools requiring predictable structured output, layered configuration, or MCP exposure. Existing clap applications can add agent access through the optional bridge. It does not provide your application’s domain logic or a network API.
Technical notes+
Cargo.toml defines the incur library with Rust edition 2024, an optional clap feature, rmcp stdio transport, Tokio, serde, figment2, and a path dependency on incur-derive. src/cli.rs owns the Cli builder, routing, built-in flags, manifest generation, formatting, and MCP dispatch. src/mcp.rs converts Arg and Opt metadata into JSON Schema, reparses flat tool arguments through parser::parse, and returns JSON-serialized text with structured_content set to None. src/config.rs implements defaults, upward-discovered TOML, prefixed environment variables, and explicit per-option environment variables. src/from_clap.rs walks clap leaves and runs the current executable for each MCP call. incur-derive/src/lib.rs generates IncurCommand implementations from named structs.
Observed
- License
- MIT
- Primary language
- Rust, edition 2024
- Packaging
- Cargo package named incur with a local incur-derive procedural macro crate
- Interfaces
- Rust library, CLI framework, and MCP server over stdio
- Optional integration
- clap support is disabled by default and available through a Cargo feature
- Output formats
- TOON, JSON, YAML, Markdown, and JSON Lines
- Documentation surface
- No README was available in the supplied repository text
Read from Cargo.toml, src/cli.rs, src/lib.rs, src/cta.rs, src/mcp.rs, src/help.rs, src/error.rs, src/config.rs, src/parser.rs, src/formatter.rs, src/from_clap.rs, src/derive_support.rs, incur-derive/src/lib.rs.
What it can do
Execute CLI commands through agent framework
Command line instructions → Command execution results
Process agent workflows
Agent configuration and tasks → Executed workflow results
Handle interactive CLI sessions
User prompts and responses → Interactive command responses
Parse and execute structured commands
Structured command syntax → Parsed command execution
Manage agent-human collaboration workflows
Mixed agent and human tasks → Coordinated workflow execution
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.
