Terminal User Interface

OpenSploit provides an interactive terminal interface for conducting security assessments. Launch it with opensploit or target a specific directory using opensploit /path/to/workspace.


Overview

The TUI is the primary interface for interacting with OpenSploit. It provides:

  • Conversation view - Chat with the AI agent about your targets
  • Tool execution display - Watch security tools run in real-time
  • Session management - Save and resume engagements
  • File browser - Reference and analyze files

Launching

Start OpenSploit in the current directory:

opensploit

Start in a specific workspace:

opensploit /path/to/pentest/engagement

Resume a previous session:

opensploit --continue
opensploit --session <session-id>

Start with a specific model:

opensploit --model ollama/llama3.1

File References

Reference files in your prompts using the @ symbol:

Analyze the vulnerabilities in @nmap_scan.xml

The @ symbol triggers fuzzy file search, allowing you to quickly find and include file contents in your conversation.

Tip

You can reference multiple files: Compare @scan1.xml and @scan2.xml


Shell Integration

Execute shell commands by prefixing with !:

!nmap -sV 10.10.10.1

The command output becomes part of the conversation, enabling follow-up analysis.


Commands

The TUI supports slash commands for common actions. Type / to see all available commands.

| Command | Description | Keybind | |---------|-------------|---------| | /connect | Configure provider API keys | — | | /compact | Compress session history | ctrl+x c | | /details | Toggle tool execution visibility | ctrl+x d | | /editor | Compose in external editor | ctrl+x e | | /exit | Close OpenSploit | ctrl+x q | | /export | Export conversation to Markdown | ctrl+x x | | /help | Display help dialog | ctrl+x h | | /init | Create/update AGENTS.md file | ctrl+x i | | /models | List available models | ctrl+x m | | /new | Start a new session | ctrl+x n | | /redo | Restore undone changes | ctrl+x r | | /sessions | Switch between sessions | ctrl+x l | | /share | Share current session | ctrl+x s | | /themes | List available themes | ctrl+x t | | /undo | Revert last message and file changes | ctrl+x u | | /unshare | Revoke session sharing | — |


Keybinds

Navigation

| Keybind | Action | |---------|--------| | / | Scroll through conversation | | Page Up / Page Down | Scroll by page | | Home / End | Jump to start/end |

Input

| Keybind | Action | |---------|--------| | Enter | Submit message | | Shift+Enter | New line | | Escape | Cancel current operation | | Tab | Autocomplete file reference |

Actions

| Keybind | Action | |---------|--------| | ctrl+x c | Compact/summarize session | | ctrl+x d | Toggle details | | ctrl+x e | Open external editor | | ctrl+x h | Show help | | ctrl+x l | List sessions | | ctrl+x m | Show models | | ctrl+x n | New session | | ctrl+x q | Quit | | ctrl+x r | Redo | | ctrl+x s | Share session | | ctrl+x t | Show themes | | ctrl+x u | Undo | | ctrl+x x | Export to Markdown |

Note

Keybinds can be customized in your config file. See Keybinds for details.


Tool Execution Display

When OpenSploit runs security tools, the TUI shows:

  • Tool name - Which tool is executing (nmap, sqlmap, etc.)
  • Parameters - Arguments passed to the tool
  • Progress - Real-time output from the tool
  • Results - Parsed findings and recommendations

Toggle detailed output with /details or ctrl+x d.


Configuration

Configure TUI behavior in opensploit.json:

{
  "tui": {
    "scroll_speed": 3,
    "scroll_acceleration": {
      "enabled": true
    }
  }
}

| Option | Description | Default | |--------|-------------|---------| | scroll_speed | Lines per scroll (1-3) | 2 | | scroll_acceleration.enabled | macOS-style smooth scrolling | true |


Editor Setup

The /editor command uses the EDITOR environment variable:

Linux/macOS:

# VS Code
export EDITOR="code --wait"

# Vim
export EDITOR="vim"

# Nano
export EDITOR="nano"

Windows (PowerShell):

$env:EDITOR = "code --wait"

Username Display

You can toggle username display in the conversation. Access via the command palette or search settings. The preference persists across sessions.


Terminal Requirements

For the best experience:

  • Truecolor support - Required for themes. Verify with echo $COLORTERM
  • Unicode support - For proper icon and border rendering
  • Minimum 80x24 - Recommended terminal size

Recommended terminals:

| Terminal | Platform | |----------|----------| | WezTerm | Cross-platform | | Alacritty | Cross-platform | | Ghostty | macOS | | Kitty | Linux, macOS | | iTerm2 | macOS | | Windows Terminal | Windows |

Warning

Some terminals (especially older ones) may not render the TUI correctly. If you experience display issues, try one of the recommended terminals.