Skip to content

RoadmapΒ #63

@shouze

Description

@shouze

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.

πŸ—‚ TUI β€” Navigation & result management

πŸ‘₯ Team grouping β€” Exclusions

  • πŸ”΄ Exclude teams β€” two complementary surfaces:
    • TUI: interactively hide/disable a team section
    • CLI: --exclude-teams option 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, zsh and fish completions for subcommands and options (Commander has native support for this)
  • 🟒 Persistent config file β€” ~/.githubcodesearchrc to 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.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions