Completed
on 4 Jan 2026, 1:45 am

Output

Dashboard Console Prompt Wrapper

How It Works

When you send a prompt from the dashboard console, konui wraps your message with instructions before forwarding to konsole/Claude. This wrapper tells Claude to:

  1. Identify who is making the request
  2. Create a kontask with the response (for the visual card)
  3. Use proper HTML formatting from CLAUDE.md templates
  4. Include a requestId for session recovery

The Prompt Template

Location: konui/src/router.ts:1317

DASHBOARD CONSOLE REQUEST from user "${requestingUser}":

${userPrompt}${imageInstruction}

---
CRITICAL OUTPUT INSTRUCTIONS - You MUST create a kontask with your response:

Call konui_create_task with EXACTLY this structure:
{
  "type": "general",
  "title": "<short summary of request>",
  "description": "<one-line description>",
  "targetUser": "${requestingUser}",
  "scope": "<product|vibetools>",
  "tags": ["<relevant>", "<tags>"],
  "context": {
    "output": "<your HTML response here>",
    "requestedAt": "<ISO timestamp>",
    "requestId": "${requestId}"
  }
}

IMPORTANT:
- targetUser MUST be at the ROOT level, not inside context
- requestId in context is REQUIRED for recovery
- scope: "product" for Konnect data, "vibetools" for dev tooling
- Put your full HTML response in context.output
- Keep console output minimal - the kontask card IS the deliverable

Image Attachment Handling

If images are attached, additional instructions are injected:

// Single image:
[ATTACHED IMAGE: /tmp/upload-abc123.png]
Use the Read tool to view this image before responding.

// Multiple images:
[ATTACHED IMAGES (3):
  1. /tmp/upload-abc.png
  2. /tmp/upload-def.png
  3. /tmp/upload-ghi.png
]
Use the Read tool to view these images before responding.

Variables Injected

Variable Source Example
requestingUserAuth token"johnathon"
userPromptRequest body"Show me listings"
requestIdGenerated UUID"31759a84-d3d2..."
imagePathsUploaded files["/tmp/img.png"]

Why This Design?

  • Kontask output — Forces Claude to create rich visual cards instead of plain text
  • requestId — Enables session recovery if browser disconnects
  • targetUser — Ensures kontasks appear in the right user's view
  • Minimal console output — The kontask card is the main deliverable, not chat text

What's Next?

Choose an action:

Quick Actions

Original Request

No layout configured

Details

Type General
Status Completed
Scope vibetools
Tags consolepromptsarchitecture
Created 4 Jan 2026, 1:45 am
Updated 4 Jan 2026, 1:45 am
Created By claude

Raw Data

{
  "id": "3a0edf95-028a-4aac-a368-64fda5f716de",
  "type": "general",
  "status": "completed",
  "title": "Dashboard Console System Prompt",
  "description": "The prompt wrapper that konui injects around user messages sent to Claude",
  "context": {
    "output": "<div style=\"background:#1e1e1e;color:#e0e0e0;padding:20px;border-radius:8px;font-family:sans-serif;\">\n<h2 style=\"color:#fff;margin:0 0 16px 0;\">Dashboard Console Prompt Wrapper</h2>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;margin-bottom:16px;\">\n<h3 style=\"color:#61afef;margin:0 0 12px 0;\">How It Works</h3>\n<p style=\"margin:0;line-height:1.6;\">When you send a prompt from the dashboard console, konui wraps your message with instructions before forwarding to konsole/Claude. This wrapper tells Claude to:</p>\n<ol style=\"margin:12px 0 0 0;padding-left:20px;line-height:1.8;\">\n<li>Identify who is making the request</li>\n<li>Create a kontask with the response (for the visual card)</li>\n<li>Use proper HTML formatting from CLAUDE.md templates</li>\n<li>Include a requestId for session recovery</li>\n</ol>\n</div>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;margin-bottom:16px;\">\n<h3 style=\"color:#98c379;margin:0 0 12px 0;\">The Prompt Template</h3>\n<p style=\"margin:0 0 12px 0;color:#7f848e;\">Location: <code style=\"background:#1e1e1e;padding:2px 6px;border-radius:3px;\">konui/src/router.ts:1317</code></p>\n<pre style=\"background:#1e1e1e;padding:16px;border-radius:4px;overflow-x:auto;font-family:'Consolas','Monaco',monospace;font-size:0.85rem;line-height:1.6;\"><span style=\"color:#c678dd;\">DASHBOARD CONSOLE REQUEST</span> from user <span style=\"color:#98c379;\">\"${requestingUser}\"</span>:\n\n<span style=\"color:#e5c07b;\">${userPrompt}</span><span style=\"color:#7f848e;\">${imageInstruction}</span>\n\n---\n<span style=\"color:#ef4444;\">CRITICAL OUTPUT INSTRUCTIONS</span> - You MUST create a kontask with your response:\n\nCall <span style=\"color:#61afef;\">konui_create_task</span> with EXACTLY this structure:\n{\n  <span style=\"color:#98c379;\">\"type\"</span>: <span style=\"color:#98c379;\">\"general\"</span>,\n  <span style=\"color:#98c379;\">\"title\"</span>: <span style=\"color:#7f848e;\">\"&lt;short summary of request&gt;\"</span>,\n  <span style=\"color:#98c379;\">\"description\"</span>: <span style=\"color:#7f848e;\">\"&lt;one-line description&gt;\"</span>,\n  <span style=\"color:#98c379;\">\"targetUser\"</span>: <span style=\"color:#98c379;\">\"${requestingUser}\"</span>,\n  <span style=\"color:#98c379;\">\"scope\"</span>: <span style=\"color:#7f848e;\">\"&lt;product|vibetools&gt;\"</span>,\n  <span style=\"color:#98c379;\">\"tags\"</span>: [<span style=\"color:#7f848e;\">\"&lt;relevant&gt;\"</span>, <span style=\"color:#7f848e;\">\"&lt;tags&gt;\"</span>],\n  <span style=\"color:#98c379;\">\"context\"</span>: {\n    <span style=\"color:#98c379;\">\"output\"</span>: <span style=\"color:#7f848e;\">\"&lt;your HTML response here&gt;\"</span>,\n    <span style=\"color:#98c379;\">\"requestedAt\"</span>: <span style=\"color:#7f848e;\">\"&lt;ISO timestamp&gt;\"</span>,\n    <span style=\"color:#98c379;\">\"requestId\"</span>: <span style=\"color:#98c379;\">\"${requestId}\"</span>\n  }\n}\n\n<span style=\"color:#f97316;\">IMPORTANT:</span>\n- targetUser MUST be at the ROOT level, not inside context\n- requestId in context is REQUIRED for recovery\n- scope: \"product\" for Konnect data, \"vibetools\" for dev tooling\n- Put your full HTML response in context.output\n- Keep console output minimal - the kontask card IS the deliverable</pre>\n</div>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;margin-bottom:16px;\">\n<h3 style=\"color:#e5c07b;margin:0 0 12px 0;\">Image Attachment Handling</h3>\n<p style=\"margin:0 0 12px 0;\">If images are attached, additional instructions are injected:</p>\n<pre style=\"background:#1e1e1e;padding:12px;border-radius:4px;overflow-x:auto;font-family:'Consolas','Monaco',monospace;font-size:0.85rem;\">\n<span style=\"color:#7f848e;\">// Single image:</span>\n[ATTACHED IMAGE: <span style=\"color:#98c379;\">/tmp/upload-abc123.png</span>]\nUse the Read tool to view this image before responding.\n\n<span style=\"color:#7f848e;\">// Multiple images:</span>\n[ATTACHED IMAGES (3):\n  1. <span style=\"color:#98c379;\">/tmp/upload-abc.png</span>\n  2. <span style=\"color:#98c379;\">/tmp/upload-def.png</span>\n  3. <span style=\"color:#98c379;\">/tmp/upload-ghi.png</span>\n]\nUse the Read tool to view these images before responding.</pre>\n</div>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;margin-bottom:16px;\">\n<h3 style=\"color:#c678dd;margin:0 0 12px 0;\">Variables Injected</h3>\n<table style=\"width:100%;border-collapse:collapse;\">\n<tr style=\"border-bottom:1px solid #444;\">\n<th style=\"text-align:left;padding:8px;color:#9ca3af;\">Variable</th>\n<th style=\"text-align:left;padding:8px;color:#9ca3af;\">Source</th>\n<th style=\"text-align:left;padding:8px;color:#9ca3af;\">Example</th>\n</tr>\n<tr><td style=\"padding:8px;\"><code style=\"color:#e5c07b;\">requestingUser</code></td><td style=\"padding:8px;\">Auth token</td><td style=\"padding:8px;color:#98c379;\">\"johnathon\"</td></tr>\n<tr><td style=\"padding:8px;\"><code style=\"color:#e5c07b;\">userPrompt</code></td><td style=\"padding:8px;\">Request body</td><td style=\"padding:8px;color:#98c379;\">\"Show me listings\"</td></tr>\n<tr><td style=\"padding:8px;\"><code style=\"color:#e5c07b;\">requestId</code></td><td style=\"padding:8px;\">Generated UUID</td><td style=\"padding:8px;color:#98c379;\">\"31759a84-d3d2...\"</td></tr>\n<tr><td style=\"padding:8px;\"><code style=\"color:#e5c07b;\">imagePaths</code></td><td style=\"padding:8px;\">Uploaded files</td><td style=\"padding:8px;color:#98c379;\">[\"/tmp/img.png\"]</td></tr>\n</table>\n</div>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;\">\n<h3 style=\"color:#56b6c2;margin:0 0 12px 0;\">Why This Design?</h3>\n<ul style=\"margin:0;padding-left:20px;line-height:1.8;\">\n<li><strong style=\"color:#fff;\">Kontask output</strong> — Forces Claude to create rich visual cards instead of plain text</li>\n<li><strong style=\"color:#fff;\">requestId</strong> — Enables session recovery if browser disconnects</li>\n<li><strong style=\"color:#fff;\">targetUser</strong> — Ensures kontasks appear in the right user's view</li>\n<li><strong style=\"color:#fff;\">Minimal console output</strong> — The kontask card is the main deliverable, not chat text</li>\n</ul>\n</div>\n\n<div style=\"background:#2d2d2d;padding:12px;border-radius:6px;margin-top:16px;\">\n<h4 style=\"margin:0 0 8px 0;color:#fff;\">What's Next?</h4>\n<p style=\"color:#9ca3af;margin:0;\">Choose an action:</p>\n</div>\n</div>",
    "requestedAt": "2026-01-04T01:45:00.000Z",
    "requestId": "31759a84-d3d2-419a-b1d1-f86703269181",
    "choices": [
      {
        "label": "View full router.ts",
        "value": "Show me the full /api/dashboard/stream handler in router.ts",
        "primary": true
      },
      {
        "label": "Edit the template",
        "value": "I want to modify the prompt template"
      },
      {
        "label": "See konsole side",
        "value": "Show me how konsole receives and processes this prompt"
      }
    ]
  },
  "createdBy": "claude",
  "createdAt": "2026-01-03T15:45:23.897Z",
  "updatedAt": "2026-01-03T15:45:24.057Z",
  "requestId": "31759a84-d3d2-419a-b1d1-f86703269181",
  "scope": "vibetools",
  "tags": [
    "console",
    "prompts",
    "architecture"
  ],
  "targetUser": "claude"
}
DashboardReportsKontasksSessionsTelemetryLogs + Go