A fast, terminal-based multi-platform search tool built in C++. Search GitHub profiles, repositories, and skills — along with GitLab projects, npm packages, and Stack Overflow questions — all from a single interactive CLI.
Navigate between all supported platforms from a clean, color-coded terminal interface. Invalid input is automatically cleared and the menu is re-shown.
Search GitHub users by name or skill. Optionally rank results by a computed score based on followers, repositories, and following count.
Search GitHub repositories and download any result as a ZIP archive directly to your machine.
Search GitLab public projects with star count, fork count, and direct links.
Search the npm registry for packages with version info, author, description, and a direct link.
Search Stack Overflow questions with answer status, score, answer count, view count, and tags.
| Component | Details |
|---|---|
| Language | C++17 |
| UI Library | Dear ImGui (vendored) |
| HTTP Client | libcurl |
| JSON Parsing | nlohmann/json |
| Windowing | GLFW + OpenGL3 |
| Build | g++ via MSYS2 (UCRT64) |
Install dependencies via MSYS2:
pacman -S mingw-w64-ucrt-x86_64-gcc
pacman -S mingw-w64-ucrt-x86_64-curl
pacman -S mingw-w64-ucrt-x86_64-glfw
pacman -S mingw-w64-ucrt-x86_64-nlohmann-jsonbuild.batOutput: TopSearch.exe
Run the executable:
TopSearch.exeThen follow the interactive menu:
- Select a platform: GitHub / GitLab / npm / Stack Overflow
- For GitHub, choose a search type: Profiles / Repositories / Skills
- Enter your query
- Browse results — optionally rank profiles or download repository ZIPs
- Press
0or leave query blank to go back at any step
TopSearch/
├── main.cpp # Entry point, UI, menus, result rendering
├── SearchEngine.cpp/h # Core search dispatch logic
├── GitHubAPI.cpp/h # GitHub-specific API calls
├── HttpClient.h # libcurl HTTP wrapper
├── imgui/ # Vendored Dear ImGui source
├── images/ # Screenshots used in this README
├── build.bat # Build script
└── CMakeLists.txt # CMake config (alternative build)
The app uses a GitHub personal access token for authenticated API requests (higher rate limits). It is set in main.cpp:
string HttpClient::githubToken = "<your_github_token>";Replace with your own token from github.com/settings/tokens.
This project is open source. Dear ImGui is licensed under the MIT License.





