Native Editor Conversation
ClaudusBridge turns the Unreal Editor itself into the chat interface. You don't need an external IDE or terminal to talk to a provider — the engine ships a dedicated Claudus dashboard tab plus matching Output Log commands. Provider replies (Claude, ChatGPT, Gemini), external execution-agent activity (Claude Code, Codex, Cursor, Windsurf, Claude Desktop), and tool-result evidence all share one conversation.
This guide covers:
- The dashboard tab and what it shows
- The native Output Log commands (
/login,/provider,/model,/access,/logs, …) - How providers and external execution agents share the same transcript
- The six native log categories that route every message through Unreal's own logging
The dashboard tab
Open Window → Claudus in the editor (also reachable by name through the engine's tab spawn menu). The panel contains:
- Transcript — color-coded entries by role: 🟦 Human (you), 🟪 Agent (connected external client), 🟩 Claudus (provider reply), ⚪ System (tool results, status changes, audit entries). Each entry shows the model, latency, and (when applicable) input/output token counts.
- Input box — type natural-language messages directly to the active provider. Press Enter to send. Multi-line is supported via Shift+Enter.
- Quick actions — login, provider/model picker, access-mode toggle, clear transcript, refresh provider runtime state.
- Activity strip — current action-queue counts (pending / claimed / completed), MCP tool count, runtime port, last provider latency.
The transcript persists across editor restarts (capped at the configured MaxChatLogEntries, 256 by default). MCP tools claudus_get_log, claudus_get_event_delta, claudus_cognitive_state expose the same data programmatically.
Native Output Log commands
Every dashboard action is also reachable from Unreal's own console (the Output Log's command bar). The engine's console executor recognises a Claudus namespace; any input prefixed with Claudus: is routed through Claudus. There's also a short cb: alias that does the same thing for terminal-style use.
Plain text without a leading slash is sent as natural-language input to the active provider — exactly like typing in the dashboard:
Claudus: hola, dime que ves en la escena actual
Slash commands handle setup, login, model selection, and access control:
Help and status
| Command | What it does |
|---|---|
/help | Show the full command list inline |
/status | Show provider, model, access mode, token totals, action queue counts, MCP tool count, runtime port |
/actions | Show the current action queue counters (pending / claimed / completed) |
/refresh | Re-check the provider runtime / auth state |
/clear | Clear the visible Claudus transcript (provider memory and saved Claudus knowledge are NOT deleted) |
Provider lifecycle
| Command | What it does |
|---|---|
/runtime start | Boot the standalone Claudus provider runtime if it isn't online yet |
/login chatgpt | Login or re-login the ChatGPT account through the local runtime |
/login claude | Login or re-login the Claude account (Claude.ai OAuth, not the raw Anthropic API key path) |
/login gemini | Login or re-login Gemini Code Assist |
/logout chatgpt | /logout claude | /logout gemini | Revoke the session for that provider |
The login flow happens entirely through the local provider runtime — no browser pop-ups from the editor itself, no manual token paste. Once the runtime authenticates, the editor's dispatch.json sentinel updates and the dashboard reflects the new auth state.
Provider / model picker
/provider chooses the account route only. /model chooses the exact model. Use them in either order.
| Provider | Models |
|---|---|
/provider chatgpt | /model gpt-5.5, /model gpt-5.4, /model gpt-5.4-mini, /model gpt-5.3-codex |
/provider claude | /model claude-opus-4.7-1m (alias opus 4.7 m), /model claude-opus-4.7, /model claude-opus-4.6-1m, /model claude-opus-4.6, /model claude-sonnet-4.6-1m, /model claude-sonnet-4.6, /model claude-haiku-4.5 |
/provider gemini | /model gemini-3-pro, /model gemini-3.1-pro, /model gemini-2.5-pro, /model gemini-3-flash, /model gemini-2.5-flash |
Short aliases also work (opus m, opus, sonnet m, sonnet, haiku, mini, codex, flash), but the UI favors the exact route strings for clarity.
After selecting, run /connect to activate the route. /models prints the full catalog with aliases.
Access mode
| Command | What it does |
|---|---|
/access full | Enable full-access action requests (default for professional workstations) |
/access limited | Return to limited-access mode — allowlisted read-only native tools auto-run; mutating tools wait |
Mode transitions are audited in the transcript as system entries with timestamp, requester, reason, and old/new mode. See Access mode controls below.
Log filtering
The engine's Output Log can be very chatty. Two commands flip the native category filter to make Claudus easier to read:
| Command | What it does |
|---|---|
/logs claudus | Filter the Output Log to the six Claudus categories plus warnings/errors. Quiet conversation mode. |
/logs all | Restore all engine log categories. |
Posting an agent note inline
| Command | What it does |
|---|---|
/note <agent>: <message> | Post a note as if it came from a connected execution agent named <agent>. Same effect as calling claudus_agent_note from MCP. Aliases: agent-note, agentnote. |
Example: /note Codex: starting full build, ~3 min estimate
Six native log categories
Every chat entry routes to a dedicated Unreal log category. That means everything you see in the dashboard is also available in the engine's normal Output Log, searchable with the standard filter, and capturable by any tool that hooks UE logging:
| Category | Carries |
|---|---|
LogClaudusChatGPT | Replies from the active ChatGPT model |
LogClaudusClaude | Replies from the active Claude model |
LogClaudusGemini | Replies from the active Gemini model |
LogClaudusUser | Your own messages (Human role) |
LogClaudusAgent | Messages from connected external execution agents (Claude Code, Codex CLI, Cursor, Windsurf, …) |
LogClaudusSystem | Tool-result entries, provider-connect status, auto-continuation markers, audit entries |
Because these are real UE log categories, you can:
- Use the Output Log Filters dropdown to show only the providers you care about
- Tail
Saved/Logs/<Project>.logdirectly from a terminal for a transcript export - Search across sessions with normal log-grep workflows
- Set per-category verbosity from
DefaultEngine.iniif you want to suppress one provider
The categories are defined statically in C++ and ship enabled at Log verbosity. No configuration needed.
Multi-AI shared transcript
The conversation is not locked to one AI at a time. The full architecture is:
- Providers (Claude / ChatGPT / Gemini) connect through the local Claudus runtime and answer natural-language messages. Their replies land in
LogClaudusClaude/LogClaudusChatGPT/LogClaudusGemini. - External execution agents (Claude Code, Codex CLI, Cursor, Windsurf, Claude Desktop, any MCP-compatible client) connect over HTTP to the ClaudusBridge MCP server (port 3000 by default). They see the same transcript and can post into it via
claudus_agent_note. - When a provider needs real OS / filesystem / shell / browser / source-control / build / out-of-root work done, it emits a
[Claudus Action Request]block. ClaudusBridge queues the block as an action. - Execution agents claim and run the action via
claudus_get_action_requests+claudus_provide_action_result. The result lands back in the transcript as evidence with timestamps, output paths, and a compact summary. - The provider reads the action result on its next turn and continues the conversation.
Why this matters
Providers are great at reasoning and planning but can't reach outside the chat. External execution agents are great at running real work but can't reason as deeply. The shared transcript lets each play to its strengths inside one conversation — the user doesn't have to copy/paste between an LLM chat and a coding agent.
Visibility for execution agents
Connected agents can mirror their own progress into the dashboard so the user sees what they're doing:
# From the Python helper
cb note "Codex: starting full build, ~3 min estimate"
# Or as an MCP tool call
{ "name": "claudus_agent_note",
"arguments": { "from": "Codex", "text": "Starting full build, ~3 min estimate" } }
The note lands in LogClaudusAgent and the dashboard with the sender's name color-coded.
Access mode controls
ClaudusBridge starts in Full Access by default for professional workstation workflows. In Full Access, all native tools can run and provider-authored action requests auto-execute through the Claudus Native Tool Executor without human approval per action.
Limited Access narrows the auto-run allowlist. The following read-only native tools still auto-run in limited mode:
ai_brain_map,claudus_cognitive_state,get_project_info,find_assets,get_asset_details,list_asset_types,get_current_map,get_editor_state,get_viewport_info,pixel_streaming_status,ai_perceive,ai_vision_stream,describe_view,get_actors_in_view,read_blueprint,preview_texture_asset,open_asset_editor,open_blueprint_editor
Everything else (creates, writes, deletes, builds, rebuilds, plugin-file edits, gallery image generation, full ai_create paths) waits for Full Access.
Switching modes
Three equivalent paths:
/access full ← Output Log command
/access limited ← Output Log command
claudus_set_access_mode(mode, confirm, agent_name, reason)
claudus_press_access_button(confirm, agent_name, reason) ← compatibility helper
Every transition gets audited in the transcript:
[system:access-changed] 2026-05-15T07:42:03Z
changed_by: Codex
reason: "Running scoped rebuild for newly authored tool"
mode: Limited Access → Full Access
Repeated same-mode requests are still recorded with last_request_by, last_request_reason, last_requested_mode even when changed=false. Provider chat prose alone cannot bypass executor evidence — saying "I'll switch to full access" is not the same as the action actually firing.
As of v0.6.4 every emitted label uses the English strings "Full Access" / "Limited Access" — raw tool-response JSON, audit-note entries in the chat log, dashboard tooltip, button labels, and embedded markdown generators all match. The input parser still accepts the lowercase Spanish aliases acceso completo / acceso limitado (and completo / limitado) for backward compatibility with older sessions, alongside the new full access / limited access aliases. If you are reading chat logs persisted before v0.6.4, you may still see the legacy Spanish strings in those archived entries.
Where to go next
- The cb Helper CLI — Plain-text terminal bridge for the same conversation surface (
cb chat,cb note,cb access, …) - Multi-Agent Coordination — The real-time event bus that providers and execution agents use to notify each other beyond chat
- Multi-Agent Workflows — Durable workflow records for multi-step collaborations across the shared transcript
- Image Gallery & Native Texture Vision — Generating images as native UE Texture2D assets and reading textures back without an external vision agent
- Cognition Tier overview — Where the conversation surfaces fit in the broader 0.6.x picture