AACSearch
SDKs

CLI

aacsearch-cli — inkrementelle lokale Dateisynchronisation und Suche über die AACSearch-API.

AACSearch CLI

aacsearch-cli läuft auf Ihrem Rechner und spricht nur mit der AACSearch-HTTP-API über das generierte TypeScript-SDK. Es startet keine lokale Suchmaschine.

Die Indexierung folgt dem Modell target = transform(source) (wie bei CocoIndex): Datei = Verarbeitungseinheit mit stabiler ID; unveränderte Dateien werden übersprungen, wenn Content-Hash und Transform-Fingerprint übereinstimmen; gelöschte Dateien entfernen Dokumente im Index.

Installation

pnpm --filter @repo/sdk build
pnpm --filter aacsearch-cli build   # auch: pnpm --filter aacsearch-cli test
node integrations/aacsearch-cli/dist/cli.js --help

Optional für PDF: bevorzugt Docling (pip install docling); Fallback pnpm add pdf-parse --filter aacsearch-cli. Docling-OCR ist standardmäßig aus.
Optional für semantische Code-Chunks: web-tree-sitter + WASM-Grammatiken (JS/TS/Python/Go/Rust/Java/JSON/Bash); andere Sprachen nutzen Size/Overlap-Fallback.

Lokaler Stack (:3000): integrations/aacsearch-cli/examples/README.md.

Anmelden

aacsearch init --base-url https://search.example.com --index documentation --pipeline
aacsearch login --api-key aac_live_…

init --pipeline legt aacsearch.yaml im aktuellen Verzeichnis an. Oder AAC_API_KEY und AAC_BASE_URL setzen.

Pipeline-Konfiguration

aacsearch.yaml oder .aacsearch/pipeline.json im Quellverzeichnis (oder --config). Siehe integrations/aacsearch-cli/examples/aacsearch.yaml.

version: 1
index: documentation
sources:
  - path: .
    include: ["**/*.md", "**/*.txt", "**/*.csv", "**/*.html", "**/*.pdf"]
honorGitIgnore: true
maxFileSize: 10485760
concurrency: 4
localChunk:
  enabled: false
parser: auto # auto | docling | pdf-parse
reembed: auto # auto wenn Index Vektoren hat | true | false
transforms:
  key: v1

Markdown-Frontmatter (title, tags) wird in Metadaten gemappt. .gitignore gilt standardmäßig (--no-gitignore zum Abschalten).

Inkrementelles Update

aacsearch update ./docs --index documentation
aacsearch update ./docs --dry-run --explain
aacsearch update ./docs --local-chunk    # Code → tree-sitter wenn verfügbar
aacsearch update ./docs --parser auto
aacsearch update ./docs --reembed
aacsearch update ./docs --no-reembed
aacsearch update ./docs --urls urls.txt
aacsearch -q update ./docs

Nach Schreibvorgängen kann die CLI die API reembed aufrufen und reembed started job_id=… ausgeben — Embeddings berechnet die AACSearch-API, kein lokales Modell. Mit --local-chunk bleiben unveränderte #cN-Chunks erhalten (per-Chunk-ContentHash). sync-status / doctors meldet Parser, Tree-sitter-Grammatiken und Reembed-Modus.

Live-Push (Dateisystem-CDC-Stil)

aacsearch watch ./docs --interval 400
aacsearch live ./docs --interval 200
echo '{"op":"upsert","path":"a.md"}' | aacsearch live ./docs --stdin-events
# Bridge von externem CDC (nur relative Pfade):
# my-cdc-tail | aacsearch live ./docs --stdin-events

Bei add/change: sofortiges Upsert der Datei; bei unlink: Löschen der Zieldokumente. Ereignis-Bursts werden zusammengefasst; ein fehlgeschlagenes Upsert wird einmal wiederholt. DB-/Kafka-CDC bleibt bei AACSearch-Connectors in Konsole/API — CLI-Live ist nur Dateisystem (plus optionales stdin-NDJSON, siehe examples/stdin-events.ndjson).

Suche und Index-Ops

aacsearch search "pricing" --index documentation
aacsearch suggest "pri" --index documentation
aacsearch multi-search "pricing" --indexes documentation,help
aacsearch indexes
aacsearch create-index --name "Docs" --slug documentation
aacsearch delete <external_id> --index documentation
aacsearch reembed --index documentation

Scopes: Dokumentschreibungen documents:write; Search/Suggest search:read; create-index braucht org-weites indexes:write.

Außerhalb des CLI

Kafka/DB-CDC (AACSearch-Connectors), lokale Embedding-Modelle, CocoIndex-Python-DSL, Lineage-UI.

Siehe auch das TypeScript-SDK.

On this page