Skip to content

v0.1.47 - CLI Output Stream Separation (2025-12-14)

What Changed?

This release separates CLI output streams for better data pipeline compatibility. Verbose and diagnostic messages now go to stderr, while actual data output goes to stdout. This enables seamless piping to other tools and easier log redirection without polluting data streams.


What's New

Main Change: Stdout/Stderr Stream Separation

What it does: The CLI now properly separates diagnostic output (verbose messages, errors, warnings) to stderr and actual data output (responses, events, version info) to stdout. This makes the CLI composable with standard Unix tools and data pipelines.

How to use it:

Filter out verbose output while keeping data:

kazunoko read 10 -v 2>/dev/null | jq .

Save verbose logs while piping data:

kazunoko generate random --count 100 -v 2>debug.log | python process.py

Redirect errors to a file:

kazunoko read 10 -v 2>errors.log

Benefits:

  • Data pipelines work without noise from verbose messages
  • Diagnostic information can be logged separately
  • Better compatibility with scripts and automation tools
  • Standard Unix tool behavior (stdout for data, stderr for diagnostics)

Installation

Quick Start

# Get the release
git checkout vX.Y.Z

# Setup
task env:setup

# Run CLI
uv run kazunoko --help

What's Different from the Last Version?

✅ Added

  • Separate Console instances for stdout and stderr
  • Better support for Unix pipes and shell redirection

🔧 Changed

  • All verbose/diagnostic output now goes to stderr
  • All data output (responses, events) now goes to stdout
  • Error messages and warnings now go to stderr
  • All CLI commands now properly separate streams: query, read, measure, status, usage, generate, threshold, version, reset

🐛 Fixed

  • Data pipelines no longer polluted with diagnostic messages
  • Scripts can now reliably use stdout for data without filtering noise

Is It Safe to Upgrade?

Backward Compatible: Yes

  • Existing functionality is unchanged
  • Commands and options work exactly as before
  • Only the output stream destinations have changed (stdout vs stderr)
  • Scripts using stdout will continue to work
  • Verbose output now properly isolated to stderr for cleaner automation

Tests Passed

  • ✅ Builds without errors
  • ✅ Ruff linting passes
  • ✅ Stdout/stderr separation verified with shell redirection
  • ✅ Pipe operations work correctly (jq, Python scripts)
  • ✅ All CLI commands tested with verbose flag

Release Details

  • Date: 2025-12-14
  • Version: v0.1.47
  • Files Changed: 1
  • Commits: c9c9f3f

Next Steps

  • Monitor user feedback on stream separation behavior
  • Consider additional output format improvements
  • Evaluate performance implications of separate console instances