zo-tools

Provides localhost services for file search, PDF processing, OCR, and text embeddings.

Updated Sep 5, 2026
One-click install
npx skills add https://github.com/SillyHippy/zo-skills --skill zo-tools-sillyhippy
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: zo-tools
Source: https://github.com/SillyHippy/zo-skills/tree/main/skills/zo-tools
Command: npx skills add https://github.com/SillyHippy/zo-skills --skill zo-tools-sillyhippy

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Agents on Zo Computer and Hermes often need to search workspace files, extract text from PDFs, run OCR on scanned images, and perform semantic search, but doing these tasks ad hoc consumes HTTP service slots and requires repeated setup. This Skill runs four always-on localhost services that handle these tasks without consuming any HTTP slots. ## Core Features & Use Cases - Full-Text Search (port 4100): Search workspace file contents with ripgrep and search inside PDF text via simple GET endpoints. - Document Processing (port 4200): Extract text from PDFs, merge and split PDF files, convert documents via pandoc, and inspect page counts and file sizes. - OCR (port 4300): Extract text from images and scanned PDFs using Tesseract, from local files or remote URLs. - Embeddings & Semantic Search (port 4400): Generate hash-based text embeddings, store entries, and run ranked semantic search without downloading any model. - Use Case: A legal assistant agent needs to find every mention of "affidavit" across a workspace, extract text from a scanned filing, and semantically search stored notes — all via local HTTP calls to 127.0.0.1. ## Quick Start Ask the agent to search the workspace for a term by calling the local zo-search endpoint at http://127.0.0.1:4100/search with your query.

Frequently Asked Questions about zo-tools

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I search file contents across a workspace from an AI agent?▼

Call the zo-search service at http://127.0.0.1:4100/search with a q parameter and optional path. It uses ripgrep for file contents and supports PDF text search via the /search-pdf endpoint.

How to extract text from a PDF using a local HTTP service?▼

Send a GET request to http://127.0.0.1:4200/extract with the file parameter pointing to the PDF path. The service uses pdftotext and also supports merging, splitting, and pandoc-based format conversion.

Can I run OCR on scanned PDFs and images without a cloud API?▼

Yes, the zo-ocr service on port 4300 uses Tesseract locally. POST a file path or URL to /ocr or /ocr-url with an optional language parameter to extract text from images and scanned documents.

Does the embedding service require downloading a model?▼

No, zo-embed on port 4400 uses local hash-based embeddings, so no model download is needed. It supports embedding generation, storage, and ranked semantic search over stored entries.

Do these localhost services consume HTTP service slots on Zo?▼

No, all four services run as mode="process" bound to 127.0.0.1 only, so they consume zero HTTP service slots. They auto-start on boot and restart automatically on crash.