AgentSkillsCN

web-console

内置Web界面,无需外部服务即可与Claude进行通信。在搭建或配置Web控制台频道,或排查基于浏览器的访问问题时使用此功能。

SKILL.md
--- frontmatter
name: web-console
description: Built-in web interface for communicating with Claude without external services. Use when setting up or configuring the web console channel, or troubleshooting browser-based access.

Web Console (C4 Built-in Channel)

Default communication channel - works without any external service.

Purpose

Allows users to communicate with Claude even without Telegram/Lark/Discord. This is the baseline, always-available interface.

Quick Start

bash
# Install dependencies
cd ~/zylos/.claude/skills/web-console
npm install

# Start server (default port 3456)
node scripts/server.js

# Or with PM2
pm2 start scripts/server.js --name web-console

Access

Local only: http://127.0.0.1:3456

Server binds to 127.0.0.1 by default for security.

Architecture

code
Browser ──► Web Console Server ──► C4 Bridge ──► Claude
                  │
                  ▼
               SQLite (c4.db)

API Endpoints

EndpointMethodDescription
/api/statusGETGet Claude's current status
/api/conversations/recentGETGet recent conversation history
/api/sendPOSTSend message to Claude
/api/poll?since_id=NGETPoll for new messages
/api/healthGETServer health check

Files

code
~/zylos/.claude/skills/web-console/
├── SKILL.md
├── package.json
├── scripts/
│   ├── server.js      # Express API server
│   └── send.js        # CLI message sender
└── public/
    ├── index.html     # Chat UI
    ├── styles.css     # Styling
    └── app.js         # Frontend logic

Environment Variables

VariableDefaultDescription
WEB_CONSOLE_PORT3456Server port
WEB_CONSOLE_PASSWORD(empty)Set to enable password protection
WEB_CONSOLE_BIND127.0.0.1Bind address
ZYLOS_DIR~/zylosData directory

Authentication

By default, no password is required (suitable for local access).

To enable password protection (recommended when exposing externally):

  1. Set WEB_CONSOLE_PASSWORD in ~/zylos/.env
  2. Restart the web-console service

Features

  • Real-time status indicator (busy/idle/offline)
  • Message polling every 2 seconds
  • Auto-resizing input
  • Mobile-friendly responsive design
  • Dark theme