About smart-search-cli
An instruction skill for AI tools that explains when and how to use the local `smart-search` command for web search, page retrieval, and research, while preserving source evidence and handling provider status. It does not provide search access itself; capabilities depend on the configured CLI and providers.
Key features
- 01Routes intent to search subcommands
- 02Checks configuration and provider status
- 03Runs web retrieval and research workflows
- 04Maintains installed skills
- 05Enforces evidence and fallback boundaries
Use cases
- 01Performing web search or deep research
- 02Diagnosing search configuration or provider issues
- 03Fetching content from user-provided URLs
- 04Updating skills connected to an Agent
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ konbakuyomu/ smartsearch --skill smart-search-cliAfter installing, type/smart-search-cliin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
agents/openai.yamlreferences/cli-contract.mdcli-core.mdcommand-patterns.mddeep-research-mode.mdprovider-routing.mdregression-release.mdsetup-config.mdDetails
From the project READMESmart Search CLI
Use the local smart-search command as the default execution layer for web research. This entrypoint keeps only routing, boundaries, and reference selection; load the focused reference file when command details or provider contracts matter.
What This Skill Is
smart-search-cli is an instruction bundle for an AI tool. It explains when to call the local smart-search executable, which command fits the user's intent, how to preserve source evidence, and how to interpret provider status and fallback fields.
- The Skill does not provide search access by itself; the configured
smart-searchCLI and its providers do the work. - The Skill is not an MCP server, does not store provider API keys, and does not create Trellis, hooks, agents, or commands.
smart-search setup --install-skills ...connects selected Agents. Installed Skills use a short bootstrap: runsmart-search agent-guidefor this CLI's current instructions andsmart-search agent-guide references/<name>.mdfor a referenced document.- The App's Update Skills page reads the selected CLI's catalog. Explicit sync backs up changed files; Remove Skills backs up and disconnects selected targets. Automatic maintenance belongs to the CLI, works with the App closed, and preserves personal edits. Each connected target retains its CLI installation and configuration profile.
- After upgrading the CLI, normal use checks its managed Skills;
skills statusremains read-only andskills updateprovides an explicit refresh. Reopen the Agent session after changes (Gemini:/skills reload). - Skill updates do not change provider configuration or API keys. Missing optional keys remain skipped rather than being treated as successful live checks.
Default Workflow
- Run
smart-search doctor --format jsonwhen configuration or availability is uncertain. - If
doctorreports missing configuration, usesmart-search setuporsmart-search config set KEY VALUEwhen the user provides keys. Do not ask users to edit global environment variables by default. - If OpenAI-compatible
searchhangs or times out afterdoctorsucceeds, runsmart-search diagnose openai-compatible --format markdownand use its summary. - Keep
OPENAI_COMPATIBLE_API_MODE=chat-completionsunless a named relay has passed the official Responses subset probes; setresponsesonly for that relay and keep the diagnostic evidence. - If
doctorreturnsok: true, use onlysmart-searchCLI subcommands for web research. Do not call Codex native web search in the same task. - Use
smart-search skills status --targets codex --format jsonwhen the installed global skill may be stale; usesmart-search skills update --targets codex --format jsonto refresh it without rerunning setup. - Use
smart-search smoke --mock --format jsonafter CLI/provider architecture changes. Use--liveonly when real keys are available and the user expects live checks. - Treat
TAVILY_ENABLED=falseas an intentional no-network boundary: do not work around it with direct Tavily ormapcalls. Checkdoctorand live smoke for disabled/skipped Tavily state; Firecrawl remains independently configured. - If a result reports a degraded provider in
provider_notices, or a provider attempt isskipped, runsmart-search providers status --format json. The channel is on a persisted failure cooldown; fix the credential or runsmart-search providers reset PROVIDERinstead of retrying the same failing provider. - Preserve command lines and source URLs in your answer. Prefer citing fetched pages; treat model citations and unread search sources as discovery candidates.
Routing
search: single-pass retrieval: Jev or local rules select one suitable channel, which returns results and sources; no automatic assessment, follow-up, filtering, or synthesis.route: explain capability routing locally without executing providers;--router-mode jev --remoteexplicitly opts into a potentially billable TypeSafe judgment.research: shared bounded loop with Jev or local routing for complementary discovery, fetch/read, evidence gaps, and optional synthesis.deep: offline Deep Research planner; it does not run providers, fetch pages, or replace defaultsearch.zhipu-search: Chinese-language, domestic China, policy/regulatory, announcements, current news, or China-local source discovery.context7-library/context7-docs: library, SDK, API, framework, or documentation intent. Ordinary search uses the first library in Context7's ranked candidates; research may ask Jev to choose a candidate, using the first candidate if Jev fails or no score reaches its threshold. Unresolved libraries allow same-capability fallback. Explicit commands retain the candidate list and supplied library id.exa-search: official domains, papers, product pages, trusted pages, date/domain-filtered low-noise discovery, and adjacent source discovery throughexa-similar.fetch: user-provided URLs or any claim that depends on page content.map: documentation site or domain structure before fetching many pages from one site.anysearch-*: explicit experimental vertical search only. Inspect domains first and do not use AnySearch as default fallback. Parse JSON parameters before repeatable--param key=valueoverrides;anysearch-extract --max-lengthsends only the URL upstream and truncates successful text locally.sciverse-*: explicit experimental academic search only. Use for catalog/search/semantic/read/relations; do not use Sciverse asdocs_search,standard, or defaultsearch/researchfallback.providers status/providers reset: inspect or clear the persisted failure cooldown for optional providers; use it when a channel keeps reporting the same failure.model current: inspect explicit provider models only. Change models withsmart-search config set XAI_MODEL ...orsmart-search config set OPENAI_COMPATIBLE_MODEL ....
Key Boundaries
smart-searchshould resolve from the user's PATH.- Private API keys should be saved with
smart-search setuporsmart-search config set; environment variables remain supported for CI and advanced users. - In sandboxed runtimes, set
SMART_SEARCH_CONFIG_DIRto an absolute writable path when the default config directory is unavailable or must be pinned. - The standard minimum profile requires at least one enabled retrieval channel. Jev and a main model are optional; the requested operation still needs a capable channel.
- Fallback stays within the same capability family; model answers and web search are mutual fallbacks in ordinary search. Do not use Context7 for broad news/web facts or page-extraction providers as documentation search replacements.
- Inspect
answer_checkandprimary_sources_countbefore trustingcontent. - xAI Responses and OpenAI-compatible are peer
main_searchproviders. Do not reuse one provider's URL/key to fabricate the other provider as fallback. - For current-news, policy, finance, health, and other high-risk facts, do not answer from broad
search.contentalone. Fetch key pages and summarize only what fetched text supports. - Native
web_searchis disabled in this CLI-first workflow unless the user explicitly configures another approved route; do not silently fall back to another web-search route.
References
- Command examples, evidence files, timeout retry policy, and guardrails:
references/command-patterns.md - Deep Research planner/executor workflow, plan fields, gap check, and smoke matrix:
references/deep-research-mode.md - CLI entrypoints, command signatures, aliases, output fields, exit codes, and tool policy:
references/cli-core.md - Setup, config storage, skill installation, provider endpoints, and OpenAI-compatible diagnostics:
references/setup-config.md - Intent routing, provider capabilities, source provenance, fallback boundaries, and routing maintenance:
references/provider-routing.md - Regression, packaged install checks, release lanes, and release closeout lessons:
references/regression-release.md - Compatibility reference map for older instructions that mention the original monolithic file:
references/cli-contract.md