{"id":45643482,"url":"https://github.com/fulll/github-code-search","last_synced_at":"2026-04-02T18:36:12.583Z","repository":{"id":339300357,"uuid":"1161236305","full_name":"fulll/github-code-search","owner":"fulll","description":"An interactive CLI to search GitHub code across an organization, with per-repository result aggregation, keyboard navigation, and fine-grained extract selection","archived":false,"fork":false,"pushed_at":"2026-02-24T01:58:37.000Z","size":277,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-24T08:26:24.646Z","etag":null,"topics":["cli","code-search","github","tui"],"latest_commit_sha":null,"homepage":"https://fulll.github.io/github-code-search/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fulll.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-18T22:09:17.000Z","updated_at":"2026-02-24T08:10:10.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/fulll/github-code-search","commit_stats":null,"previous_names":["fulll/github-code-search"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/fulll/github-code-search","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fulll%2Fgithub-code-search","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fulll%2Fgithub-code-search/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fulll%2Fgithub-code-search/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fulll%2Fgithub-code-search/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fulll","download_url":"https://codeload.github.com/fulll/github-code-search/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fulll%2Fgithub-code-search/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29987729,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T22:42:38.399Z","status":"ssl_error","status_checked_at":"2026-03-01T22:41:51.863Z","response_time":124,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","code-search","github","tui"],"created_at":"2026-02-24T03:28:01.416Z","updated_at":"2026-04-02T18:36:12.566Z","avatar_url":"https://github.com/fulll.png","language":"TypeScript","readme":"# github-code-search\n\n\u003cimg src=\"docs/public/logo.svg\" alt=\"github-code-search logo\" width=\"80\" align=\"right\"\u003e\n\n[![Docs](https://img.shields.io/badge/docs-fulll.github.io%2Fgithub--code--search-blue)](https://fulll.github.io/github-code-search/)\n[![Latest release](https://img.shields.io/github/v/release/fulll/github-code-search)](https://github.com/fulll/github-code-search/releases/latest)\n\nInteractive CLI to search GitHub code across an organization — per-repository aggregation,\nkeyboard-driven TUI, fine-grained extract selection, markdown/JSON output.\n\n→ **Full documentation: https://fulll.github.io/github-code-search/**\n\n![Demo](demo/demo.gif)\n\n## Quick start\n\n**macOS / Linux**\n\n```bash\nexport GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxx\ncurl -fsSL https://raw.githubusercontent.com/fulll/github-code-search/main/install.sh | bash\ngithub-code-search query \"TODO\" --org my-org\n```\n\n**Windows** (PowerShell)\n\n```powershell\n$env:GITHUB_TOKEN = \"ghp_xxxxxxxxxxxxxxxxxxxx\"\npowershell -c \"irm https://raw.githubusercontent.com/fulll/github-code-search/main/install.ps1 | iex\"\ngithub-code-search query \"TODO\" --org my-org\n```\n\n## Features\n\n- **Org-wide search** — queries all repositories in a GitHub organization in one command, with automatic pagination up to 1 000 results\n- **Per-repository aggregation** — results grouped by repo, not as a flat list; fold/unfold each repo to focus on what matters\n- **Keyboard-driven TUI** — navigate with arrow keys, toggle selections, filter by file path, confirm with Enter — without leaving the terminal\n- **Fine-grained selection** — pick exactly the repos and extracts you want; deselected items are recorded as exclusions in the replay command\n- **Structured output** — Markdown document with a `# Results for` query heading, GitHub deeplinks and the exact matched token per extract; or machine-readable JSON that, when segment data is available, includes `matchedText`, `line` and `col` fields — ready to paste into docs, issues or scripts\n- **Team-prefix grouping** — group results by team prefix (e.g. `platform/`, `data/`) using `--group-by-team-prefix`\n- **Replay command** — every session produces a one-liner you can run in CI to reproduce the exact same selection without the UI\n- **Regex search** — use `/pattern/flags` syntax for pattern-based searches; the CLI derives a safe API query and filters results locally\n- **Syntax highlighting** — code fragments rendered with language-aware coloring (TypeScript, Python, Go, Rust, YAML, JSON and more)\n\n## Use cases\n\n**Audit a dependency across the org**\n\n```bash\ngithub-code-search query \"from 'lodash'\" --org my-org\n```\n\nInstantly see every repo still importing lodash, select the ones to migrate, and get a Markdown checklist to paste in your migration issue.\n\n**Hunt down TODOs before a release**\n\n```bash\ngithub-code-search query \"TODO\" --org my-org --exclude-repositories sandbox,archived-repo\n```\n\nSurfaces all in-code TODOs, lets you triage interactively, and outputs a linked list for your release notes.\n\n**Verify a breaking-change rollout**\n\n```bash\ngithub-code-search query \"oldApiClient\" --org my-org --output-type repo-only --format json\n```\n\nUse JSON output in a CI script to assert that no repository still references the deprecated client after your migration deadline.\n\n**Security sweep — find hardcoded secret patterns**\n\n```bash\ngithub-code-search query \"process.env.SECRET\" --org my-org\n```\n\nCross-repo scan for risky patterns; export results to Markdown to attach to a security audit report.\n\n**Onboarding — understand how an internal library is used**\n\n```bash\ngithub-code-search query \"useFeatureFlag\" --org my-org --group-by-team-prefix platform/\n```\n\nGet a team-scoped view of every usage site before refactoring a shared hook or utility.\n\n**Skip template repositories**\n\n```bash\ngithub-code-search query \"TODO\" --org my-org --exclude-template-repositories\n```\n\nExclude repositories that are marked as GitHub templates, so boilerplate repos don't clutter your results.\n\n**Regex search — pattern-based code audit**\n\n```bash\ngithub-code-search query \"/from.*['\\\"\\`]axios/\" --org my-org\n```\n\nUse `/pattern/` syntax to run a regex search. The CLI automatically derives a safe API query term and filters results locally — no manual post-processing needed. Use `--regex-hint` to override the derived term when auto-extraction is too broad.\n\n## Why not `gh search code`?\n\nThe official [`gh` CLI](https://cli.github.com/) does support `gh search code`, but it returns a **flat paginated list** — one result per line, no grouping, no interactive selection, no structured output.\n\n|                                            | `gh search code` | `github-code-search` |\n| ------------------------------------------ | :--------------: | :------------------: |\n| Results grouped by repo                    |        ✗         |          ✓           |\n| Interactive TUI (navigate, select, filter) |        ✗         |          ✓           |\n| Fine-grained extract selection             |        ✗         |          ✓           |\n| Markdown / JSON output                     |        ✗         |          ✓           |\n| Replay / CI command                        |        ✗         |          ✓           |\n| Team-prefix grouping                       |        ✗         |          ✓           |\n| Regex search                               |        ✗         |          ✓           |\n| Syntax highlighting in terminal            |        ✗         |          ✓           |\n| Pagination (up to 1 000 results)           |        ✓         |          ✓           |\n\n`github-code-search` is purpose-built for **org-wide code audits and interactive triage** — not just a search wrapper.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffulll%2Fgithub-code-search","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffulll%2Fgithub-code-search","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffulll%2Fgithub-code-search/lists"}