-
Notifications
You must be signed in to change notification settings - Fork 0
Description
This issue tracks the high-level feature backlog for github-code-search. It is meant to be a living document β priorities may shift as feedback comes in.
Priority: π΄ high Β· π‘ medium Β· π’ nice-to-have
π TUI β Advanced filtering
The current filter mode (f) only matches against file paths. This category extends it.
- π΄ Regex support in path filter β allow the filter bar to accept regular expressions in addition to plain substrings
- π΄ Filter by extract content β search within the displayed code fragments, not just file paths
- π‘ Filter by repository name β a dedicated filter mode scoped to repo names (symmetric to the path filter)
π TUI β Navigation & result management
- π΄ Global fold / unfold β a single shortcut to collapse or expand all repositories at once (complements the existing
β/βper-repo shortcuts) - π‘ Team section selection β
a/non a team section header to select or deselect all its repositories in one keystroke (natural extension of--group-by-team-prefix) - π‘ Fast navigation β
gg/G(top / bottom) and Page Up / Page Down; currently only line-by-line scrolling is supported - π’ Open in browser β
oshortcut on a result to open its GitHub URL directly from the TUI (open/xdg-open)
π₯ Team grouping β Exclusions
- π΄ Exclude teams β two complementary surfaces:
- TUI: interactively hide/disable a team section
- CLI:
--exclude-teamsoption for non-interactive mode (also reflected in the replay command)
π€ Natural language search (experimental)
A two-stage approach that extends the existing keyword-based search workflow.
Stage 1 β NL β GitHub query translation
Translate a plain-English description into a valid GitHub Code Search query using an LLM. Example:
"find all places where we swallow exceptions without logging"
βcatch -throw -logger language:typescript
Stage 2 β Semantic post-filtering
After fetching results from the GitHub API, re-rank or filter the returned code fragments by semantic similarity to the original query β surfacing the most relevant matches above GitHub's default relevance ordering.
The two stages are independent and can be enabled separately via a --natural-language flag (stage 1) and a --semantic-rerank flag (stage 2).
Dependencies
| Dependency | Purpose | Notes |
|---|---|---|
| LLM provider (OpenAI, Anthropic, Ollama, β¦) | Query translation β stage 1 | Configured via env var or config file |
| Embeddings model (OpenAI, local via Ollama, β¦) | Semantic re-ranking β stage 2 | Optional; falls back to GitHub relevance order |
GITHUB_CODE_SEARCH_AI_KEY + GITHUB_CODE_SEARCH_AI_PROVIDER env vars |
Provider configuration | New env surface, no hard dependency on a specific vendor |
Persistent config file (~/.githubcodesearchrc) |
Store provider preferences across invocations | Shared dependency with the Developer experience section |
β οΈ This feature introduces an optional external dependency. When no AI provider is configured the tool behaves exactly as today β there is no silent fallback or unexpected network call.
- π’ NL β query translation (stage 1)
- π’ Semantic post-filtering / re-ranking (stage 2)
π Developer experience
- π‘ Shell completions β
bash,zshandfishcompletions for subcommands and options (Commander has native support for this) - π’ Persistent config file β
~/.githubcodesearchrcto avoid re-passing the org, recurring exclusions, etc. on every invocation - π’ Additional syntax highlighting β PHP, C/C++, Swift, Terraform/HCL, Dockerfile (the regex-based rules system is trivially extensible)
Contributions welcome β feel free to open a dedicated issue for any item you'd like to discuss or implement.