mirror of
https://github.com/encounter/ghidra-cli.git
synced 2026-07-10 03:18:56 -07:00
33dc10dcca9f7fed7b36d827b4e25730f1980aeb
This commit implements the daemon-only architecture where all query operations (functions, strings, decompile, memory, summary, xrefs) must go through the persistent daemon instead of spawning new Ghidra processes per command. Key changes: - Wire IPC client in main.rs to route queries through daemon - Add requires_daemon() to determine which commands need daemon - Add execute_via_daemon() to translate CLI commands to IPC calls - Deprecate HeadlessExecutor with migration notice - Fix filter.pest hex number parsing order (hex before number) - Add #[allow(dead_code)] to infrastructure modules for future use - Mark E2E tests requiring daemon as #[ignore] Architecture benefits: - Faster queries: Ghidra stays loaded, no 5-30s startup per command - Simpler code: One execution path instead of two - Better UX: Clear daemon requirement with helpful error messages When daemon is not running, users see: Error: This command requires the daemon to be running. Start the daemon with: ghidra daemon start --project <name> Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Ghidra CLI
A high-performance Rust CLI for automating Ghidra reverse engineering tasks, designed for both direct usage and AI agent integration (like Claude Code).
Languages
Rust
70.8%
Java
24.8%
C#
3.3%
Python
1.1%