ACE-Tool - Semantic Code Search & Prompt Enhancement
High-performance semantic search and AI-powered prompt enhancement. Standalone CLI (no MCP dependency).
Execution Methods
bash
# Prerequisites: pip install httpx tenacity # Environment: ACE_API_URL, ACE_API_TOKEN (optional for local fallback) # Search codebase with natural language python scripts/ace_cli.py search_context -p /path/to/project -q "function that handles authentication" # Enhance prompt (interactive mode - default, opens browser) python scripts/ace_cli.py enhance_prompt -p "implement login feature" -H "User: what auth method?\nAssistant: JWT" # Enhance prompt (non-interactive, JSON output) python scripts/ace_cli.py enhance_prompt --no-interactive -p "implement login feature" # Enhance prompt with specific endpoint python scripts/ace_cli.py --endpoint claude enhance_prompt -p "implement login feature" # Check configuration python scripts/ace_cli.py get_config
Tool Routing Policy
Prefer ACE-Tool Over Built-in Tools
| Task | Avoid | Use ACE-Tool CLI |
|---|---|---|
| Find function by purpose | grep "def func" | search_context -q "function that..." |
| Locate feature code | find . -name "*.py" | search_context -q "feature description" |
| Clarify requirements | Manual analysis | enhance_prompt -p "requirement" |
| Understand code flow | Multiple grep/read | search_context -q "flow description" |
When to Use Built-in Tools
- •Exact string matching (known identifiers)
- •File path patterns (known naming conventions)
- •Simple text replacement
Command Reference
search_context
Search codebase using natural language descriptions.
bash
python scripts/ace_cli.py search_context -p <project_root> -q <query> Options: -p, --project-root Project root path (required) -q, --query Natural language query (required)
enhance_prompt
Enhance prompts with codebase context and conversation history.
bash
python scripts/ace_cli.py [--endpoint TYPE] enhance_prompt -p <prompt> [options] Global Options: --endpoint Endpoint type: new, old, claude, openai, gemini (default: new) --api-url Override API base URL --token Override API token Command Options: -p, --prompt Original prompt (required) -H, --history Conversation history: "User: xxx\nAssistant: yyy" --history-file File containing conversation history --project-root Project root path (optional) --no-interactive Disable web UI, output JSON directly --no-browser Don't auto-open browser, just print URL --port Port for web server (default: 8765)
get_config
Show current configuration status.
bash
python scripts/ace_cli.py get_config
Interactive Enhancement
Default mode opens web UI with actions:
| Button | Action |
|---|---|
| Regenerate | Discard current, generate new enhancement from original prompt |
| Refine | Iteratively improve current version, preserving your edits |
| Use Original | Return the original prompt without enhancement |
| Send Enhanced | Confirm and use the current enhanced prompt |
| Cancel | Abort the enhancement process |
Keyboard Shortcuts: Ctrl+Enter Send | Esc Cancel
Workflow
Phase 1: Semantic Search
bash
search_context -p . -q "database connection pooling" # Find relevant code # Review returned file locations # Read specific files for details
Phase 2: Prompt Enhancement
bash
enhance_prompt -p "optimize query performance" # Opens interactive UI # Review and refine enhanced prompt # Use Regenerate/Refine as needed # Send Enhanced to confirm
Error Handling
json
{"error": "error message", "status_code": 401}
| Error | Recovery |
|---|---|
| No API configured | Uses local fallback for search_context |
| Token invalid (401) | Check API token |
| Access denied (403) | Token may be disabled |
| Connection timeout | Retries up to 3 times with exponential backoff |
| No results | Broaden search query |
Anti-Patterns
| Prohibited | Correct |
|---|---|
| Grep before semantic search | Use search_context first |
| Skip prompt enhancement | Use enhance_prompt for complex tasks |
| Ignore conversation history | Include history in enhance_prompt |
| Use exact match for conceptual search | Use natural language query |
| Always use non-interactive mode | Use interactive mode for review |