feat: add --quiet flag for scriptable, low-noise runs#55
Merged
Conversation
0ceb8cf to
dc8a1e6
Compare
`bootcamp <repo-url> --quiet` (`-q`) suppresses the banner, run header,
detected-stack table, progress spinners, score summary, and file-tree
listing, emitting only the output directory path on stdout. This makes the
command compose cleanly in scripts and CI:
OUT=$(bootcamp https://github.com/owner/repo --quiet)
open "$OUT/BOOTCAMP.md"
Failures and warnings are still written to stderr so problems remain visible.
`--quiet` and `--verbose` are mutually exclusive and error out together.
Implementation:
- BootcampOptions.quiet; ProgressTracker gains a quiet mode (silent spinner
via ora isSilent, but fail/warn still print to stderr)
- main-command gates all decorative console output behind !quiet
- agent.ts "Using model"/tools banner and output-writer diagram messages
honor quiet too
Tests: 4 ProgressTracker unit tests (silence + stderr fail/warn), 1
main-command behavior test (banner suppressed, output dir printed), 2 E2E
tests (quiet stdout is just the path; --quiet --verbose rejected).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
dc8a1e6 to
a7d5e94
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a
--quiet/-qflag to the mainbootcamp <repo-url>command for scripting and CI. It suppresses all decorative output ā the ASCII banner, run header, detected-stack table, progress spinners, score summary, and the generated-files tree ā and prints only the output directory path on stdout.Failures and warnings are still written to stderr, so problems remain visible even when the chrome is gone.
--quietand--verboseare mutually exclusive (passing both exits 1 with a clear message).Why
The full run prints a lot of human-friendly chrome that's noise in a pipeline. Until now there was no way to get a clean, parseable result.
--quietmakes the command composable: capture the path, gate on exit code, and keep logs tidy.Implementation
BootcampOptions.quietplumbed from the CLI.ProgressTrackergains a quiet mode: the spinner is silenced via ora'sisSilent, butfail/warnfall back to direct stderr writes so failures are never swallowed.main-command.tsgates every decorativeconsole.logbehind!quiet, and prints the output dir as the final stdout line.agent.ts("Using model" / tools banner) andoutput-writer.ts(diagram render messages) honor quiet too, so stray lines don't leak.Testing
ProgressTrackerquiet mode: spinner stays silent for normal phases;fail/warnstill reach stderr; tool-call bookkeeping is preserved.quiet: truethe banner/stack/success-box/next-step are absent and the output directory is printed.--quiet --verboseexits 1 with "mutually exclusive".npm testā 1067 passing; typecheck + lint + build clean.š¤ Generated with Claude Code