Granting one debug wish at a time
A TUI (Terminal User Interface) application built with Go and Bubble Tea to help technical support engineers diagnose WordPress installations efficiently.
- Interactive Menu: Beautiful, easy-to-navigate menu system for all commands
- Debug Analysis: Run diagnostic checks using built-in rules
- Embedded Rules: 6 default rules included in the binary - no setup required
- Rules Management: Optionally add custom rules from GitHub repositories
- Beautiful TUI: Clean and intuitive terminal interface powered by Bubble Tea
Navigate to your WordPress installation root (where wp-config.php is located) and run:
cd /path/to/wordpress
jeannie-cliThis launches the interactive menu where you can choose:
- π Debug Analysis - Run diagnostic checks on your WordPress installation
- π List Rules - View all available diagnostic rules
- β Exit - Return to terminal
Use arrow keys or j/k to navigate, Enter to select, q to quit.
Launch the interactive menu:
jeannie-cli
# or explicitly
jeannie-cli menuRun comprehensive diagnostic checks:
jeannie-cli checkjeannie-cli versionjeannie-cli rules listjeannie-cli rules pull [repository-url]curl -sSL https://raw.githubusercontent.com/marceltannich/jeannie-cli/main/install.sh | bashThis will:
- Download the latest binary for your OS/architecture
- Install to
/usr/local/binor~/.jeannie/bin - Default rules are already embedded in the binary - ready to use!
- Go 1.21 or higher
go mod download
go build -o jeanniego installNavigate to your WordPress installation root (where wp-config.php is located):
cd /path/to/wordpress
jeannie-cliThe interactive menu will launch automatically. Choose the action you want to perform.
Set your default rules repository:
export JEANNIE_RULES_REPO="https://github.com/marceltannich/jeannie-rules"Default Rules (Embedded)
Jeannie comes with 6 default rules embedded directly in the binary:
- Caching plugin detection
- Advanced cache dropin detection
- Object cache dropin detection
- High autoload entries check
- MU-plugins detection
- Debug log exposure check
No setup required - these rules work immediately after installation!
Custom Rules (Optional)
You can optionally add custom rules to extend Jeannie's capabilities:
# Pull custom rules from a repository (feature coming soon)
jeannie-cli rules pull https://github.com/your-team/custom-wp-rulesCustom rules are stored in ~/.jeannie/rules and will be merged with embedded rules. If a custom rule has the same ID as an embedded rule, the custom version takes precedence.
Each rule folder contains a rule.json file:
{
"id": "caching/dropin_advanced_cache_active",
"name": "Advanced Cache Dropin Active",
"description": "advanced-cache.php present; WP still loads it even if the plugin is deactivated.",
"severity": "warning",
"fix": "remove/rename file; clear caches",
"check_type": "file_exists_with_config",
"target_files": ["wp-content/advanced-cache.php"],
"evidence_format": "path=${file}, WP_CACHE=${wp_cache_value}"
}jeannie/
βββ main.go # Entry point
βββ cmd/ # CLI commands
β βββ root.go # Root command
β βββ check.go # Check command
β βββ scan.go # Scan command
β βββ rules.go # Rules commands
βββ embeddedrules/ # Embedded ruleset
β βββ ruleset/ # Default rules (embedded in binary)
β βββ caching/
β βββ database/
β βββ plugins/
β βββ security/
βββ internal/
β βββ scanner/ # Scanning logic
β β βββ scanner.go
β βββ rules/ # Rules management
β β βββ rules.go
β βββ tui/ # TUI components
β βββ check_results.go
β βββ scan_results.go
β βββ rules_list.go
β βββ rules_pull.go
βββ README.md
go run main.go scan .go build -o jeannieMIT
Contributions are welcome! Please feel free to submit a Pull Request.