# search: count --all-repos in the empty-query fast-fail guard

`2f7fe5d`→[main](/content/gh/entireio/cli/commits/main/index.html)·

alishakawaguchi·1mo ago·1 file·+4 added/-1 removed

The non-interactive "query required" guard built its own hasFilters without
--all-repos, so `entire search --all-repos --json` (or piped/accessible) with
an empty query errored instead of running a wildcard search. Mirror
search.Config.HasFilters here (the guard runs before git/auth, so it can't
call searchCfg.HasFilters() directly).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

## Sessions

34b6a5be974fView transcript

[?\
Redesign Search TUI Table with Master-Detail LayoutClaude Code·Opus 4.8[1m]·2 steps](/content/gh/entireio/cli/session/a891fc9c-9a5b-4cbb-8341-7bb4230da520#timeline-34b6a5be974f/index.html)

## Changes

1

- cmd/entire/cli

- Msearch_cmd.go+4/-1

```go
80 unmodified lines

81
82
83
84
84
85
86
87
88
89
90

80 unmodified lines

w := cmd.OutOrStdout()
            isTerminal := interactive.IsTerminalWriter(w)
            hasFilters := authorFlag != "" || dateFlag != "" || branchFlag != "" || len(repos) > 0
            // Mirror search.Config.HasFilters (incl. --all-repos) so an empty
            // query with only filters isn't rejected here. This guard runs
            // before git/auth, so it can't call searchCfg.HasFilters() directly.
            hasFilters := authorFlag != "" || dateFlag != "" || branchFlag != "" || len(repos) > 0 || allRepos

// Fast-fail: no query + non-interactive mode = error (before auth/git checks)
            if query == "" && !hasFilters && (jsonOutput || !isTerminal || IsAccessibleMode()) {
```
