Console & Controls
Real-time tool output, execution controls, and engagement scheduling.
Tool Sidebar
The left sidebar lists all registered tools with real-time status indicators:
- ● Running — tool is actively executing
- ✓ Complete — tool finished successfully
- ✗ Failed — tool exited with an error
- ◷ Queued — tool is in the execution queue, waiting for its turn
- ⏸ Paused — tool was paused and can be resumed
- ○ Not Started — tool has not been launched yet
Click any tool to view its console output. The sidebar updates in real-time via Socket.IO — no page refresh needed.
For scope-qualified tools (e.g., ss3:external), the sidebar shows the scope label and indicates whether the run is in-scope or OOS (out-of-scope).
Live Console
Real-time stdout/stderr streaming from the selected tool via Socket.IO. Each tool maintains a 5,000-line ring buffer — older lines are discarded as new ones arrive.
Auto-scroll keeps the view pinned to the bottom while output streams. Toggle auto-scroll off to inspect earlier output without losing your place — the view stays where you scrolled. Toggle it back on to jump to the latest output.
For completed or failed tools, the console loads the full scan.log from disk rather than the in-memory buffer, so output is available even after Crucible restarts.
Interactive Prompts
Some tools require user input during execution (e.g., sudo password, confirmation to proceed, target selection). When a tool emits a prompt token (__CRUCIBLE_PROMPT__), a modal dialog appears with the prompt text.
Type your response and click Send — the response is written to the tool's stdin. All connected clients in the same project room see the prompt simultaneously; the first response wins and is sent to the tool.
Prompts are also logged for audit purposes.
Execution Controls
Control tool execution from the console toolbar:
checkpoint.json recording its current state and exits. The tool's status changes to 'paused'. Resume later from where it left off. Important: Crucible sends the pause signal but never kills the tool process directly — the tool itself checkpoints and exits.--resume flag. The tool reads its checkpoint.json and continues execution from the last saved state — phases already completed are skipped.Engagement Scheduling
Schedule an engagement to auto-start at a future date and time. At the scheduled time, all enabled tools launch through the queue manager, respecting parallelism rules.
Use this to:
- Begin testing at a precise time agreed upon with the client
- Start scans overnight when network load is lower
- Coordinate start times across multiple engagements
You can view, edit, or cancel scheduled starts from the console. Multiple schedules can be set for different dates (e.g., Phase 1 on Monday, Phase 2 on Wednesday).
Engagement Hours
Set an allowed testing window. Tools automatically pause when the window closes and resume when it reopens. Useful for engagements with restricted testing hours.
| Field | Required | Description |
|---|---|---|
| Enabled | No | Toggle engagement hours enforcement on/off. |
| Start Time | No | Daily testing start time. Default: 08:00. Tools will not launch or resume before this time. |
| End Time | No | Daily testing end time. Default: 18:00. Running tools will be paused when this time is reached. |
| Timezone | No | Timezone for the hours window. Default: US/Central. Use IANA timezone names (e.g., US/Eastern, Europe/London, Asia/Tokyo). |
| Days | No | Weekdays when testing is allowed. Default: Monday–Friday (checkboxes). Uncheck Saturday/Sunday to prevent weekend testing. |
Queue Management
View and manage the execution queue from the console:
- Queue view — Shows all queued tools with their priority, queued timestamp, and scope.
- Remove from queue — Remove a specific tool from the queue (it won't launch).
- Clear queue — Remove all queued tools at once.
- Queue persistence — The queue is saved to disk (
execute_queue.json) on every change, so it survives Crucible restarts. On startup, Crucible loads the persisted queue and resumes processing. - Retry logic — When queued tools can't launch (RAM pressure, parallelism block), the queue retries every 30 seconds.