How halilkirazkaya/arsenal-ng works
arsenal-ng is a terminal pentest command launcher: a user searches its embedded command catalog, selects an entry, supplies template arguments (optionally prefilled from global variables), then receives the completed command in the terminal input buffer for review and execution. The map includes search, argument handling, variable persistence, and the documented tools/help views. Some UI wiring is inferred only where README capabilities and sampled files support it; unsampled view/update implementations are represented by their exact enclosing directory.
Main entry points: ui Input and view updates · main.go CLI entry · view_search.go Search and hints view · variables.go Global variable store
Components 16
Launch and output
- CLI entry
cmd/arsenal-ng/main.go - Terminal buffer
internal/output/terminal.go
Command catalog
- Embedded YAML commands
internal/loader/cheat-files - Catalog loader
internal/loader/loader.go - Command search
internal/loader/search.go - Cheat and argument models
internal/model
Interactive interface
- TUI application model
internal/ui/app_model.go - Input and view updates
internal/ui - Search and hints view
internal/ui/view_search.go - Argument and result views
internal/ui - Tools and help views
internal/ui - Syntax and fuzzy highlighting
internal/ui
Variables and config
- Global variable store
internal/state/variables.go - Persisted variables
internal/config/path.go - Runtime configuration
internal/config
Other components
- Operator
Connections 21
- Operator → CLI entry: launches
- CLI entry → Catalog loader: loads catalog
- Catalog loader → Embedded YAML commands: reads embedded YAML
- Catalog loader → Cheat and argument models: builds cheat records
- CLI entry → TUI application model: creates TUI
- TUI application model → Input and view updates: handles events
- Input and view updates → Command search: filters commands
- Input and view updates → Cheat and argument models: parses arguments
- Input and view updates → Global variable store: reads and updates
- Input and view updates → Search and hints view: renders search
- Input and view updates → Argument and result views: renders argument flow
- Input and view updates → Tools and help views: switches views
- Search and hints view → Syntax and fuzzy highlighting: highlights matches
- Search and hints view → Cheat and argument models: displays cheat data
- CLI entry → Runtime configuration: gets log path
- Global variable store → Runtime configuration: gets storage path
- Global variable store → Persisted variables: loads and saves JSON
- TUI application model → Global variable store: initializes store
- CLI entry → Terminal buffer: injects final command
- Operator → Search and hints view: searches and selects
- Terminal buffer → Operator: prefills for review