mirror of
https://github.com/encounter/ghidra-cli.git
synced 2026-07-10 03:18:56 -07:00
17 lines
1007 B
Markdown
17 lines
1007 B
Markdown
# Agent Instructions
|
|
|
|
## Critical Rules
|
|
|
|
1. **NEVER SKIP TESTS!** If Ghidra is not installed, the tests MUST fail. `require_ghidra!()` panics when `ghidra doctor` fails.
|
|
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
|