github dualeai/seek v0.15.1

latest release: v0.15.2
3 hours ago

v0.15.1 fixes how seek limits and prints per-file matches. It also narrows seek-router to shell searches that it can rewrite without changing their meaning. This release does not change CLI flags, query syntax, the index format, or the cache layout.

Match output

  • Within each file, seek now keeps the highest-scored distinct source lines before it applies the per-file -m limit. It then prints those lines in source order.
  • Duplicate matches for one source line combine their highlight fragments. Overlapping context prints each line once, hidden-match notices count distinct dropped lines, and formatting does not modify the caller's result data.

Router

  • The hook routes one static Bash command: recursive grep with at least one explicit path, or rg with optional paths. A pathless rg call gets ..
  • Flags must come before the pattern. Routed grep supports r, n, H, I, F, E, and i; routed rg supports n, H, I, F, and i. A pattern can contain ASCII letters, digits, _, /, and -. A path can also contain .. Neither can start with -.
  • Each rewrite uses -n 20 -m 3, so it returns at most 20 files and three matches per file. The -i flag becomes case:no; other routed searches use case:yes. Direct seek calls remain unlimited by default.
  • Other commands and syntax run unchanged. Compared with v0.15.0, this includes git grep, searches with file filters, pipelines to head, and phrases such as func Name; call seek directly for sym:Name. Regular-expression operators, globs, variables, redirects, and compound commands also bypass the router.
  • The router requires seek and jq on PATH. Once invoked, it exits without a hook decision if a dependency is missing or it cannot parse or route the command. The original command then runs. A rewrite changes only tool_input.command and preserves the other Bash input fields.

For an exhaustive shell search, bypass the router for one call:

SEEK_ROUTER=off grep -rn 'PATTERN' .

Set SEEK_ROUTER=off in the agent's environment to disable routing for the session.

Plugin and upgrade notes

  • One shared Bash hook replaces six entries. Codex no longer starts the router six times for each Bash call, and Claude Code runs one check. The repo-local Codex hook now uses the supported timeout field, with a 10-second limit instead of the default 600 seconds.
  • All three plugin manifests use version 0.2.0. A new Codex manifest declares the bundled skill, and Agent Plugins uses its fixed skills/ directory. The install command is codex plugin add seek-router@seek.
  • CLI users need no configuration or data migration.

Validation

Local validation passed: the full Go test suite, focused race tests, go vet, golangci-lint, all 76 router cases under sh and dash, ShellCheck, and Claude plugin validation.

Full changelog: compare v0.15.0...v0.15.1

Don't miss a new seek release

NewReleases is sending notifications on new releases.