Skip to content

Add a development-runner banner at startup - #5060

Merged
kompfner merged 3 commits into
mainfrom
pk/dev-runner-banner
Jul 17, 2026
Merged

kompfner merged 3 commits into
mainfrom
pk/dev-runner-banner

Conversation

@kompfner

Copy link
Copy Markdown
Contributor

Prints a bordered startup banner (on every run mode) marking pipecat.runner.run as a development tool — not a production server — and linking to the deployment docs for running bots locally and in production.

🤖 Generated with Claude Code

kompfner added 2 commits July 16, 2026 13:28
The runner (`pipecat.runner.run`) is a local development tool: its
endpoints are unauthenticated and a single request can create real
resources, so it's easy to mistake for a production server. Print a
bordered banner on startup — for every run mode — flagging it as
development-only and linking to the deployment docs for running bots
locally and in production.

Claude-Session: https://claude.ai/code/session_01X2vHQkcyXZs5ZDNTsZmiQf
@codecov

codecov Bot commented Jul 16, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 53.84615% with 6 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/pipecat/runner/run.py 53.84% 6 Missing ⚠️
Files with missing lines Coverage Δ
src/pipecat/runner/run.py 38.06% <53.84%> (-2.28%) ⬇️

... and 22 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@markbackman markbackman left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My main concern is that the callout box dominates the visual space, making it harder to find the bot ready / open information. Could we try a different approach:

  1. Running locally, just include a simple text description: Pipecat development runner: not for production use. or Pipecat development runner: for development purposes only?

Pipecat development runner: not for production use.

🚀 Bot ready!
   → Open: http://localhost:7860
   → Enabled transports: daily, webrtc, telephony, websocket
   → Allowed origins: all (no restriction)
  1. When not running on localhost or 0.0.0.0, etc then show a warning; something like:

⚠️  This runner is reachable beyond localhost and its endpoints are
    unauthenticated. For more information, see:
    https://docs.pipecat.ai/pipecat/deployment/self-hosting

🚀 Bot ready!
   → Open: http://0.0.0.0:7860
   ...

This might balance out the two options. Importantly, this helps the dominate use case remain usable.

WDYT?

@filipi87 filipi87 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 for Mark's suggestions above.

But I think it could still be worth keeping the warning symbol, even in this case.

⚠️ Pipecat development runner: not for production use.

🚀 Bot ready!
   → Open: http://localhost:7860
   → Enabled transports: daily, webrtc, telephony, websocket
   → Allowed origins: all (no restriction)

@kompfner

kompfner commented Jul 17, 2026 •

Copy link
Copy Markdown
Contributor Author

If we're concerned that folks are inadvertently running in prod, I think it'd helpful to provide some link to learn more. I also find it helpful to make it clear what's actually running when you run your bot.py command.

But I see your point about not visually "taking over" the subsequent connection status messages.

Counter-proposal: I'm going to try to make the banner dimmer but still prominent. I feel like I've seen that precedent elsewhere, though I'm not sure exactly where. Screenshot incoming.

@kompfner

Copy link
Copy Markdown
Contributor Author

Messed around with some different colors; I'm now choosing between the plain dim gray or the dim cyan.

Screenshot 2026-07-17 at 9 51 27 AM Screenshot 2026-07-17 at 9 48 28 AM

Render the startup banner dim cyan — only on an interactive terminal, so
escape codes never leak into captured output — via a _style_banner_line
helper, and prefix the notice with a ⚠️.

Claude-Session: https://claude.ai/code/session_01X2vHQkcyXZs5ZDNTsZmiQf
@kompfner
kompfner force-pushed the pk/dev-runner-banner branch from f5fb777 to 910e9f1 Compare July 17, 2026 13:57
@kompfner

Copy link
Copy Markdown
Contributor Author

Cyan looks best to me. Strikes a balance between subtle and noticeable; clearly describes the running process and supplies the necessary warning without distracting from the following log lines.

@filipi87 filipi87 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks great. 🚀

Image

@kompfner
kompfner merged commit b579c2d into main Jul 17, 2026
6 checks passed
@kompfner
kompfner deleted the pk/dev-runner-banner branch July 17, 2026 16:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants