Files
ghidra-cli/AGENTS.md
T

1.1 KiB

Agent Instructions

Critical Rules

  1. Tests require Ghidra. Tests use require_ghidra!() to check availability; when Ghidra is not installed, tests are skipped (silent pass). This is intentional for local development. CI environments must have Ghidra installed.
  2. DEFAULT OUTPUT FORMAT should be human and agent readable, NOT JSON. Use --json and --pretty for JSON output. Exception: when stdout is not a TTY (piped/scripted), the default auto-detects to JsonCompact for machine consumption — this is standard Unix pipe convention.

Architecture

ghidra-cli uses a direct bridge architecture:

  • CLI connects directly to a Java bridge running inside Ghidra's JVM via TCP
  • The bridge is a GhidraScript (GhidraCliBridge.java) started via analyzeHeadless -postScript
  • Bridge binds ServerSocket(0) on localhost, writes port/PID files for discovery
  • One bridge per project, identified by ~/.local/share/ghidra-cli/bridge-{md5}.port
  • Import/Analyze commands auto-start the bridge if not running
  • No separate Rust daemon process — the Java bridge IS the persistent server