{"id":50757175,"url":"https://github.com/andenkondor/kondor","last_synced_at":"2026-06-11T06:02:44.881Z","repository":{"id":355989932,"uuid":"1230170758","full_name":"andenkondor/kondor","owner":"andenkondor","description":"rg 🤝 fzf","archived":false,"fork":false,"pushed_at":"2026-06-09T19:33:00.000Z","size":991,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-09T21:12:47.003Z","etag":null,"topics":["bun","cli","fulltext-search","fzf","opentui","rg","utility"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andenkondor.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"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":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-05-05T18:42:27.000Z","updated_at":"2026-06-09T19:38:11.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/andenkondor/kondor","commit_stats":null,"previous_names":["andenkondor/kondor"],"tags_count":31,"template":false,"template_full_name":null,"purl":"pkg:github/andenkondor/kondor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andenkondor%2Fkondor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andenkondor%2Fkondor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andenkondor%2Fkondor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andenkondor%2Fkondor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andenkondor","download_url":"https://codeload.github.com/andenkondor/kondor/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andenkondor%2Fkondor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34184779,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["bun","cli","fulltext-search","fzf","opentui","rg","utility"],"created_at":"2026-06-11T06:02:44.337Z","updated_at":"2026-06-11T06:02:44.876Z","avatar_url":"https://github.com/andenkondor.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# kondor\n\n\u003e [!NOTE]\n\u003e Heavily inspired by:\n\u003e\n\u003e - https://junegunn.github.io/fzf/tips/ripgrep-integration/\n\u003e - https://github.com/folke/snacks.nvim\n\n\u003cbr/\u003e\n\nA terminal-based interactive full-text search tool. Combines [ripgrep](https://github.com/BurntSushi/ripgrep) (rg) for fast filesystem searches with [fzf](https://github.com/junegunn/fzf) for in-memory filtering.\n\n\u003cbr/\u003e\n\n![Kondor](assets/kondor.png)\n\n## Purpose\n\n- **Plain text filtering**: Ripgrep uses regex syntax — Kondor's fzf layer lets you filter results by typing plain words. No escaping, no quantifiers, no lookaheads.\n- **Smart case**: Lowercase matches ignore case; uppercase forces case sensitivity — all inferred from your input.\n- **Multi-column search**: By default, fzf filters across file paths and line content simultaneously. Constrain to either with the filter column toggle.\n- **Inverted search**: Prefix a term with `!` to exclude matching results.\n- **Conversational refinement**: Turn search refinement into a word-by-word process instead of a regex editing session.\n- **Full fzf syntax**: See the [fzf README](https://github.com/junegunn/fzf?tab=readme-ov-file#search-syntax) for all search syntax details.\n\n## Installation\n\n### Brew\n\n```sh\nbrew tap andenkondor/zapfhahn\nbrew install andenkondor/zapfhahn/kondor\n```\n\n## Rg Options\n\nThese control how `ripgrep` scans the filesystem. Toggled from a toolbar row (keyboard or mouse):\n\n| Key     | Option                 | Description                                         |\n| ------- | ---------------------- | --------------------------------------------------- |\n| `Opt-1` | **Case Sensitivity**   | Toggle `--smart-case` / `--case-sensitive`          |\n| `Opt-2` | **Word Regexp**        | Toggle `--word-regexp` (whole word matching)        |\n| `Opt-3` | **Results Per File**   | Toggle `--max-count` (1 result/file vs. no limit)   |\n| `Opt-4` | **Matches Per Result** | Toggle single match vs. all matches per result line |\n| `Opt-5` | **Unrestricted**       | Cycle unrestricted level (`-u`, `-uu`)              |\n\n## Fzf Options\n\nThese control how `fzf` filters the rg results. Toggled from a second toolbar row (keyboard or mouse):\n\n| Key     | Option            | Description                                      |\n| ------- | ----------------- | ------------------------------------------------ |\n| `Opt-6` | **Filter Column** | Cycle through \"all\" / \"filePath\" / \"lineContent\" |\n| `Opt-7` | **Exact Match**   | Toggle exact vs. fuzzy matching                  |\n\n## Remaining Shortcuts\n\n### Navigation\n\n| Key                   | Action                    |\n| --------------------- | ------------------------- |\n| `Up` / `Down`         | Move selection            |\n| `PageUp` / `PageDown` | Move selection by 5 lines |\n| `Home`                | Jump to first result      |\n| `End`                 | Jump to last result       |\n\n### Actions\n\n| Key           | Action                                                                 |\n| ------------- | ---------------------------------------------------------------------- |\n| `Enter`       | Open result(s) in Neovim (single result or quickfix list for multiple) |\n| `Shift+Enter` | Show \"Open with\" popup to pick a custom opener                         |\n| `Tab`         | Toggle mark on the selected result                                     |\n| `Ctrl-A`      | Toggle select all / deselect all marks                                 |\n| `Ctrl-X`      | Delete (ignore) the selected result from the list                      |\n| `Ctrl-P`      | Toggle preview pane on/off                                             |\n| `Ctrl-G`      | Toggle input focus between Rg search term and Fzf filter term          |\n| `Ctrl-R`      | Refresh / re-run the current rg search                                 |\n\n## Configuration\n\nSettings are stored in `~/.config/kondor/kondor-settings.yaml`:\n\n### `openers`\n\nA list of custom programs to open the selected result with, accessible via the `Shift+Enter` popup.\n\n```yaml\nopeners:\n  - description: \"vim\"\n    command: 'vim {{.SelectedFile.Name}} -c \"call cursor({{.SelectedFile.LineNumber}}, {{.SelectedFile.ColumnNumber}}\"'\n    terminal: true\n  - description: \"Zed\"\n    command: \"zed . {{.SelectedFile.Name}}:{{.SelectedFile.LineNumber}}:{{.SelectedFile.ColumnNumber}}\"\n```\n\n| Placeholder                      | Description               |\n| -------------------------------- | ------------------------- |\n| `{{.SelectedFile.Name}}`         | File path (shell-escaped) |\n| `{{.SelectedFile.LineNumber}}`   | Line number               |\n| `{{.SelectedFile.ColumnNumber}}` | Column number             |\n\nSet `terminal: true` for CLI programs that need to take over the terminal. Omit it or set `false` for GUI apps that launch in the background.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandenkondor%2Fkondor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandenkondor%2Fkondor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandenkondor%2Fkondor/lists"}