English | 中文README
Connect stable, tunable search, recommendation, and conversational retrieval to your agent system or business system.
Quick Start · AI Agent Setup · Full Agent Guide · Contributing · Security
SearchCLI is the open CLI for AI Search on Volcengine.
If your agent system or business system needs stable, tunable information distribution services, SearchCLI gives you a practical path to integrate production-grade search, recommendation, and conversational retrieval into real workflows.
With SearchCLI and its installable Viking skills, external agents can onboard data, build and validate search and recommendation flows, run conversational retrieval, tune strategy configuration, inspect bad cases, and iterate on retrieval quality in a stable, reviewable way.
- The command-line integration surface for AI Search on Volcengine.
- A stable path for external systems to access search, recommendation, and conversational retrieval capabilities.
- An agent-friendly workflow layer built around installable skills and automation-safe command output.
- A reviewable execution model with dry-runs, confirmation gates, and read-after-write verification.
- Developers integrating AI-powered information distribution into business systems.
- Teams building agent systems that need stable, configurable search, recommendation, and retrieval workflows.
- Operators and solution teams who need a reviewable way to onboard data, configure applications, and verify runtime behavior before production use.
- Item and catalog search on top of structured business data.
- Recommendation flows connected to application scenes and user behavior.
- Conversational retrieval experiences grounded in application search.
- Agent workflows that can onboard data, configure applications, and validate runtime behavior with explicit review steps.
vs item profile | plan | applyfor structured item onboarding.vs app,vs dataset, andvs datafor application and dataset management.vs search run,vs recommend run, andvs chat runfor runtime verification.- Installable
Viking skillsso external agents can use the same workflows.
- Node.js 20 or newer
git- Volcengine AK/SK with access to AI Search
git clone git@github.com:volcengine/SearchCLI.git vs
cd vs
bash ./scripts/install.shIf the current shell already has VIKING_AK and VIKING_SK:
vs auth import-env
vs auth status --json
vs doctor --jsonOtherwise, run interactive login in a real terminal:
vs auth loginIf the user wants a new app plus bind-time config review and runtime verification, use the dataset+app path:
vs item profile --file ./items.json --pretty
vs item plan --file ./items.json --goal "Build item search"
vs item apply --plan-dir ./.viking/item-plans/<plan> --dry-run
vs item apply --plan-dir ./.viking/item-plans/<plan> --confirm-review --wait-ready --run-trialsIf you only need dataset provisioning, use the dataset-only path, generate a dataset-only plan with --skip-app, and stop after dataset create + ingest:
vs item profile --file ./items.json --pretty
vs item plan --file ./items.json --goal "Build item search" --skip-app
vs dataset create --data @dataset-create.json
vs dataset ingest --dataset-id <dataset-id> --fields @<normalized-items-artifact>Prefer dataset-create.json when the plan emitted it so dataset creation keeps Schema and DataFieldConfig together. The --name <dataset-name> --type item --schema @schema.json form remains the manual schema-only fallback when a full create payload is unavailable or unsuitable.
--skip-app is also accepted by vs item provision and vs item apply as an execution-time guard rail when you need to enforce the dataset-only boundary from an existing plan.
If you need a video dataset, do not rely on the default type. Always pass --type video explicitly:
For dataset+app:
vs item profile --file ./videos.jsonl --type video --pretty
vs item plan --file ./videos.jsonl --type video --goal "Build video search"
vs item apply --plan-dir ./.viking/item-plans/<plan> --dry-run
vs item apply --plan-dir ./.viking/item-plans/<plan> --confirm-review --wait-ready --run-trialsFor dataset-only:
vs item profile --file ./videos.jsonl --type video --pretty
vs item plan --file ./videos.jsonl --type video --goal "Build video search" --skip-app
vs dataset create --data @dataset-create.json
vs dataset ingest --dataset-id <dataset-id> --fields @<normalized-items-artifact>For video dataset-only provisioning, prefer dataset-create.json so the create request includes DataFieldConfig; --schema @schema.json alone can fail with MissingParameter.DefaultFieldStrategy.
If an external agent needs to operate AI Search through this repository:
git clone git@github.com:volcengine/SearchCLI.git vs
cd vs
bash ./scripts/install.shnpx skills add "git@github.com:volcengine/SearchCLI.git" -y -gThe default public skill bundle is:
vs-sharedvs-item-onboardingvs-searchvs-chatvs-recommend
If the current shell already has VIKING_AK and VIKING_SK, prefer:
vs auth import-envOtherwise:
vs auth loginvs --help
vs auth status --json
vs doctor --json
vs skill listvs authvs doctorvs skillvs itemvs appvs datasetvs datavs searchvs chatvs recommend
If you are maintaining the open-source repository itself, the local skill tooling is:
vs skill list
vs skill init viking-demo-skill
vs skill validate
vs skill install allBuild and run repository checks:
npm install
npm run validate:skills
npm run build
npm run test:acceptance:distPlease check Contributing for more details.
External contributors must complete the Contributor License Agreement (CLA) before a pull request can be accepted.
Please check Code of Conduct for more details.
If you discover a potential security issue in this project, or think you may have discovered a security issue, we ask that you notify Bytedance Security via our security center or vulnerability reporting email.
Please do not create a public GitHub issue.
This project is licensed under the Apache-2.0 License.