Skip to main content
Josty Logo

Keyless search and bounded text extraction for agents and scripts.

CI Python 3.10+ License: MIT Code Style: Ruff


What It Is

Josty queries public search backends in parallel through ddgs, fuses rankings with Cormack-Clarke Reciprocal Rank Fusion (RRF), canonicalizes URLs, and optionally extracts bounded page text.

It is designed for AI agents and developer scripts that need a self-contained search step without API keys, background daemons, or browser engines.

┌──────────────────────────────┐
│  Local Agent / Script Step   │
└──────────────┬───────────────┘
               │ single search execution
               ▼
┌──────────────────────────────┐
│            Josty             │
│  - Bounded parallel fanout   │
│  - Domain-weighted RRF (k=60)│
│  - In-process breaker & cache│
│  - Trafilatura text extract  │
└──────────────┬───────────────┘
               │
               ▼
┌──────────────────────────────┐
│   Public Backends via ddgs   │
│  (Brave, DuckDuckGo, Yahoo,  │
│   Mojeek, Startpage, Google) │
└──────────────────────────────┘

Installation

# Run instantly with uvx (no install step needed):
uvx josty "Python 3.13 features" --limit 5

# Or install globally:
uv tool install josty
# or: pipx install josty

Quickstart

# 1. Basic search (returns top 5 results):
josty "Python 3.13 release highlights" --limit 5

# 2. Boost technical documentation domains (dev profile):
josty "FastAPI dependency injection" --profile dev --limit 5

# 3. Restrict search to specific domains (up to 5):
josty "httpx connection pool timeout" --site github.com --site python-httpx.org

# 4. Extract bounded Markdown page text from top results:
josty "RRF rank fusion algorithm" --limit 3 --fetch

# 5. Unix pipeline (stream search results straight into fetch):
josty search "FastAPI dependency injection" --limit 3 | josty fetch --stdin

Output & Status Contract

Normal searches emit one JSON document on stdout. Diagnostics and warnings route strictly to stderr.

{
  "schema_version": "1.0",
  "query": "FastAPI dependency injection",
  "status": "complete",
  "count": 3,
  "partial": false,
  "cached": false,
  "provider_count": 6,
  "nonempty_provider_count": 2,
  "coverage": 0.333,
  "providers": [...],
  "results": [
    {
      "title": "Dependencies - FastAPI",
      "url": "https://fastapi.tiangolo.com/tutorial/dependencies/",
      "snippet": "FastAPI has a very powerful but intuitive Dependency Injection system...",
      "sources": ["duckduckgo", "brave"],
      "score": 0.039024,
      "content": null
    }
  ]
}

Status Values & Exit Codes

Status Meaning Exit Code
complete Results found; no backend failed. 0
empty No results found; no backend failed (count=0). 0
degraded Results found, but at least one backend failed; or page extraction failed. 0
failed Every attempted backend failed; zero results returned. 1
Validation Error Invalid CLI options or empty query. 2

Limitations & Non-Goals

  • No Privacy or Anonymity Guarantees: Josty does not proxy or anonymize traffic. Queries are sent directly to upstream search engines.
  • Best-Effort Availability: Upstream public engines may throttle (HTTP 429), present anti-bot challenges, or change response formats. Josty isolates failures via circuit breakers and surfaces errors honestly rather than hiding them behind infinite retries.
  • Not a Search Engine: Josty does not maintain an index or crawl the web. It is a lightweight client adapter over ddgs.
  • No Hidden Query Rewriting: If a search returns empty, Josty reports status: "empty". The caller decides whether to broaden terms or adjust site filters.

Documentation

  • Agent Tool Specification: .agents/skills/josty/SKILL.md (full flag specifications, schemas, provider telemetry, and agent research rules).
  • Coding Agent Guide: AGENTS.md (invariants, test commands, and module layout for agents working on this codebase).
  • Security Policy: SECURITY.md.

Release files for josty 0.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for josty 0.7.0
File Size Uploaded
josty-0.7.0.tar.gz 122.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for josty 0.7.0
File Interpreter ABI Platform
josty-0.7.0-py3-none-any.whl Python 3 none any Details

Total release size: 160.8 kB

Release files / josty-0.7.0.tar.gz

Download URL josty-0.7.0.tar.gz
Size 122.6 kB
Tags Source
SHA-256 checksum
How to use checksums
101d3ddbc2a3011feb7176f613c6864c519c45e473e94835b3c96e5ac804f817
BLAKE2b-256 checksum
How to use checksums
84fa83dd8848e0daadea2df6efe99f1ad703751f19815897d61354586263d5e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / josty-0.7.0-py3-none-any.whl

Download URL josty-0.7.0-py3-none-any.whl
Size 38.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
47b885053ee904025e874c9dce59dca283d65cd33eaccd8cd60b013ff45d7143
BLAKE2b-256 checksum
How to use checksums
4a9d965fe29a53a17711102bcd2c40715111ecba4937adf2d9a027cf7ffa4b3e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

0.7.1

2 release files

This release

0.7.0 This release

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page