-
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 (done in feat: advanced filter β regex mode, content/repo targets, cursor navigation + scroll fixes (v1.5.0)Β #65, v1.5.0)
- π΄ Filter by extract content β search within the displayed code fragments, not just file paths (done in feat: advanced filter β regex mode, content/repo targets, cursor navigation + scroll fixes (v1.5.0)Β #65, v1.5.0)
- π‘ Filter by repository name β a dedicated filter mode scoped to repo names (symmetric to the path filter) (done in feat: advanced filter β regex mode, content/repo targets, cursor navigation + scroll fixes (v1.5.0)Β #65, v1.5.0)
π TUI β Navigation & result management
- π΄ Global fold / unfold β a single shortcut to collapse or expand all repositories at once (complements the existing
β/βper-repo shortcuts) (done in feat: global fold/unfold β Z to collapse or expand all repositories at onceΒ #70, v1.6.0) - π‘ Fast navigation β
gg/G(top / bottom) and Page Up / Page Down; currently only line-by-line scrolling is supported (done in feat: fast navigation β gg/G (top/bottom) and Page Up/DownΒ #71, v1.6.0) - π‘ Team section selection β
a/non a team section header to select or deselect all its repositories in one keystroke (tracked in Team section selection β a/n on a section header to select or deselect all its reposΒ #85, part of EPIC π₯ Team ownership mode β single-owner assignment for github-issue-ops (EPIC)Β #88) - π’ Open in browser β
oshortcut on a result to open its GitHub URL directly from the TUI (open/xdg-open) (done in feat: open in browser βoshortcut to open the focused result's GitHub URLΒ #72, v1.6.0)
π₯ Team ownership mode
Single-owner assignment for downstream tooling (e.g. github-issue-ops). Full scope tracked in EPIC #88.
- π΄ Team section select/deselect +
--exclude-teamsβa/non a section header; compact replay flag (Team section selection β a/n on a section header to select or deselect all its reposΒ #85 β good first issue) - π‘ Team dispatch β split a multi-team section by assigning each repo/extract to exactly one team;
--dispatch <team>=<refs>(Team dispatch β split a multi-team section by assigning each repo/extract to exactly one teamΒ #86) - π’ Team merge β undo a dispatch and restore the original combined section (Team merge β undo a dispatch and restore the original combined team sectionΒ #87)
π€ 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 (done in π Developer experience (EPIC)Β #77, v1.7.0) - π’ Additional syntax highlighting β PHP, C/C++, Swift, Terraform/HCL, Dockerfile (done in π Developer experience (EPIC)Β #77, v1.7.0)
- π’ Persistent config file β
~/.githubcodesearchrcto avoid re-passing the org, recurring exclusions, etc. on every invocation
Contributions welcome β feel free to open a dedicated issue for any item you'd like to discuss or implement.