Claude Marketplaces
SkillsMCP serversMarketplacesDigestTools
Submit

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP servers by category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control
Claude Marketplaces

An independent directory of skills, plugins and MCP servers for Claude Code. Not affiliated with Anthropic.

Browse

  • Skills
  • MCP servers
  • Marketplaces
  • Weekly digest
  • Skill index
  • MCP index
  • Marketplace index

Site

  • About
  • Tools
  • Submit
  • Feedback
  • Privacy
  • llms.txt
  • Plugins reference

Maker

  • Snug
  • Agent Caffeine
  • knobs
  • Wax
  • Vectoys
  • mertduzgun.com
Crafted at
Skills/Rust
zhanghandong avatar

Domain Cli

zhanghandong/rust-skills

Teaches Claude the constraints that make CLIs feel right to users: errors go to stderr so piping works, CLI args beat env vars beat config files, non-zero exits for automation, and progress bars for anything slow. Shows the clap derive patterns for argument parsing, how to layer configuration sources properly, and which crates handle what (indicatif for progress, dialoguer for prompts, ratatui for full TUIs). The trace down sections connect domain rules to actual Rust implementations, which is helpful when you're trying to figure out why your CLI feels janky. Honestly just a solid reference for the stuff you always forget between CLI projects.

installs
709
GitHub stars
1.3K
last updated
Jul 14, 2026
View on GitHubSave

Install

$ npx -y skills add zhanghandong/rust-skills --skill domain-cli --agent claude-code

Installs into .claude/skills of the current project.

Files

CLI Domain

Layer 3: Domain Constraints

Domain Constraints → Design Implications

Domain RuleDesign ConstraintRust Implication
User ergonomicsClear help, errorsclap derive macros
Config precedenceCLI > env > fileLayered config loading
Exit codesNon-zero on errorProper Result handling
Stdout/stderrData vs errorseprintln! for errors
InterruptibleHandle Ctrl+CSignal handling

Critical Constraints

User Communication

RULE: Errors to stderr, data to stdout
WHY: Pipeable output, scriptability
RUST: eprintln! for errors, println! for data

Configuration Priority

RULE: CLI args > env vars > config file > defaults
WHY: User expectation, override capability
RUST: Layered config with clap + figment/config

Exit Codes

RULE: Return non-zero on any error
WHY: Script integration, automation
RUST: main() -> Result<(), Error> or explicit exit()

Trace Down ↓

From constraints to design (Layer 2):

"Need argument parsing"
    ↓ m05-type-driven: Derive structs for args
    ↓ clap: #[derive(Parser)]

"Need config layering"
    ↓ m09-domain: Config as domain object
    ↓ figment/config: Layer sources

"Need progress display"
    ↓ m12-lifecycle: Progress bar as RAII
    ↓ indicatif: ProgressBar

Key Crates

PurposeCrate
Argument parsingclap
Interactive promptsdialoguer
Progress barsindicatif
Colored outputcolored
Terminal UIratatui
Terminal controlcrossterm
Console utilitiesconsole

Design Patterns

PatternPurposeImplementation
Args structType-safe args#[derive(Parser)]
SubcommandsCommand hierarchy#[derive(Subcommand)]
Config layersOverride precedenceCLI > env > file
ProgressUser feedbackProgressBar::new(len)

Code Pattern: CLI Structure

use clap::{Parser, Subcommand};

#[derive(Parser)]
#[command(name = "myapp", about = "My CLI tool")]
struct Cli {
    /// Enable verbose output
    #[arg(short, long)]
    verbose: bool,

    #[command(subcommand)]
    command: Commands,
}

#[derive(Subcommand)]
enum Commands {
    /// Initialize a new project
    Init { name: String },
    /// Run the application
    Run {
        #[arg(short, long)]
        port: Option<u16>,
    },
}

fn main() -> anyhow::Result<()> {
    let cli = Cli::parse();
    match cli.command {
        Commands::Init { name } => init_project(&name)?,
        Commands::Run { port } => run_server(port.unwrap_or(8080))?,
    }
    Ok(())
}

Common Mistakes

MistakeDomain ViolationFix
Errors to stdoutBreaks pipingeprintln!
No help textPoor UX#[arg(help = "...")]
Panic on errorBad exit codeResult + proper handling
No progress for long opsUser uncertaintyindicatif

Trace to Layer 1

ConstraintLayer 2 PatternLayer 1 Implementation
Type-safe argsDerive macrosclap Parser
Error handlingResult propagationanyhow + exit codes
User feedbackProgress RAIIindicatif ProgressBar
Config precedenceBuilder patternLayered sources

Related Skills

WhenSee
Error handlingm06-error-handling
Type-driven argsm05-type-driven
Progress lifecyclem12-lifecycle
Async CLIm07-concurrency
SKILL.md on GitHub

Sponsors

SnugThe clipboard manager you and your agent can use, safelyAgent CaffeineClose your lid, come back to finished workWaxBlock anything with supervision, without erasing your iPhoneOpen StepsSponsoredFree and open-source skills that make AI coding agents easier to understand, verify, and control.

Details

Repository
github.com/zhanghandong/rust-skills
Categories
Rust, CLI & Terminal

More from zhanghandong/rust-skills

All 34
  • Rust Symbol Analyzer702
  • Rust Call Graph699
  • Rust Router698
  • Rust Learner688
  • Rust Deps Visualizer684
  • Rust Skill Creator670
  • Domain Web648
  • Meta Cognition Parallel635
  • Rust Daily635
  • Domain Embedded625
  • Domain Cloud Native596
  • Domain Fintech581
  • Domain Ml573
  • Domain Iot568
  • M15 Anti Pattern5.6K
  • Coding Guidelines1.2K
  • M10 Performance895
  • M07 Concurrency844
  • M06 Error Handling827
  • Rust Refactor Helper821
  • M01 Ownership809
  • M04 Zero Cost789
  • M05 Type Driven786
  • M02 Resource783

Recommended

More Rust
1zhanghandong avatardomain-webzhanghandong/rust-skillsdomain web648installs
2zhanghandong avatarmeta-cognition-parallelzhanghandong/rust-skillsmeta cognition parallel635installs
3zhanghandong avatardomain-embeddedzhanghandong/rust-skillsdomain embedded625installs
4zhanghandong avatardomain-cloud-nativezhanghandong/rust-skillsdomain cloud native596installs
5zhanghandong avatardomain-fintechzhanghandong/rust-skillsdomain fintech581installs
6zhanghandong avatardomain-mlzhanghandong/rust-skillsdomain ml573installs