Skip to content

Commit 78989ce

Browse files
committed
feat(cli): update default host for claw command and add warning
Changed the default host for the claw command from "0.0.0.0" to "127.0.0.1" to improve security by binding to loopback only. Added a warning for users opting to expose the dashboard on a LAN without built-in authentication. Updated version to 1.6.20 in pyproject.toml and uv.lock.
1 parent c94d405 commit 78989ce

3 files changed

Lines changed: 22 additions & 4 deletions

File tree

src/praisonai-agents/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "praisonaiagents"
7-
version = "1.6.19"
7+
version = "1.6.20"
88
description = "Praison AI agents for completing complex tasks with Self Reflection Agents"
99
readme = "README.md"
1010
requires-python = ">=3.10"

src/praisonai-agents/uv.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/praisonai/praisonai/cli/commands/claw.py

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,14 @@ def _ensure_default_app() -> Path:
4141
def claw(
4242
ctx: typer.Context,
4343
port: int = typer.Option(8082, "--port", "-p", help="Port to run dashboard on"),
44-
host: str = typer.Option("0.0.0.0", "--host", help="Host to bind to"),
44+
host: str = typer.Option(
45+
"127.0.0.1",
46+
"--host",
47+
help=(
48+
"Host to bind to (default: 127.0.0.1 — loopback only). "
49+
"Pass 0.0.0.0 to expose on the LAN; see docs for auth setup."
50+
),
51+
),
4552
app_file: Optional[str] = typer.Option(
4653
None, "--app", "-a", help="Custom app.py file (default: ~/.praisonai/claw/app.py)"
4754
),
@@ -88,7 +95,18 @@ def claw(
8895
cmd.append("--reload")
8996

9097
print(f"\n🦞 PraisonAI Dashboard starting at http://{host}:{port}")
91-
print(f" App: {resolved}\n")
98+
print(f" App: {resolved}")
99+
# Warn if the user has opted into LAN exposure. The dashboard has no
100+
# built-in auth at the URL layer (see AuthConfig in praisonaiui), so
101+
# binding to a non-loopback address without extra guarding is risky.
102+
if host not in ("127.0.0.1", "localhost", "::1"):
103+
print(
104+
"\n\033[93m⚠ WARNING:\033[0m "
105+
f"Dashboard is bound to {host} — reachable from other hosts on your network.\n"
106+
" The dashboard has no URL-level auth. For multi-user / remote use,\n"
107+
" put it behind a reverse proxy or set praisonaiui AUTH_ENFORCE=true."
108+
)
109+
print("")
92110

93111
try:
94112
subprocess.run(cmd, check=True)

0 commit comments

Comments
 (0)