Releases: DevAnimecx/jiro
Release list
v0.2.15 - THE COMPLETE RELEASE - Everything from v0.2.13, v0.2.14, and v0.2.15 combined
🚀 Jiro v0.2.15 - THE COMPLETE RELEASE
Everything from v0.2.13, v0.2.14, and v0.2.15 combined into one massive release!
🛡️ Stealth & Anti-Bot Engine
- TLS/JA3 Fingerprint Rotation: Browser impersonation with 20+ profiles (Chrome, Firefox, Safari, Edge, Tor)
- Behavioral Simulation: Randomized timing, mouse movements, scroll patterns
- curl-cffi Integration: Native TLS fingerprint spoofing
📡 Real-time Streaming
- WebSocket Endpoints:
/ws/search,/ws/search/stream,/ws/monitor - Connection Manager: Track and manage active WebSocket connections
- SSE Streaming: Server-Sent Events for real-time search results
🔍 Search Enhancements
- Parallel Search: Multi-engine search with
--parallelflag - Configurable Engines:
--enginesflag to control concurrent engine count (max 5) - Interactive Mode:
jiro search -ifor continuous search loop
💻 CLI Improvements
- Benchmark Command:
jiro benchfor performance testing with statistics - Search Query Auto-Scrape:
jiro scrape "query"searches then scrapes top result - Auto-HTTPS: Auto-prepend
https://for bare domains - Windows Unicode Fix: cp1252 compatible output on Windows
🏢 Enterprise Features
- Rate Limiting: Sliding window rate limiter with per-second, per-minute, per-hour, per-day limits
- Usage Quotas: Monthly quotas for searches, scrapes, and AI queries
- Tier-based Limits: Free, Pro, and Enterprise tiers with different limits
- Rate Limit Headers: X-RateLimit-* headers in API responses
🔌 Plugin System
- Plugin Base Classes: SearchEnginePlugin, ScraperPlugin, AIProviderPlugin
- Plugin Registry: Register, unregister, and discover plugins
- Plugin Discovery: Auto-discover plugins from a directory
- Plugin Hooks: Event-based hook system for plugin communication
⚡ Advanced Caching
- Memory Cache: LRU/LFU in-memory caching with analytics
- Cache Analytics: Hit rate, miss rate, eviction count, memory usage
- Cache Strategies: LRU, LFU, TTL, Write-through
- Cache Keys: SHA-256 based key generation
🌐 Official SDKs (NEW!)
Python SDK
pip install jiro-sdkfrom jiro_sdk import JiroClient
client = JiroClient(api_key="your-key")
results = client.search("python web scraping")
content = client.scrape("https://example.com")
answer = client.ai_ask("What is Python?")Features:
- Sync & async clients
- Full API coverage
- Error handling
- Context manager support
- Type hints
JavaScript/TypeScript SDK
npm install jiro-sdkimport { JiroClient } from 'jiro-sdk';
const client = new JiroClient({ apiKey: 'your-key' });
const results = await client.search('python web scraping');
const content = await client.scrape('https://example.com');
const answer = await client.aiAsk('What is Python?');Features:
- Browser & Node.js compatible
- TypeScript definitions
- WebSocket streaming
- ESM & CommonJS support
Go SDK
import "github.com/DevAnimecx/jiro/sdk/go"
client := jiro.NewClient(jiro.WithAPIKey("your-key"))
results, _ := client.Search("python web scraping", nil)
content, _ := client.Scrape("https://example.com", nil)
answer, _ := client.AiAsk("What is Python?", nil)Features:
- Idiomatic Go
- Functional options
- Context support
- Error handling
📊 Monitoring & Observability
- Metrics Registry: Prometheus-compatible metrics collection
- Request Tracing: Correlation IDs with span tracking
- Health Checks: Liveness and readiness probes
- Performance Metrics: Counters, gauges, histograms with statistics
📤 Export/Import
- Search Export: Export results to JSON, CSV, Markdown, YAML
- Config Export: Backup and restore configurations
- Backup Manager: Create and restore system backups
⏰ Scheduled Searches
- Cron Scheduling: Cron-like schedule expressions
- Recurring Jobs: Create, pause, resume, delete scheduled searches
- Notifications: Email and webhook notifications on results
📜 Search History
- History Tracking: Record all searches with timestamps
- History Query: Search by text, engine, time range, user
- Analytics: Popular queries, time distribution, cache hit rate
📦 Batch Operations
- Batch Search: Execute multiple searches concurrently
- Batch Scrape: Scrape multiple URLs in parallel
- Mixed Operations: Combine search and scrape in one batch
- Progress Tracking: Real-time progress and result aggregation
📦 Installation
# Python
pip install jirosearch==0.2.15
# Or install SDK separately
pip install jiro-sdk# JavaScript
npm install jiro-sdk# Go
go get github.com/DevAnimecx/jiro/sdk/go🔗 Links
- GitHub: https://github.com/DevAnimecx/jiro
- PyPI: https://pypi.org/project/jirosearch/0.2.15/
- npm: https://www.npmjs.com/package/jiro-sdk
- Documentation: https://github.com/DevAnimecx/jiro#readme
Full Changelog: https://github.com/DevAnimecx/jiro/commits/v0.2.15
v0.2.12 — Universal Integration, Deep Enterprise Lock, Fast Install
🚀 v0.2.12 — Universal Integration, Deep Enterprise Lock, Fast Install
🆕 New Features
- MCP Setup Wizard — One-command setup for Claude Desktop, Cursor, OpenCode, Codex CLI, OpenClaw, Hermes, Continue.dev, and Zed
- AES-256-GCM License Encryption — Enterprise license tokens now encrypted at rest
- CapabilityToken HMAC Tokens — Cryptographic license validation with scoped capabilities
- jiro doctor — Built-in diagnostics command for quick health checks
🔒 Enterprise Deep Lock
require_tier("enterprise")enforced on all 18/enterprise/*endpointsAuthorization: License <token>header validation via HMAC-SHA256- Enterprise-only features:
ai_search,advanced_healing,high_volume,custom_models,commercial_use,premium_support,white_label
🆓 Free Tier Power-Up
- 100 RPM / 10,000 RPD / 50 max results / 20 concurrent / 25 batch
- Unlocked:
basic_search,basic_scrape,social_advanced,social_search,social_timeline,smart_search,structured_extraction,social_batch(5/batch),self_learning(basic) - Anonymous users get 12 free features (was 3)
🐛 Bug Fixes
- Fixed Tuple import error in
feature_flags.py - Fixed SQLite parameter binding in
pro.py - Fixed payload scoping in
licensing.py - Fixed MCP error messages for missing dependencies
- Fixed
SERVER_VERSIONconstant in MCP module
📦 Install
pip install jirosearch==0.2.12PyPI: https://pypi.org/project/jirosearch/0.2.12/
Docs: https://jiro.dev
v0.2.11 — Enterprise Tier Deep Lock + Free Tier Power-Up + Premium UI/UX
What's New in v0.2.11
Enterprise Tier (Deep Locking)
- HMAC-SHA256 license token validation on all /enterprise/* endpoints
- require_tier('enterprise') dependency with Authorization: License header
- Hardware-bound license validation with 24h grace period
- Online revalidation support
Free Tier Power-Up
- Generous limits: 100 RPM / 10,000 RPD (was 30/1,000)
- Unlocked for free: social_batch (limited to 5/batch), self_learning (basic)
- Anonymous access: 12 free features (was 3)
Tier System Unification
- PLAN_LIMITS in pro.py is now single source of truth
- feature_flags.py and licensing.py derive from PLAN_LIMITS at import
- Fixed broken pro router (removed non-existent STARTER/PRO tiers)
- Fixed deps.py tier hierarchy (2-level: free/enterprise)
Premium UI/UX
- Product Hunt-ready README with comparison tables, feature cards, pricing
- Landing page (docs/index.html) with particle effects, scroll animations
- Animated counters, glass morphism, gradient borders, interactive terminal
- SEO: Open Graph, Twitter Cards, JSON-LD structured data
Enterprise Features (Phase 1-6)
- RBAC, OIDC, encryption, audit chain, sessions
- Telemetry, distributed tracing, /metrics, /health
- Query analytics, trend detection, anomaly alerts
- Multi-tenant management, SLA monitoring
- SOC2 controls, data residency, retention policies
- Webhooks, batch jobs, enterprise admin API
Bug Fixes
- Fixed broken pro.py PlanTier.STARTER/PlanTier.PRO references
- Fixed deps.py 4-level tier hierarchy (now 2-level)
- Fixed AuthManager class structure
- Fixed circular imports between auth.py and deps.py
Tests
- 828 passed, 9 skipped, 0 failed
Installation
\\�ash
pip install jirosearch==0.2.11
\\
Links
v0.2.2 - Security Hardening & MCP 16 Tools
Security Hardening
- SSRF fail-closed: DNS resolution failures now reject requests instead of allowing
- Session store deadlock fix in cleanup()
- All assert statements replaced with proper runtime checks
- SSRF validation added to scrape/social_scrape MCP tools
- Error messages no longer leak stack traces to clients
MCP System (16 tools, 5 resources, 6 prompts)
- 4 new tools: health_check, cache_stats, list_engines, list_social_platforms
- 3 new resources: social_platforms, plans, plugins
- 4 new prompts: social_research, deep_research, extract_structured, competitor_analysis
- Resource handlers fixed (plans, plugins imports corrected)
- SearchOrchestrator.health_check() added
Tests
- 119/119 tests passing
- New tests for SSRF rejection, all 16 tools, 5 resources, 6 prompts
v0.2.1 - Complete Release
Jiro v0.2.1 - Complete Release Notes
Local-first, AI-native web search & scraping platform with 12 social platforms, hybrid search, structured extraction, and Pro tier.
What's New
Phase 1: Search Intelligence
- Hybrid Search - Combines keyword, semantic, and freshness signals for enhanced relevance
- Cross-Encoder Reranking - ML-powered result reranking with configurable models
- Semantic Embeddings - Vector similarity search using sentence-transformers
- Relevance Scoring - Multi-signal ranking with keyword match, source authority, and freshness
- Search Filters - Domain include/exclude, time range, category filters
- Highlight Extraction - Query-aware snippet highlighting
- Answer Synthesis - Extractive answers from search results
- Multi-Query Expansion - Parallel query generation for complex topics
Phase 2: Social Scraping (12 Platforms)
| Platform | Features |
|---|---|
| Posts, comments, subreddits, user profiles | |
| Hacker News | Stories, comments, user profiles |
| YouTube | Videos, channels, playlists, comments |
| Bluesky | Posts, profiles, feeds |
| Twitter/X | Tweets, threads, profiles (3-backend fallback) |
| Threads | Posts, profiles |
| Posts, stories, reels, profiles | |
| TikTok | Videos, profiles, trending |
| Posts, profiles, companies | |
| Posts, profiles, groups | |
| Telegram | Messages, channels, groups |
| Pins, boards, profiles |
Phase 3: Advanced Features
- Structured Extraction - JSON Schema-based data extraction from search results
- Intent Classification - Rule-based classifier with 16 intent types:
- Informational, Navigational, Transactional, Research
- Social, Shopping, News, Video, Image, Code
- Academic, Local, Comparison, Definition, Troubleshooting, Creative
- Smart Search - Auto-routing based on detected intent
- Plugin System - 5 plugin types:
- Engine Plugins (6): Google Scholar, arXiv, GitHub, Wikipedia, HN, Reddit
- Search Plugins (6): Reranker, Deduplicator, Domain Filter, Freshness Boost, Source Authority, Snippet Enricher
- Datasource Plugins (3): SEC Filings, Clinical Trials, Patents
- Extractor Plugins: Custom content extraction
- Social Plugins: Custom platform scrapers
Phase 4: Pro Tier
| Plan | Price | RPM | RPD | Features |
|---|---|---|---|---|
| Free | $0 | 10 | 100 | Basic search, social scraping |
| Starter | $29/mo | 60 | 5,000 | Hybrid search, structured extraction |
| Pro | $99/mo | 300 | 50,000 | All features, webhooks |
| Enterprise | $499/mo | 1,000 | 500,000 | Custom models, priority support |
- API Key Authentication - Secure key-based access with tiered permissions
- Rate Limiting - Token bucket per API key
- Quota Management - Daily request limits per tier
- Usage Analytics - Detailed per-key, per-endpoint tracking
Phase 5: Production Ready
- Docker - One-command deployment with docker-compose
- Kubernetes - Production-ready Helm chart
- OpenAPI 3.1 - Complete API specification
- SDK Generation - Python, TypeScript, Go clients
- Web Dashboard - Alpine.js + Tailwind UI with 5 tabs
Security Hardening
- Auth enabled by default
- Header-only API key authentication
- Sanitized error messages
- CORS protection
- SSRF validation
- JWT secret validation
API Endpoints
Search
POST /v1/search- Web search with hybrid modePOST /v1/search/multi- Multi-query parallel searchGET /v1/search/stream- SSE streaming results
Social
POST /v1/social- Scrape social media URLPOST /v1/social/batch- Batch scrape multiple URLsGET /v1/social/platforms- List supported platformsPOST /v1/social/search- Search across platformsPOST /v1/social/search/everywhere- Search all platforms
Smart
POST /v1/smart- Intent-aware smart searchPOST /v1/smart/classify- Classify search intent
Structured
POST /v1/structured/extract- Extract structured data
Pro
POST /v1/pro/keys- Create API keyGET /v1/pro/keys- List API keysDELETE /v1/pro/keys/{id}- Revoke API keyPUT /v1/pro/keys/{id}/upgrade- Upgrade tierGET /v1/pro/usage- Get usage statsGET /v1/pro/plans- List available plans
Monitor
GET /v1/monitor/status- Server statusGET /v1/monitor/health- Health check
MCP Tools (12)
| Tool | Description |
|---|---|
search |
Search via 9 engines |
scrape |
Extract URL content |
ai_search |
Research with citations |
search_hybrid |
Hybrid multi-signal search |
search_structured |
Extract with JSON schema |
social_scrape |
Scrape social URLs |
social_search |
Search social platforms |
social_batch |
Batch scrape URLs |
smart_search |
Intent-aware routing |
smart_classify |
Classify intent |
compare_engines |
Compare engine results |
monitor_status |
Server health metrics |
Installation
pip
pip install jirosearch==0.2.1npm (CLI wrapper)
npm install -g jiro-cliDocker
docker pull jiro/jiro:0.2.1
docker run -p 8000:8000 jiro/jiro:0.2.1Docker Compose
git clone https://github.com/DevAnimecx/jiro.git
cd jiro-search
docker-compose up -dKubernetes (Helm)
helm repo add jiro https://charts.jiro.dev
helm install jiro jiro/jiro --version 0.2.1From Source
git clone https://github.com/DevAnimecx/jiro.git
cd jiro-search
pip install -e .Quick Start
Start Server
jiro serveStart Dashboard
jiro dashboard # Opens on port 3000Search
curl -X POST http://localhost:8000/v1/search \
-H "Content-Type: application/json" \
-d '{"q": "python web scraping", "engine": "google"}'Hybrid Search
curl -X POST http://localhost:8000/v1/search \
-H "Content-Type: application/json" \
-d '{"q": "latest AI research", "hybrid": true, "answer": true}'Social Scraping
curl -X POST http://localhost:8000/v1/social \
-H "Content-Type: application/json" \
-d '{"url": "https://reddit.com/r/programming/comments/abc123"}'Smart Search
curl -X POST http://localhost:8000/v1/smart \
-H "Content-Type: application/json" \
-d '{"query": "github.com/fastapi"}'Configuration
Environment Variables
# Server
JIRO_HOST=0.0.0.0
JIRO_PORT=8000
# Database
JIRO_DB_PATH=~/.jiro/jiro.db
JIRO_DB_POSTGRES=postgresql://user:pass@localhost/jiro
# Cache
JIRO_CACHE_TYPE=sqlite # sqlite | memory | redis
JIRO_CACHE_TTL=3600
# Auth
JIRO_AUTH_ENABLED=true
JIRO_JWT_SECRET=your-secret-key-here
# Engines
JIRO_ENGINES=google,bing,brave,duckduckgoConfig File (~/.jiro/config.yaml)
server:
host: 0.0.0.0
port: 8000
engines:
- google
- bing
- brave
- duckduckgo
cache:
type: sqlite
ttl: 3600
auth:
enabled: true
jwt_secret: ${JIRO_JWT_SECRET}MCP Integration
Claude Desktop
{
"mcpServers": {
"jiro": {
"command": "jiro",
"args": ["mcp"]
}
}
}Cursor
{
"mcpServers": {
"jiro": {
"command": "jiro",
"args": ["mcp"]
}
}
}Testing
# Run all tests
pytest tests/ -v
# Run specific test suite
pytest tests/test_phase1_search_intelligence.py -v
pytest tests/test_social_scraping.py -v
pytest tests/test_pro_tier.py -vSecurity
- Auth enabled by default
- Header-only API key authentication
- Sanitized error messages
- CORS protection
- SSRF validation
- JWT secret validation
See SECURITY.md for reporting vulnerabilities.
Changelog
v0.2.1 (2026-09-03)
- Security patch with auth hardening
- Fixed CORS wildcard default
- Removed hardcoded DB credentials
- Sanitized error messages
- Header-only API authentication
v0.2.0 (2026-09-03)
- Initial v0.2 release with all features above
License
MIT License - see LICENSE for details.
Support
- Documentation: https://jiro.dev/docs
- GitHub Issues: https://github.com/DevAnimecx/jiro/issues
- Discord: https://discord.gg/jiro
- Twitter: @jirosearch
Credits
Built with ❤️ by the Jiro team.
Jiro Search 0.1.2 (jirosearch)
jirosearch 0.1.2 — fixes the reported pip install jirosearch failure and the
jiro --version string.
Changes since 0.1.1:
- Distribution name confirmed live on PyPI as jirosearch (
pip install jirosearch). jiro.__version__now reads from the installed distribution metadata, so
jiro --versionreports the real release (0.1.2).- README install command + PyPI badge updated to
jirosearch.
Install:
pip install jirosearch
jiro --version # -> jiro 0.1.2Jiro Search 0.1.1 (jirosearch)
First PyPI-ready release of Jiro Search, distributed as jirosearch (the import name stays jiro).
pip install jirosearchIncludes the security hardening (SSRF guard, auth startup validation, Redis rate
limiting, SQLite connection pool, agent deadline/content-budget, robots.txt
enforcement) and the full ruff + mypy cleanup (0 lint/type errors, 390 tests passing).
Installable directly from this release:
pip install https://github.com/DevAnimecx/jiro/releases/download/v0.1.1/jirosearch-0.1.1-py3-none-any.whlJiro Search 0.1.0 (MVP)
Jiro Search 0.1.0 - Initial Public MVP
Local-first, AI-native web search & scraping API - a self-hosted SerpAPI alternative with an MCP server, agentic research, and built-in legal compliance. MIT licensed, free forever.
Highlights
- 9 search engines (Google, Bing, DuckDuckGo, Brave, YouTube, Amazon, eBay, Yandex, Baidu) with automatic fallback
- Universal scraper: URL -> markdown/text/html/JSON, readability + metadata extraction
- Agentic research (/ai/search, /ai/agent) with citations + SSE streaming
- MCP server (stdio / Streamable HTTP / SSE) for Claude Desktop, Cursor, Continue.dev, Zed, Cline
- AI-agent tooling: OpenAI/Anthropic/Gemini function-calling + LangChain/LlamaIndex wrappers
- Compliance layer: robots.txt parsing, ToS acknowledgments (persisted to SQLite), audit logging
- BYOK: proxies (BrightData/Oxylabs/ScraperAPI/ZenRows/Smartproxy), CAPTCHA (2Captcha/CapSolver), LLM keys
- Team features: hashed API keys, roles/scopes, per-key rate limits, JWT, /usage + Prometheus /metrics
- Ops: Docker + Helm, async jobs with HMAC-signed webhooks
Get started
pip install jiro-search && jiro serve -> http://localhost:8000/docs
Open-core: free MIT community edition; Jiro Cloud + Enterprise (BSL-1.0) planned.