Fulcra Control Panel
This skill provides the automated setup for a local-only administration interface. It is purposefully isolated from the fulcra-dashboard visualizer for strict security separation, ensuring that read/write liabilities (such as agent chat and file exploration) cannot be accidentally published to the web.
Strictly Local First
CRITICAL SECURITY DECREE: This control panel must NEVER be published to the public internet or served via Surge, GitHub Pages, or Vercel. It is a strictly local administrative tool that binds to localhost and requires a persistent Python backend to function. It has access to sensitive files and has the power to send commands to the agent.
Usage
When a user requests to "set up the control panel" or "enable the chat envoy" for their Fulcra setup, execute the scaffolding script.
# Run the setup script to scaffold the Control Panel
./scripts/setup-control-panel.sh <target-directory>
If no <target-directory> is provided, it defaults to creating a fulcra-control-panel folder in the current working directory.
Workflow
- Scaffold: The script copies a clean, styled Alpine.js administration panel into the target directory, alongside the robust Python
server.pybackend. - Theming:
- Discover Vibe: Ask the user what kind of administrative interface they prefer (e.g., a high-tech starship bridge, a retro command-line terminal, a cozy oak-paneled study).
- Original Art: Generate one piece of highly creative thematic art using the
image_generatetool and use it as the header hero image. - CSS and HTML Adaptation: Update
theme.cssandindex.htmlto reflect the chosen theme. Adjust colors, labels (e.g., rename "Relay" and "File Store" if appropriate), and fonts. Maintain the Bento Grid layout to ensure responsive structural integrity.
- Run the Backend:
- Start the local Python server to boot the control plane:
cd <target-directory> python3 server.py 8080 > dev.log 2>&1 & - Provide the user with the
http://localhost:8080link.
- Start the local Python server to boot the control plane:
- Connect the Chat Envoy (Agent Loop):
- The Control Panel has a built-in Chat Envoy that relies on you (the agent) checking for new messages.
- The Python server exposes
GET /api/chat/unreadwhich returns the latest user commands from the chat window. - Set up a background
bashscript using theexectool (or propose an OpenClaw nativecronheartbeat based on the user's token preference) that loops and checkshttp://localhost:8080/api/chat/unread. - When new messages appear in the JSON payload, the script should invoke OpenClaw via the CLI (
openclaw agent --to main --message "ENVOY MESSAGE: <text>") to trigger your response, which you will then write back to thechat.jsonlog or via standard output routing.