cli-mock-stdin

Create mock stdin utilities for interactive CLI testing.

509 stars

Best use case

cli-mock-stdin is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Create mock stdin utilities for interactive CLI testing.

Teams using cli-mock-stdin should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/cli-mock-stdin/SKILL.md --create-dirs "https://raw.githubusercontent.com/a5c-ai/babysitter/main/library/specializations/cli-mcp-development/skills/cli-mock-stdin/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/cli-mock-stdin/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How cli-mock-stdin Compares

Feature / Agentcli-mock-stdinStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Create mock stdin utilities for interactive CLI testing.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# CLI Mock Stdin

Create mock stdin utilities for testing.

## Generated Patterns

```typescript
import { Readable } from 'stream';

export function mockStdin(inputs: string[]): Readable {
  let index = 0;
  return new Readable({
    read() {
      if (index < inputs.length) {
        setTimeout(() => {
          this.push(inputs[index++] + '\n');
        }, 10);
      } else {
        this.push(null);
      }
    },
  });
}

export async function runWithStdin(
  cmd: () => Promise<void>,
  inputs: string[]
): Promise<void> {
  const originalStdin = process.stdin;
  Object.defineProperty(process, 'stdin', { value: mockStdin(inputs) });
  try {
    await cmd();
  } finally {
    Object.defineProperty(process, 'stdin', { value: originalStdin });
  }
}
```

## Target Processes

- cli-unit-integration-testing
- interactive-prompt-system

Related Skills