OneSearch CLI
Command-line interface for OneSearch - Self-hosted, privacy-focused search for your homelab.
Installation
The CLI is a standalone client for a running OneSearch server. It does not include the backend, indexer, or search data. Tagged OneSearch releases publish the Docker image and the onesearch-cli package together on the same shared version.
Recommended: pipx
pipx install onesearch-cli
onesearch config set backend_url http://localhost:8000
onesearch login
From Source (Development)
cd cli
python -m venv .venv
# Windows
.venv\Scripts\activate
# Linux/Mac
source .venv/bin/activate
pip install -e .
Verify Installation
onesearch --version
onesearch --help
Quick Start
# Check system health
onesearch health
# List configured sources
onesearch source list
# Add a source (ID is auto-generated from name as slug, e.g., "documents")
onesearch source add "Documents" /data/docs --include "**/*.pdf,**/*.md"
# Trigger indexing (use source ID from 'source list')
onesearch source reindex documents
# Search
onesearch search "kubernetes deployment"
# Check indexing status
onesearch status
Note: Source IDs are slugified from the name (e.g., "My Documents" → "my-documents").
Commands
Source Management
# List all sources
onesearch source list
# Add a new source
onesearch source add <name> <path> [--include PATTERNS] [--exclude PATTERNS]
# Show source details
onesearch source show <source_id>
# Reindex a source
onesearch source reindex <source_id>
# Delete a source
onesearch source delete <source_id> [--yes]
Search
# Basic search
onesearch search "query"
# With filters (use source ID from 'source list')
onesearch search "python" --source documents --type pdf --limit 10
# JSON output for scripting
onesearch search "error" --json | jq '.results[].path'
# Pagination
onesearch search "docker" --offset 20 --limit 10
Status & Health
# Overall status
onesearch status
# Specific source status
onesearch status <source_id>
# System health check
onesearch health
# JSON output for monitoring
onesearch health --json
Configuration
Environment Variables
ONESEARCH_URL- Backend API URL (default:http://localhost:8000)ONESEARCH_TOKEN- Bearer token for non-interactive auth
# Use a custom backend URL
export ONESEARCH_URL=http://onesearch.local:8000
onesearch search "test"
# Non-interactive auth for scripts
export ONESEARCH_TOKEN=xxxxx
onesearch search "test" --json
# Or pass the URL directly
onesearch --url http://onesearch.local:8000 search "test"
Global Options
--url URL- Override backend API URL-v, --verbose- Enable verbose output-q, --quiet- Suppress non-essential output (headers, hints, decorations)-h, --help- Show help message--version- Show version
Output Formats
Most commands support --json for machine-readable output:
# JSON for scripting
onesearch health --json
onesearch status --json
onesearch search "test" --json
Examples
Add and Index a Source
# Add a documents source (creates ID "my-documents")
onesearch source add "My Documents" /mnt/nas/documents \
--include "**/*.pdf,**/*.md,**/*.txt" \
--exclude "**/archive/**"
# Start indexing (use the source ID)
onesearch source reindex my-documents
# Monitor progress
onesearch status my-documents
Docker users: If the path only exists inside the container, use
--no-validateto skip local path validation:onesearch source add "NAS Docs" /data/nas --no-validate
Search with Filters
# Search PDFs only
onesearch search "quarterly report" --type pdf
# Search specific source (use source ID)
onesearch search "meeting notes" --source my-documents
# Get more results
onesearch search "python" --limit 50
Health Monitoring
# Quick health check (returns non-zero on failure)
onesearch health || echo "OneSearch is down!"
# JSON for monitoring systems
onesearch health --json | jq '.status'
Development
# Install CLI in development mode
pip install -e .
# Run tests (install pytest first)
pip install pytest
pytest
Metadata
Release files for onesearch-cli 1.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| onesearch_cli-1.7.0.tar.gz | 17.3 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| onesearch_cli-1.7.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 37.7 kB
Release files / onesearch_cli-1.7.0.tar.gz
| Download URL | onesearch_cli-1.7.0.tar.gz |
|---|---|
| Size | 17.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1fe59473ad7af80ee92660ad0c80c18f12b0517a93e3ab7b7d9596aede7c6ce8
|
|
BLAKE2b-256 checksum How to use checksums |
969ae17be021ac1da77a4b827436c71641ebce1e6d44d3a038fc687456bf478a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.15
|
Release files / onesearch_cli-1.7.0-py3-none-any.whl
| Download URL | onesearch_cli-1.7.0-py3-none-any.whl |
|---|---|
| Size | 20.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c5855cc8367b50817277a781ec4a6c2ad0b926a5bd8dcc8efaf463cd0e875936
|
|
BLAKE2b-256 checksum How to use checksums |
21d832fe7954ed9b2a642d2d3078133d8d66024c3ff2b7659db4515e1eef2c1e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.15
|
Security for onesearch-cli 1.7.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.